Support processing of Telegram channel messages (#15104)

Signed-off-by: Dominique Lasserre <lasserre.d@gmail.com>
This commit is contained in:
Dominique Lasserre 2023-07-16 12:50:10 +02:00 committed by GitHub
parent 3e0099d6d1
commit d449fb8c48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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