Procházet zdrojové kódy

added webp stickers

Vadik Sirekanyan před 5 roky
rodič
revize
0a2216e7b3
51 změnil soubory, kde provedl 9 přidání a 12 odebrání
  1. binární
      data/200.webp
  2. binární
      data/201.webp
  3. binární
      data/202.webp
  4. binární
      data/210.webp
  5. binární
      data/211.webp
  6. binární
      data/212.webp
  7. binární
      data/221.webp
  8. binární
      data/230.webp
  9. binární
      data/231.webp
  10. binární
      data/232.webp
  11. binární
      data/300.webp
  12. binární
      data/301.webp
  13. binární
      data/302.webp
  14. binární
      data/310.webp
  15. binární
      data/311.webp
  16. binární
      data/312.webp
  17. binární
      data/321.webp
  18. binární
      data/500.webp
  19. binární
      data/501.webp
  20. binární
      data/502.webp
  21. binární
      data/503.webp
  22. binární
      data/504.webp
  23. binární
      data/511.webp
  24. binární
      data/520.webp
  25. binární
      data/521.webp
  26. binární
      data/522.webp
  27. binární
      data/600.webp
  28. binární
      data/601.webp
  29. binární
      data/602.webp
  30. binární
      data/611.webp
  31. binární
      data/621.webp
  32. binární
      data/701.webp
  33. binární
      data/711.webp
  34. binární
      data/721.webp
  35. binární
      data/731.webp
  36. binární
      data/741.webp
  37. binární
      data/800.webp
  38. binární
      data/801.webp
  39. binární
      data/802.webp
  40. binární
      data/803.webp
  41. binární
      data/804.webp
  42. binární
      data/900.webp
  43. binární
      data/901.webp
  44. binární
      data/902.webp
  45. binární
      data/903.webp
  46. binární
      data/904.webp
  47. binární
      data/905.webp
  48. binární
      data/906.webp
  49. 3 4
      src/main/kotlin/com/sirekanyan/andersrobot/AndersRobot.kt
  50. 2 2
      src/main/kotlin/com/sirekanyan/andersrobot/api/Weather.kt
  51. 4 6
      src/main/kotlin/com/sirekanyan/andersrobot/extensions/AbsSender.kt

binární
data/200.webp


binární
data/201.webp


binární
data/202.webp


binární
data/210.webp


binární
data/211.webp


binární
data/212.webp


binární
data/221.webp


binární
data/230.webp


binární
data/231.webp


binární
data/232.webp


binární
data/300.webp


binární
data/301.webp


binární
data/302.webp


binární
data/310.webp


binární
data/311.webp


binární
data/312.webp


binární
data/321.webp


binární
data/500.webp


binární
data/501.webp


binární
data/502.webp


binární
data/503.webp


binární
data/504.webp


binární
data/511.webp


binární
data/520.webp


binární
data/521.webp


binární
data/522.webp


binární
data/600.webp


binární
data/601.webp


binární
data/602.webp


binární
data/611.webp


binární
data/621.webp


binární
data/701.webp


binární
data/711.webp


binární
data/721.webp


binární
data/731.webp


binární
data/741.webp


binární
data/800.webp


binární
data/801.webp


binární
data/802.webp


binární
data/803.webp


binární
data/804.webp


binární
data/900.webp


binární
data/901.webp


binární
data/902.webp


binární
data/903.webp


binární
data/904.webp


binární
data/905.webp


binární
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))