From 2d79362e673da63aa28590d51d2740ad92d7cf23 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Mon, 24 Jun 2024 16:40:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D0=B1?= =?UTF-8?q?=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5=D0=BA.=20=D0=9E?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81?= =?UTF-8?q?=20API=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D0=B8:=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BF=D1=80=D0=B8=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B6=D0=B0=D1=82=D0=B8=D0=B8=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D1=80=D0=B0=D0=BC=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B2=D1=81=D0=B5=D0=B3=D0=B4=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D1=81=D1=8B=D0=BB=D0=B0=D0=B5=D1=82=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=20=D1=8D?= =?UTF-8?q?=D1=82=D0=BE=D0=B9=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=BE=D0=B9?= =?UTF-8?q?.=20=D0=95=D1=81=D0=BB=D0=B8=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D0=B0=D1=80=D0=BE=D0=B5?= =?UTF-8?q?,=20=D1=82=D0=BE=20=D1=81=D0=B0=D0=BC=D0=BE=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D1=82=20=D0=B1=D1=8B=D1=82=D1=8C=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 20 ++++++++-------- .../consumer/EventDistributorService.java | 23 ++++++++----------- .../context/convert/CallbackQueryConvert.java | 14 +++++++---- .../attachment/ButtonClickAttachment.java | 7 +++++- 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/pom.xml b/pom.xml index c4a486d..35b6005 100644 --- a/pom.xml +++ b/pom.xml @@ -38,28 +38,28 @@ UTF-8 UTF-8 - 1.2.0 + 1.3.0 - 6.8.0 + 6.9.7.1 - 3.3.0 + 3.13.1 - 2.7.2 + 3.0.3 - 3.11.0 + 3.13.0 - 1.6.13 + 1.7.0 - 3.3.0 + 3.3.1 - 3.6.0 + 3.7.0 - 3.1.0 + 3.2.4 - 3.0.1 + 3.1.0 diff --git a/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java b/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java index c671648..87c46d6 100644 --- a/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java +++ b/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java @@ -16,6 +16,7 @@ import dev.struchkov.godfather.telegram.simple.context.service.TelegramConnect; import org.jetbrains.annotations.NotNull; import org.telegram.telegrambots.meta.api.objects.CallbackQuery; import org.telegram.telegrambots.meta.api.objects.ChatMemberUpdated; +import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.api.objects.User; @@ -87,29 +88,23 @@ public class EventDistributorService implements EventDistributor { } private void processionCallback(CallbackQuery callbackQuery) { - final Message message = callbackQuery.getMessage(); + final MaybeInaccessibleMessage maybeInaccessibleMessage = callbackQuery.getMessage(); if (checkNotBlank(callbackQuery.getInlineMessageId())) { return; } - if (checkNotNull(message)) { - final Long fromId = message.getChat().getId(); - if (fromId < 0) { - - } else { - final Mail mail = CallbackQueryConvert.apply(callbackQuery); - eventDispatching.dispatch(new EventContainer<>(Mail.class, mail)); - } + if (checkNotNull(maybeInaccessibleMessage) && maybeInaccessibleMessage.isUserMessage()) { + final Mail mail = CallbackQueryConvert.apply(callbackQuery); + eventDispatching.dispatch(new EventContainer<>(Mail.class, mail)); } } private void processionMessage(Message message) { - final Long fromId = message.getChat().getId(); - if (fromId < 0) { - final ChatMail chatMail = MessageChatMailConvert.apply(message); - eventDispatching.dispatch(new EventContainer<>(ChatMail.class, chatMail)); - } else { + if (message.isUserMessage()) { final Mail mail = MessageMailConvert.apply(message); eventDispatching.dispatch(new EventContainer<>(Mail.class, mail)); + } else { + final ChatMail chatMail = MessageChatMailConvert.apply(message); + eventDispatching.dispatch(new EventContainer<>(ChatMail.class, chatMail)); } } diff --git a/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/convert/CallbackQueryConvert.java b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/convert/CallbackQueryConvert.java index e1bc51f..d13e5b5 100644 --- a/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/convert/CallbackQueryConvert.java +++ b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/convert/CallbackQueryConvert.java @@ -3,6 +3,7 @@ package dev.struchkov.godfather.telegram.main.context.convert; import dev.struchkov.godfather.main.domain.content.Mail; import dev.struchkov.godfather.telegram.domain.attachment.ButtonClickAttachment; import org.telegram.telegrambots.meta.api.objects.CallbackQuery; +import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.User; @@ -19,10 +20,12 @@ public class CallbackQueryConvert { final String callbackData = callbackQuery.getData(); final Mail mail = new Mail(); - mail.setId(callbackQuery.getMessage().getMessageId().toString()); + final MaybeInaccessibleMessage maybeInaccessibleMessage = callbackQuery.getMessage(); + + mail.setId(maybeInaccessibleMessage.getMessageId().toString()); mail.setCreateDate(LocalDateTime.now()); mail.setText(callbackData); - mail.addAttachment(convertToButtonClick(callbackData, callbackQuery.getMessage())); + mail.addAttachment(convertToButtonClick(callbackData, maybeInaccessibleMessage)); final Long chatId = callbackQuery.getFrom().getId(); mail.setFromPersonId(chatId.toString()); @@ -33,10 +36,13 @@ public class CallbackQueryConvert { return mail; } - private static ButtonClickAttachment convertToButtonClick(String callbackData, Message message) { + private static ButtonClickAttachment convertToButtonClick(String callbackData, MaybeInaccessibleMessage maybeInaccessibleMessage) { final ButtonClickAttachment buttonClickAttachment = new ButtonClickAttachment(); buttonClickAttachment.setRawCallBackData(callbackData); - buttonClickAttachment.setMessage(MessageMailConvert.apply(message)); + if (maybeInaccessibleMessage instanceof Message message) { + buttonClickAttachment.setMaybeInaccessibleMessage(MessageMailConvert.apply(message)); + } + if (callbackData.charAt(0) == '[' && callbackData.charAt(callbackData.length() - 1) == ']') { final String[] args = callbackData.substring(1, callbackData.length() - 1).split(";"); for (String arg : args) { diff --git a/telegram-domain/telegram-domain-main/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ButtonClickAttachment.java b/telegram-domain/telegram-domain-main/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ButtonClickAttachment.java index 9c2cc00..d7de9f4 100644 --- a/telegram-domain/telegram-domain-main/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ButtonClickAttachment.java +++ b/telegram-domain/telegram-domain-main/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ButtonClickAttachment.java @@ -19,7 +19,7 @@ import static dev.struchkov.haiti.utils.Inspector.isNotNull; public class ButtonClickAttachment extends Attachment { private String rawCallBackData; - private Mail message; + private Mail maybeInaccessibleMessage; private Map args = new HashMap<>(); @@ -27,6 +27,11 @@ public class ButtonClickAttachment extends Attachment { super(TelegramAttachmentType.BUTTON_CLICK.name()); } + @JsonIgnore + public Optional getMessage() { + return Optional.ofNullable(maybeInaccessibleMessage); + } + @JsonIgnore public void addClickArg(String type, String value) { isNotNull(type, value);