]> git.basschouten.com Git - openhab-addons.git/commitdiff
Support processing of Telegram channel messages (#15104)
authorDominique Lasserre <lasserre.d@gmail.com>
Sun, 16 Jul 2023 10:50:10 +0000 (12:50 +0200)
committerGitHub <noreply@github.com>
Sun, 16 Jul 2023 10:50:10 +0000 (12:50 +0200)
Signed-off-by: Dominique Lasserre <lasserre.d@gmail.com>
bundles/org.openhab.binding.telegram/src/main/java/org/openhab/binding/telegram/internal/TelegramHandler.java

index 87d2288bc17a605eeb48aada3fc8adaab9b38607..627363113dd4e4fd45a40aed6cad778354cc0704 100644 (file)
@@ -281,6 +281,9 @@ public class TelegramHandler extends BaseThingHandler {
             String replyId = null;
 
             Message message = update.message();
+            if (message == null) {
+                message = update.channelPost();
+            }
             CallbackQuery callbackQuery = update.callbackQuery();
 
             if (message != null) {
@@ -297,8 +300,10 @@ public class TelegramHandler extends BaseThingHandler {
                 JsonObject messageRaw = JsonParser.parseString(gson.toJson(message)).getAsJsonObject();
                 JsonObject messagePayload = new JsonObject();
                 messagePayload.addProperty("message_id", message.messageId());
-                messagePayload.addProperty("from",
-                        String.join(" ", new String[] { message.from().firstName(), message.from().lastName() }));
+                if (messageRaw.has("from")) {
+                    messagePayload.addProperty("from",
+                            String.join(" ", new String[] { message.from().firstName(), message.from().lastName() }));
+                }
                 messagePayload.addProperty("chat_id", message.chat().id());
                 if (messageRaw.has("text")) {
                     messagePayload.addProperty("text", message.text());
@@ -371,9 +376,11 @@ public class TelegramHandler extends BaseThingHandler {
                 // process metadata
                 if (lastMessageURL != null || lastMessageText != null) {
                     lastMessageDate = message.date();
-                    lastMessageFirstName = message.from().firstName();
-                    lastMessageLastName = message.from().lastName();
-                    lastMessageUsername = message.from().username();
+                    if (message.from() != null) {
+                        lastMessageFirstName = message.from().firstName();
+                        lastMessageLastName = message.from().lastName();
+                        lastMessageUsername = message.from().username();
+                    }
                 }
             } else if (callbackQuery != null && callbackQuery.message() != null
                     && callbackQuery.message().text() != null) {