|
@@ -4,6 +4,8 @@ import com.sirekanyan.andersrobot.api.WeatherApi
|
|
|
import com.sirekanyan.andersrobot.config.Config
|
|
import com.sirekanyan.andersrobot.config.Config
|
|
|
import com.sirekanyan.andersrobot.config.ConfigKey.BOT_TOKEN
|
|
import com.sirekanyan.andersrobot.config.ConfigKey.BOT_TOKEN
|
|
|
import com.sirekanyan.andersrobot.config.ConfigKey.BOT_USERNAME
|
|
import com.sirekanyan.andersrobot.config.ConfigKey.BOT_USERNAME
|
|
|
|
|
+import com.sirekanyan.andersrobot.extensions.getCityCommand
|
|
|
|
|
+import com.sirekanyan.andersrobot.extensions.isCelsiusCommand
|
|
|
import com.sirekanyan.andersrobot.extensions.isWeatherCommand
|
|
import com.sirekanyan.andersrobot.extensions.isWeatherCommand
|
|
|
import com.sirekanyan.andersrobot.extensions.sendText
|
|
import com.sirekanyan.andersrobot.extensions.sendText
|
|
|
import org.telegram.telegrambots.bots.DefaultAbsSender
|
|
import org.telegram.telegrambots.bots.DefaultAbsSender
|
|
@@ -25,9 +27,24 @@ class AndersRobot : DefaultAbsSender(DefaultBotOptions()), LongPollingBot {
|
|
|
override fun onUpdateReceived(update: Update) {
|
|
override fun onUpdateReceived(update: Update) {
|
|
|
val message = update.message
|
|
val message = update.message
|
|
|
val chatId = message.chatId
|
|
val chatId = message.chatId
|
|
|
|
|
+ println("${message.from?.id} => ${message.text}")
|
|
|
|
|
+ val isBetterAccuracy = message.chatId == 314085103L || message.chatId == 106547051L
|
|
|
|
|
+ val accuracy = if (isBetterAccuracy) 1 else 0
|
|
|
|
|
+ val cityCommand = getCityCommand(message.text)
|
|
|
when {
|
|
when {
|
|
|
|
|
+ !cityCommand.isNullOrEmpty() -> {
|
|
|
|
|
+ val temperature = weather.getTemperature(cityCommand, accuracy)
|
|
|
|
|
+ if (temperature == null) {
|
|
|
|
|
+ sendText(chatId, "Не знаю такого города")
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sendText(chatId, listOf(temperature).joinToString("\n"))
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ isCelsiusCommand(message.text) -> {
|
|
|
|
|
+ sendText(chatId, "Можешь звать меня просто Андерс")
|
|
|
|
|
+ }
|
|
|
isWeatherCommand(message.text) -> {
|
|
isWeatherCommand(message.text) -> {
|
|
|
- val temperatures = weather.getTemperatures()
|
|
|
|
|
|
|
+ val temperatures = weather.getTemperatures(accuracy)
|
|
|
if (temperatures.isNotEmpty()) {
|
|
if (temperatures.isNotEmpty()) {
|
|
|
sendText(chatId, temperatures.joinToString("\n"))
|
|
sendText(chatId, temperatures.joinToString("\n"))
|
|
|
}
|
|
}
|