Ver código fonte

added webp stickers

Vadik Sirekanyan 5 anos atrás
pai
commit
0a2216e7b3

BIN
data/200.webp


BIN
data/201.webp


BIN
data/202.webp


BIN
data/210.webp


BIN
data/211.webp


BIN
data/212.webp


BIN
data/221.webp


BIN
data/230.webp


BIN
data/231.webp


BIN
data/232.webp


BIN
data/300.webp


BIN
data/301.webp


BIN
data/302.webp


BIN
data/310.webp


BIN
data/311.webp


BIN
data/312.webp


BIN
data/321.webp


BIN
data/500.webp


BIN
data/501.webp


BIN
data/502.webp


BIN
data/503.webp


BIN
data/504.webp


BIN
data/511.webp


BIN
data/520.webp


BIN
data/521.webp


BIN
data/522.webp


BIN
data/600.webp


BIN
data/601.webp


BIN
data/602.webp


BIN
data/611.webp


BIN
data/621.webp


BIN
data/701.webp


BIN
data/711.webp


BIN
data/721.webp


BIN
data/731.webp


BIN
data/741.webp


BIN
data/800.webp


BIN
data/801.webp


BIN
data/802.webp


BIN
data/803.webp


BIN
data/804.webp


BIN
data/900.webp


BIN
data/901.webp


BIN
data/902.webp


BIN
data/903.webp


BIN
data/904.webp


BIN
data/905.webp


BIN
data/906.webp


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

@@ -53,11 +53,10 @@ class AndersRobot : DefaultAbsSender(DefaultBotOptions()), LongPollingBot {
                 } else {
                     val text = temperature.format(accuracy)
                     val icon = temperature.findImageFile()
-                    if (icon == null) {
-                        sendText(chatId, text)
-                    } else {
-                        sendPhoto(chatId, icon, text)
+                    if (icon != null) {
+                        sendSticker(chatId, icon)
                     }
+                    sendText(chatId, text)
                 }
             }
             !addCityCommand.isNullOrEmpty() -> {

+ 2 - 2
src/main/kotlin/com/sirekanyan/andersrobot/api/Weather.kt

@@ -23,11 +23,11 @@ data class Weather(
 
     fun findImageFile(): File? {
         val w = weather.firstOrNull() ?: return null
-        return File("data/${w.id}.png").takeIf { it.exists() }
+        return File("data/${w.id}.webp").takeIf { it.exists() }
     }
 
     fun format(accuracy: Int): String =
-        formatTemperature(accuracy) + " — $name"
+        "$name " + formatTemperature(accuracy)
 
     private fun formatTemperature(accuracy: Int): String =
         "%.${accuracy}f°C".format(main.temp)

+ 4 - 6
src/main/kotlin/com/sirekanyan/andersrobot/extensions/AbsSender.kt

@@ -1,7 +1,7 @@
 package com.sirekanyan.andersrobot.extensions
 
 import org.telegram.telegrambots.meta.api.methods.send.SendMessage
-import org.telegram.telegrambots.meta.api.methods.send.SendPhoto
+import org.telegram.telegrambots.meta.api.methods.send.SendSticker
 import org.telegram.telegrambots.meta.api.objects.InputFile
 import org.telegram.telegrambots.meta.api.objects.Message
 import org.telegram.telegrambots.meta.bots.AbsSender
@@ -13,15 +13,13 @@ private val cachedFileIds: MutableMap<File, String> = ConcurrentHashMap()
 fun AbsSender.sendText(chatId: Long, text: String): Message =
     execute(SendMessage(chatId, text))
 
-fun AbsSender.sendPhoto(chatId: Long, file: File, caption: String) {
-    fun send(f: InputFile) = execute(SendPhoto().setChatId(chatId).setPhoto(f).setCaption(caption))
+fun AbsSender.sendSticker(chatId: Long, file: File) {
+    fun send(f: InputFile) = execute(SendSticker().setChatId(chatId).setSticker(f))
     val cachedFileId = cachedFileIds[file]
     if (cachedFileId == null) {
         println("sending file $file")
         val message = send(InputFile(file, file.name))
-        message.photo.maxByOrNull { it.width }?.fileId?.let { fileId ->
-            cachedFileIds[file] = fileId
-        }
+        cachedFileIds[file] = message.sticker.fileId
     } else {
         println("sending fileId $cachedFileId")
         send(InputFile(cachedFileId))