From a53b37eb6c7758a9aed3f38249a1c932d0adfb85 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Wed, 15 Feb 2023 22:41:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D1=83=20payloa?= =?UTF-8?q?d=20=D0=B4=D0=BB=D1=8F=20BoxAnswer=20=D0=B8=20Message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- telegram-consumer/telegram-consumer-main/pom.xml | 7 ++++++- .../main/consumer/MessageMailConvert.java | 9 +++++++-- .../telegram/main/context/BoxAnswerPayload.java | 15 +++++++++++++++ .../telegram/main/context/MessagePayload.java | 14 ++++++++++++++ .../telegram/quarkus/sender/TelegramSender.java | 15 +++++++++++++++ .../telegram/simple/sender/TelegramSender.java | 11 +++++++++++ 6 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/BoxAnswerPayload.java create mode 100644 telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/MessagePayload.java diff --git a/telegram-consumer/telegram-consumer-main/pom.xml b/telegram-consumer/telegram-consumer-main/pom.xml index a419f80..3ad3012 100644 --- a/telegram-consumer/telegram-consumer-main/pom.xml +++ b/telegram-consumer/telegram-consumer-main/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 dev.struchkov.godfather.telegram @@ -14,6 +15,10 @@ dev.struchkov.godfather.telegram telegram-domain + + dev.struchkov.godfather.telegram + telegram-context-main + diff --git a/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java index 4d53190..3d8ee25 100644 --- a/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java +++ b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java @@ -8,8 +8,10 @@ import dev.struchkov.godfather.telegram.domain.attachment.DocumentAttachment; import dev.struchkov.godfather.telegram.domain.attachment.LinkAttachment; import dev.struchkov.godfather.telegram.domain.attachment.Picture; import dev.struchkov.godfather.telegram.domain.attachment.PictureGroupAttachment; +import dev.struchkov.godfather.telegram.main.context.MessagePayload; import dev.struchkov.haiti.utils.Checker; import dev.struchkov.haiti.utils.Strings; +import org.telegram.telegrambots.meta.api.objects.Chat; import org.telegram.telegrambots.meta.api.objects.Contact; import org.telegram.telegrambots.meta.api.objects.Document; import org.telegram.telegrambots.meta.api.objects.Message; @@ -43,8 +45,11 @@ public final class MessageMailConvert { mail.setPersonId(chatId != null ? chatId.toString() : null); mail.setText(message.getText()); mail.setCreateDate(LocalDateTime.ofInstant(Instant.ofEpochSecond(message.getDate()), ZoneId.systemDefault())); - mail.setFirstName(message.getChat().getFirstName()); - mail.setLastName(message.getChat().getLastName()); + + final Chat chat = message.getChat(); + mail.setFirstName(chat.getFirstName()); + mail.setLastName(chat.getLastName()); + mail.setPayload(MessagePayload.USERNAME, chat.getUserName()); convertDocument(message.getDocument()).ifPresent(mail::addAttachment); convertContact(message.getContact()).ifPresent(mail::addAttachment); diff --git a/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/BoxAnswerPayload.java b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/BoxAnswerPayload.java new file mode 100644 index 0000000..870173f --- /dev/null +++ b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/BoxAnswerPayload.java @@ -0,0 +1,15 @@ +package dev.struchkov.godfather.telegram.main.context; + +import dev.struchkov.godfather.main.domain.ContextKey; +import dev.struchkov.haiti.utils.Exceptions; + +public final class BoxAnswerPayload { + + public static final ContextKey DISABLE_WEB_PAGE_PREVIEW = ContextKey.of("DISABLE_WEB_PAGE_PREVIEW", Boolean.class); + public static final ContextKey DISABLE_NOTIFICATION = ContextKey.of("DISABLE_NOTIFICATION", Boolean.class); + + private BoxAnswerPayload() { + Exceptions.utilityClass(); + } + +} diff --git a/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/MessagePayload.java b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/MessagePayload.java new file mode 100644 index 0000000..8cc2fcf --- /dev/null +++ b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/MessagePayload.java @@ -0,0 +1,14 @@ +package dev.struchkov.godfather.telegram.main.context; + +import dev.struchkov.godfather.main.domain.ContextKey; +import dev.struchkov.haiti.utils.Exceptions; + +public final class MessagePayload { + + public static final ContextKey USERNAME = ContextKey.of("KEY", String.class); + + private MessagePayload() { + Exceptions.utilityClass(); + } + +} diff --git a/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java b/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java index 47603b6..4496750 100644 --- a/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java +++ b/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java @@ -22,8 +22,11 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import java.util.List; +import static dev.struchkov.godfather.telegram.main.context.BoxAnswerPayload.DISABLE_NOTIFICATION; +import static dev.struchkov.godfather.telegram.main.context.BoxAnswerPayload.DISABLE_WEB_PAGE_PREVIEW; import static dev.struchkov.godfather.telegram.main.sender.util.KeyBoardConvert.convertInlineKeyBoard; import static dev.struchkov.haiti.utils.Checker.checkNotNull; +import static java.lang.Boolean.TRUE; public class TelegramSender implements TelegramSending { @@ -148,6 +151,18 @@ public class TelegramSender implements TelegramSending { sendMessage.setText(boxAnswer.getMessage()); sendMessage.setReplyMarkup(KeyBoardConvert.convertKeyBoard(boxAnswer.getKeyBoard())); + boxAnswer.getPayLoad(DISABLE_NOTIFICATION).ifPresent( + isDisable -> { + if (TRUE.equals(isDisable)) sendMessage.disableNotification(); + } + ); + + boxAnswer.getPayLoad(DISABLE_WEB_PAGE_PREVIEW).ifPresent( + isDisable -> { + if (TRUE.equals(isDisable)) sendMessage.disableWebPagePreview(); + } + ); + try { return absSender.execute(sendMessage); } catch (TelegramApiRequestException e) { diff --git a/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java index 7afebdc..0cc7031 100644 --- a/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java +++ b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java @@ -24,8 +24,11 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import static dev.struchkov.godfather.telegram.main.context.BoxAnswerPayload.DISABLE_NOTIFICATION; +import static dev.struchkov.godfather.telegram.main.context.BoxAnswerPayload.DISABLE_WEB_PAGE_PREVIEW; import static dev.struchkov.haiti.utils.Checker.checkNotNull; import static dev.struchkov.haiti.utils.Inspector.isNotNull; +import static java.lang.Boolean.TRUE; public class TelegramSender implements TelegramSending { @@ -136,6 +139,14 @@ public class TelegramSender implements TelegramSending { sendMessage.setChatId(telegramId); sendMessage.setText(boxAnswer.getMessage()); sendMessage.setReplyMarkup(KeyBoardConvert.convertKeyBoard(boxAnswer.getKeyBoard())); + + boxAnswer.getPayLoad(DISABLE_WEB_PAGE_PREVIEW).ifPresent(isDisable -> { + if (TRUE.equals(isDisable)) sendMessage.disableWebPagePreview(); + }); + boxAnswer.getPayLoad(DISABLE_NOTIFICATION).ifPresent(isDisable -> { + if (TRUE.equals(isDisable)) sendMessage.disableNotification(); + }); + try { final Message execute = absSender.execute(sendMessage); if (checkNotNull(senderRepository) && saveMessageId) {