Ver código fonte

Removed unnecessary command

Vadik Sirekanyan 4 anos atrás
pai
commit
c405643ce8

+ 4 - 2
src/main/kotlin/com/sirekanyan/andersrobot/AndersController.kt

@@ -79,11 +79,13 @@ class AndersController(
         }
     }
 
-    fun onCelsiusCommand() {
+    @Suppress("UNUSED_PARAMETER")
+    fun onCelsiusCommand(command: Command) {
         sender.sendText(chatId, "Можешь звать меня просто Андерс")
     }
 
-    fun onWeatherCommand() {
+    @Suppress("UNUSED_PARAMETER")
+    fun onWeatherCommand(command: Command) {
         showWeather(chatId, language)
     }
 

+ 4 - 5
src/main/kotlin/com/sirekanyan/andersrobot/AndersRobot.kt

@@ -20,11 +20,10 @@ val delayedCommands = mutableMapOf<Long, Command>()
 private val userCommands: List<Command> =
     listOf(
         LocationCommand,
-        RegexCommand("^(/temp(@$botName)?|погода)$", AndersController::onWeatherCommand),
-        CityCommand("/temp", "погода", AndersController::onCityCommand),
-        CityCommand("/add", "добавить город", AndersController::onAddCity),
-        CityCommand("/del", "удалить город", AndersController::onDeleteCity),
-        CityCommand("/forecast", "прогноз", AndersController::onForecastCommand),
+        CityCommand("/temp", "погода", AndersController::onCityCommand, AndersController::onWeatherCommand),
+        CityCommand("/add", "добавить город", AndersController::onAddCity, AndersController::onCityMissing),
+        CityCommand("/del", "удалить город", AndersController::onDeleteCity, AndersController::onCityMissing),
+        CityCommand("/forecast", "прогноз", AndersController::onForecastCommand, AndersController::onCityMissing),
         RegexCommand("\\b(celsi|цельси)", AndersController::onCelsiusCommand),
         RegexCommand("\\b((андерс|anders|погод[аеуы])\\b|градус)", AndersController::onWeatherCommand),
     )

+ 2 - 1
src/main/kotlin/com/sirekanyan/andersrobot/command/CityCommand.kt

@@ -8,6 +8,7 @@ class CityCommand(
     private val en: String,
     private val ru: String,
     private val action: (AndersController, String) -> Unit,
+    private val onEmptyArguments: (AndersController, Command) -> Unit,
 ) : Command {
 
     override fun execute(controller: AndersController, message: Message): Boolean =
@@ -16,7 +17,7 @@ class CityCommand(
     override fun execute(controller: AndersController, arguments: String?): Boolean {
         when {
             arguments == null -> return false
-            arguments.isBlank() -> controller.onCityMissing(this)
+            arguments.isBlank() -> onEmptyArguments(controller, this)
             else -> action(controller, arguments)
         }
         return true

+ 2 - 2
src/main/kotlin/com/sirekanyan/andersrobot/command/RegexCommand.kt

@@ -6,11 +6,11 @@ import kotlin.text.RegexOption.IGNORE_CASE
 
 class RegexCommand(
     private val pattern: String,
-    private val action: (AndersController) -> Unit,
+    private val action: (AndersController, Command) -> Unit,
 ) : Command {
     override fun execute(controller: AndersController, message: Message): Boolean {
         if (message.text?.contains(Regex(pattern, IGNORE_CASE)) == true) {
-            action(controller)
+            action(controller, this)
             return true
         }
         return false