From 6e4837a8e7089253175bbc53296c7aea374d6da9 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sun, 7 Aug 2022 07:09:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BA=D1=82=D0=B8=D0=B2=D0=BD=D1=83=D1=8E=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8E=20=D0=B4=D0=BB=D1=8F=20Qua?= =?UTF-8?q?rkus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 102 +++++++++++++- telegram-consumer/pom.xml | 20 +-- .../telegram-consumer-main/pom.xml | 27 ++++ .../main/consumer}/CallbackQueryConvert.java | 7 +- .../main/consumer}/MessageMailConvert.java | 13 +- .../main/consumer}/SubscribeConvert.java | 4 +- .../main/consumer}/UnsubscribeConvert.java | 2 +- .../telegram-consumer-quarkus/pom.xml | 35 +++++ .../consumer/EventDistributorService.java | 126 +++++++++++++++++ .../telegram-consumer-simple/pom.xml | 35 +++++ .../consumer}/EventDistributorService.java | 18 +-- telegram-context/pom.xml | 18 +-- .../telegram/context/TelegramSending.java | 11 -- .../telegram-context-main}/pom.xml | 5 +- .../main}/context/TelegramConnect.java | 2 +- .../telegram-context-quarkus/pom.xml | 36 +++++ .../context/service/EventDistributor.java | 13 ++ .../context/service/SenderStorageService.java | 13 ++ .../quarkus/context/service/TelegramBot.java | 18 +++ .../context/service/TelegramSending.java | 12 ++ .../telegram-context-simple/pom.xml | 37 +++++ .../context/service}/EventDistributor.java | 2 +- .../service}/SenderStorageService.java | 2 +- .../simple/context/service}/TelegramBot.java | 2 +- .../context/service/TelegramSending.java | 11 ++ telegram-core/pom.xml | 37 +---- .../MailAutoresponderTelegram.java | 24 ---- telegram-core/telegram-core-main/pom.xml | 27 ++++ .../main/core}/TelegramDefaultConnect.java | 4 +- .../telegram/main/core/util}/Attachments.java | 4 +- .../main/core/util}/InlineKeyBoards.java | 14 +- telegram-core/telegram-core-quarkus/pom.xml | 36 +++++ .../core/MailAutoresponderTelegram.java | 24 ++++ .../quarkus/core/TelegramConnectBot.java | 125 +++++++++++++++++ .../quarkus/core/TelegramPollingBot.java | 59 ++++++++ .../core/service/AttachmentServiceImpl.java | 128 ++++++++++++++++++ .../core/service/SenderMapStorageService.java | 34 +++++ .../telegram-core-simple}/pom.xml | 12 +- .../core/MailAutoresponderTelegram.java | 24 ++++ .../simple/core}/TelegramConnectBot.java | 8 +- .../simple/core}/TelegramPollingBot.java | 6 +- .../core}/service/AttachmentServiceImpl.java | 6 +- .../service/SenderMapStorageService.java | 4 +- telegram-domain/pom.xml | 4 +- .../domain/attachment/CommandAttachment.java | 2 +- .../domain/attachment/ContactAttachment.java | 2 +- .../domain/attachment/DocumentAttachment.java | 2 +- .../domain/attachment/LinkAttachment.java | 2 +- .../attachment/PictureGroupAttachment.java | 2 +- .../telegram/domain/event/Subscribe.java | 2 +- .../telegram/domain/event/Unsubscribe.java | 2 +- .../domain/keyboard/InlineKeyBoard.java | 9 +- .../domain/keyboard/MarkupKeyBoard.java | 8 +- .../domain/keyboard/button/ContactButton.java | 2 +- .../domain/keyboard/button/UrlButton.java | 2 +- .../domain/keyboard/button/WebAppButton.java | 2 +- telegram-sender/pom.xml | 6 +- telegram-sender/telegram-sender-main/pom.xml | 31 +++++ .../main}/sender/util/KeyBoardConvert.java | 12 +- .../pom.xml | 12 +- .../quarkus/sender/SendPreProcessing.java | 0 .../quarkus/sender/SenderStorageService.java | 0 .../quarkus/sender/TelegramSender.java | 18 ++- .../telegram-sender-simple/pom.xml | 31 +++++ .../simple/sender}/SendPreProcessing.java | 2 +- .../simple/sender}/TelegramSender.java | 16 ++- 66 files changed, 1108 insertions(+), 208 deletions(-) create mode 100644 telegram-consumer/telegram-consumer-main/pom.xml rename {telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert => telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer}/CallbackQueryConvert.java (77%) rename {telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert => telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer}/MessageMailConvert.java (93%) rename {telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert => telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer}/SubscribeConvert.java (83%) rename {telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert => telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer}/UnsubscribeConvert.java (93%) create mode 100644 telegram-consumer/telegram-consumer-quarkus/pom.xml create mode 100644 telegram-consumer/telegram-consumer-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/consumer/EventDistributorService.java create mode 100644 telegram-consumer/telegram-consumer-simple/pom.xml rename telegram-consumer/{src/main/java/dev/struchkov/godfather/telegram/listen => telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer}/EventDistributorService.java (85%) delete mode 100644 telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramSending.java rename {telegram-sender/telegram-sender-core => telegram-context/telegram-context-main}/pom.xml (90%) rename telegram-context/{src/main/java/dev/struchkov/godfather/telegram => telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main}/context/TelegramConnect.java (73%) create mode 100644 telegram-context/telegram-context-quarkus/pom.xml create mode 100644 telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/EventDistributor.java create mode 100644 telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/SenderStorageService.java create mode 100644 telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramBot.java create mode 100644 telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramSending.java create mode 100644 telegram-context/telegram-context-simple/pom.xml rename telegram-context/{src/main/java/dev/struchkov/godfather/telegram/context => telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service}/EventDistributor.java (74%) rename telegram-context/{src/main/java/dev/struchkov/godfather/telegram/context => telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service}/SenderStorageService.java (79%) rename telegram-context/{src/main/java/dev/struchkov/godfather/telegram/context => telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service}/TelegramBot.java (84%) create mode 100644 telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramSending.java delete mode 100644 telegram-core/src/main/java/dev/struchkov/godfather/telegram/autoresponder/MailAutoresponderTelegram.java create mode 100644 telegram-core/telegram-core-main/pom.xml rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram => telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core}/TelegramDefaultConnect.java (88%) rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram/utils => telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util}/Attachments.java (97%) rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram/utils => telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util}/InlineKeyBoards.java (89%) create mode 100644 telegram-core/telegram-core-quarkus/pom.xml create mode 100644 telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/MailAutoresponderTelegram.java create mode 100644 telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramConnectBot.java create mode 100644 telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramPollingBot.java create mode 100644 telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/AttachmentServiceImpl.java create mode 100644 telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/SenderMapStorageService.java rename {telegram-sender/telegram-simple-sender => telegram-core/telegram-core-simple}/pom.xml (79%) create mode 100644 telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/MailAutoresponderTelegram.java rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram => telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core}/TelegramConnectBot.java (94%) rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram => telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core}/TelegramPollingBot.java (88%) rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram => telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core}/service/AttachmentServiceImpl.java (95%) rename telegram-core/{src/main/java/dev/struchkov/godfather/telegram => telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core}/service/SenderMapStorageService.java (84%) create mode 100644 telegram-sender/telegram-sender-main/pom.xml rename telegram-sender/{telegram-sender-core/src/main/java/dev/struchkov/godfather/telegram => telegram-sender-main/src/main/java/dev/struchkov/godfather/telegram/main}/sender/util/KeyBoardConvert.java (94%) rename telegram-sender/{telegram-quarkus-reactive-sender => telegram-sender-quarkus}/pom.xml (72%) rename telegram-sender/{telegram-quarkus-reactive-sender => telegram-sender-quarkus}/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SendPreProcessing.java (100%) rename telegram-sender/{telegram-quarkus-reactive-sender => telegram-sender-quarkus}/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SenderStorageService.java (100%) rename telegram-sender/{telegram-quarkus-reactive-sender => telegram-sender-quarkus}/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java (90%) create mode 100644 telegram-sender/telegram-sender-simple/pom.xml rename telegram-sender/{telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service => telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender}/SendPreProcessing.java (78%) rename telegram-sender/{telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service => telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender}/TelegramSender.java (90%) diff --git a/pom.xml b/pom.xml index 40ad1e8..a07057e 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ UTF-8 UTF-8 - 0.0.24 + 0.0.25 6.1.0 1.4.0 @@ -57,11 +57,71 @@ telegram-domain ${project.version} + dev.struchkov.godfather.telegram - telegram-context + telegram-context-main ${project.version} + + dev.struchkov.godfather.telegram + telegram-context-simple + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-context-quarkus + ${project.version} + + + + dev.struchkov.godfather.telegram + telegram-core-main + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-core-simple + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-core-quarkus + ${project.version} + + + + dev.struchkov.godfather.telegram + telegram-consumer-main + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-consumer-simple + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-consumer-quarkus + ${project.version} + + + + dev.struchkov.godfather.telegram + telegram-sender-main + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-sender-simple + ${project.version} + + + dev.struchkov.godfather.telegram + telegram-sender-quarkus + ${project.version} + + dev.struchkov.godfather.telegram telegram-core @@ -90,16 +150,45 @@ ${project.version} + dev.struchkov.godfather - bot-context + bot-domain-main + ${godfather.core.ver} + + + + dev.struchkov.godfather + bot-context-main ${godfather.core.ver} dev.struchkov.godfather - bot-core + bot-context-simple ${godfather.core.ver} + + dev.struchkov.godfather + bot-context-quarkus + ${godfather.core.ver} + + + + dev.struchkov.godfather + bot-core-main + ${godfather.core.ver} + + + dev.struchkov.godfather + bot-core-simple + ${godfather.core.ver} + + + dev.struchkov.godfather + bot-core-quarkus + ${godfather.core.ver} + + dev.struchkov.haiti @@ -112,6 +201,11 @@ telegrambots ${telegrambots.ver} + + org.telegram + telegrambots-meta + ${telegrambots.ver} + org.telegram diff --git a/telegram-consumer/pom.xml b/telegram-consumer/pom.xml index 39207ec..26fe469 100644 --- a/telegram-consumer/pom.xml +++ b/telegram-consumer/pom.xml @@ -10,20 +10,12 @@ 4.0.0 telegram-consumer - - - dev.struchkov.godfather.telegram - telegram-context - - - dev.struchkov.godfather - bot-context - - - dev.struchkov.godfather.telegram - telegram-core - - + pom + + telegram-consumer-main + telegram-consumer-simple + telegram-consumer-quarkus + 17 diff --git a/telegram-consumer/telegram-consumer-main/pom.xml b/telegram-consumer/telegram-consumer-main/pom.xml new file mode 100644 index 0000000..6635644 --- /dev/null +++ b/telegram-consumer/telegram-consumer-main/pom.xml @@ -0,0 +1,27 @@ + + + + dev.struchkov.godfather.telegram + telegram-consumer + 0.0.30 + + 4.0.0 + + telegram-consumer-main + + + + dev.struchkov.godfather.telegram + telegram-domain + + + + + 17 + 17 + UTF-8 + + + \ No newline at end of file diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/CallbackQueryConvert.java b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/CallbackQueryConvert.java similarity index 77% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/CallbackQueryConvert.java rename to telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/CallbackQueryConvert.java index 05338d1..cdf806d 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/CallbackQueryConvert.java +++ b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/CallbackQueryConvert.java @@ -1,11 +1,9 @@ -package dev.struchkov.godfather.telegram.convert; +package dev.struchkov.godfather.telegram.main.consumer; -import dev.struchkov.godfather.context.domain.content.Mail; +import dev.struchkov.godfather.main.domain.content.Mail; import org.telegram.telegrambots.meta.api.objects.CallbackQuery; import org.telegram.telegrambots.meta.api.objects.User; -import java.time.LocalDateTime; - /** * TODO: Добавить описание класса. * @@ -17,7 +15,6 @@ public class CallbackQueryConvert { final Mail mail = new Mail(); mail.setText(callbackQuery.getData()); mail.setPersonId(callbackQuery.getMessage().getChatId()); - mail.setAddDate(LocalDateTime.now()); final User user = callbackQuery.getFrom(); mail.setFirstName(user.getFirstName()); diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/MessageMailConvert.java b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java similarity index 93% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/MessageMailConvert.java rename to telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java index c648303..2eee279 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/MessageMailConvert.java +++ b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/MessageMailConvert.java @@ -1,13 +1,14 @@ -package dev.struchkov.godfather.telegram.convert; +package dev.struchkov.godfather.telegram.main.consumer; -import dev.struchkov.godfather.context.domain.content.Mail; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; +import dev.struchkov.godfather.main.domain.content.Mail; import dev.struchkov.godfather.telegram.domain.attachment.CommandAttachment; import dev.struchkov.godfather.telegram.domain.attachment.ContactAttachment; 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.haiti.utils.Checker; import dev.struchkov.haiti.utils.Strings; import org.telegram.telegrambots.meta.api.objects.Contact; import org.telegram.telegrambots.meta.api.objects.Document; @@ -22,7 +23,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import static dev.struchkov.haiti.utils.Checker.checkNotEmpty; import static dev.struchkov.haiti.utils.Exceptions.utilityClass; /** @@ -39,7 +39,6 @@ public final class MessageMailConvert { public static Mail apply(Message message) { final Mail mail = new Mail(); mail.setPersonId(message.getChatId()); - mail.setAddDate(LocalDateTime.now()); mail.setText(message.getText()); mail.setCreateDate(LocalDateTime.ofInstant(Instant.ofEpochSecond(message.getDate()), ZoneId.systemDefault())); mail.setFirstName(message.getChat().getFirstName()); @@ -115,7 +114,7 @@ public final class MessageMailConvert { private static List convertAttachments(Message message) { final List entities = message.getEntities(); - if (checkNotEmpty(entities)) { + if (Checker.checkNotEmpty(entities)) { return entities.stream() .map(entity -> convertEntity(message, entity)) .filter(Optional::isPresent) @@ -133,7 +132,7 @@ public final class MessageMailConvert { case "bot_command" -> { final String commandValue = entity.getText(); String commandArg = message.getText().replace(commandValue, ""); - if (checkNotEmpty(commandArg)) { + if (Checker.checkNotEmpty(commandArg)) { commandArg = commandArg.substring(1); } final CommandAttachment commandAttachment = new CommandAttachment(); diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/SubscribeConvert.java b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/SubscribeConvert.java similarity index 83% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/SubscribeConvert.java rename to telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/SubscribeConvert.java index 99d73f6..3d358c6 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/SubscribeConvert.java +++ b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/SubscribeConvert.java @@ -1,11 +1,13 @@ -package dev.struchkov.godfather.telegram.convert; +package dev.struchkov.godfather.telegram.main.consumer; import dev.struchkov.godfather.telegram.domain.event.Subscribe; +import dev.struchkov.haiti.utils.Exceptions; import org.telegram.telegrambots.meta.api.objects.Chat; import org.telegram.telegrambots.meta.api.objects.ChatMemberUpdated; import java.time.LocalDateTime; +import static dev.struchkov.haiti.utils.Exceptions.*; import static dev.struchkov.haiti.utils.Exceptions.utilityClass; public final class SubscribeConvert { diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/UnsubscribeConvert.java b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/UnsubscribeConvert.java similarity index 93% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/UnsubscribeConvert.java rename to telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/UnsubscribeConvert.java index 388ad76..3a43fb3 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/convert/UnsubscribeConvert.java +++ b/telegram-consumer/telegram-consumer-main/src/main/java/dev/struchkov/godfather/telegram/main/consumer/UnsubscribeConvert.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.convert; +package dev.struchkov.godfather.telegram.main.consumer; import dev.struchkov.godfather.telegram.domain.event.Unsubscribe; import org.telegram.telegrambots.meta.api.objects.Chat; diff --git a/telegram-consumer/telegram-consumer-quarkus/pom.xml b/telegram-consumer/telegram-consumer-quarkus/pom.xml new file mode 100644 index 0000000..a3fc7f4 --- /dev/null +++ b/telegram-consumer/telegram-consumer-quarkus/pom.xml @@ -0,0 +1,35 @@ + + + + dev.struchkov.godfather.telegram + telegram-consumer + 0.0.30 + + 4.0.0 + + telegram-consumer-quarkus + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-context-quarkus + + + dev.struchkov.godfather.telegram + telegram-consumer-main + + + dev.struchkov.godfather.telegram + telegram-core-quarkus + + + + \ No newline at end of file diff --git a/telegram-consumer/telegram-consumer-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/consumer/EventDistributorService.java b/telegram-consumer/telegram-consumer-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/consumer/EventDistributorService.java new file mode 100644 index 0000000..39d8a84 --- /dev/null +++ b/telegram-consumer/telegram-consumer-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/consumer/EventDistributorService.java @@ -0,0 +1,126 @@ +package dev.struchkov.godfather.telegram.quarkus.consumer; + +import dev.struchkov.godfather.main.domain.content.Mail; +import dev.struchkov.godfather.quarkus.context.service.EventHandler; +import dev.struchkov.godfather.telegram.domain.event.Subscribe; +import dev.struchkov.godfather.telegram.domain.event.Unsubscribe; +import dev.struchkov.godfather.telegram.main.consumer.CallbackQueryConvert; +import dev.struchkov.godfather.telegram.main.consumer.MessageMailConvert; +import dev.struchkov.godfather.telegram.main.consumer.SubscribeConvert; +import dev.struchkov.godfather.telegram.main.consumer.UnsubscribeConvert; +import dev.struchkov.godfather.telegram.quarkus.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.quarkus.core.TelegramConnectBot; +import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; +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.Message; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.api.objects.User; + +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +import static dev.struchkov.haiti.utils.Checker.checkNotNull; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [30.01.2020] + */ +public class EventDistributorService implements EventDistributor { + + private final Map> eventHandlerMap; + + public EventDistributorService(TelegramConnectBot telegramConnectBot, List eventProviders) { + this.eventHandlerMap = eventProviders.stream().collect(Collectors.groupingBy(EventHandler::getEventType)); + telegramConnectBot.initEventDistributor(this); + } + + @Override + public Uni processing(@NotNull Update update) { + return Uni.createFrom().voidItem() + .onItem().transformToUni( + v -> { + if (checkNotNull(update.getMessage())) { + final Message message = update.getMessage(); + if (!isEvent(message)) { + final Optional> optHandlers = getHandler(Mail.TYPE); + if (optHandlers.isPresent()) { + return Multi.createFrom().iterable(optHandlers.get()) + .onItem().transformToUni( + eventHandler -> eventHandler.handle(MessageMailConvert.apply(message)) + ).concatenate().toUni().replaceWithVoid(); + } + return Uni.createFrom().voidItem(); + } + } + if (checkNotNull(update.getCallbackQuery())) { + final CallbackQuery callbackQuery = update.getCallbackQuery(); + final Optional> optHandlers = getHandler(Mail.TYPE); + if (optHandlers.isPresent()) { + return Multi.createFrom().iterable(optHandlers.get()) + .onItem().transformToUni( + eventHandler -> eventHandler.handle(CallbackQueryConvert.apply(callbackQuery)) + ).concatenate().toUni().replaceWithVoid(); + } + return Uni.createFrom().voidItem(); + } + if (checkNotNull(update.getMyChatMember())) { + final ChatMemberUpdated chatMember = update.getMyChatMember(); + if ("kicked".equals(chatMember.getNewChatMember().getStatus())) { + + final Optional> optHandlers = getHandler(Unsubscribe.TYPE); + if (optHandlers.isPresent()) { + return Multi.createFrom().iterable(optHandlers.get()) + .onItem().transformToUni( + eventHandler -> eventHandler.handle(UnsubscribeConvert.apply(chatMember)) + ).concatenate().toUni().replaceWithVoid(); + } + return Uni.createFrom().voidItem(); + } + if ("member".equals(chatMember.getNewChatMember().getStatus())) { + final Optional> optHandlers = getHandler(Subscribe.TYPE); + if (optHandlers.isPresent()) { + return Multi.createFrom().iterable(optHandlers.get()) + .onItem().transformToUni( + eventHandler -> eventHandler.handle(SubscribeConvert.apply(chatMember)) + ).concatenate().toUni().replaceWithVoid(); + } + return Uni.createFrom().voidItem(); + } + } + return Uni.createFrom().voidItem(); + } + ); + } + + private boolean isEvent(Message message) { + return message.getChannelChatCreated() != null + || message.getDeleteChatPhoto() != null + || isNewChatMember(message.getNewChatMembers()) + || message.getNewChatTitle() != null + || message.getNewChatPhoto() != null + || message.getVideoChatEnded() != null + || message.getVideoChatParticipantsInvited() != null + || message.getVideoChatScheduled() != null + || message.getVideoNote() != null + || message.getVideoChatStarted() != null; + } + + private boolean isNewChatMember(List newChatMembers) { + if (newChatMembers == null) { + return true; + } else { + return !newChatMembers.isEmpty(); + } + } + + private Optional> getHandler(String type) { + return Optional.ofNullable(eventHandlerMap.get(type)); + } + +} diff --git a/telegram-consumer/telegram-consumer-simple/pom.xml b/telegram-consumer/telegram-consumer-simple/pom.xml new file mode 100644 index 0000000..e95e12b --- /dev/null +++ b/telegram-consumer/telegram-consumer-simple/pom.xml @@ -0,0 +1,35 @@ + + + + dev.struchkov.godfather.telegram + telegram-consumer + 0.0.30 + + 4.0.0 + + telegram-consumer-simple + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-context-simple + + + dev.struchkov.godfather.telegram + telegram-consumer-main + + + dev.struchkov.godfather.telegram + telegram-core-simple + + + + \ No newline at end of file diff --git a/telegram-consumer/src/main/java/dev/struchkov/godfather/telegram/listen/EventDistributorService.java b/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java similarity index 85% rename from telegram-consumer/src/main/java/dev/struchkov/godfather/telegram/listen/EventDistributorService.java rename to telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java index 4662299..69b6bff 100644 --- a/telegram-consumer/src/main/java/dev/struchkov/godfather/telegram/listen/EventDistributorService.java +++ b/telegram-consumer/telegram-consumer-simple/src/main/java/dev/struchkov/godfather/telegram/simple/consumer/EventDistributorService.java @@ -1,15 +1,15 @@ -package dev.struchkov.godfather.telegram.listen; +package dev.struchkov.godfather.telegram.simple.consumer; -import dev.struchkov.godfather.context.domain.content.Mail; -import dev.struchkov.godfather.context.service.EventHandler; -import dev.struchkov.godfather.telegram.TelegramConnectBot; -import dev.struchkov.godfather.telegram.context.EventDistributor; -import dev.struchkov.godfather.telegram.convert.CallbackQueryConvert; -import dev.struchkov.godfather.telegram.convert.MessageMailConvert; -import dev.struchkov.godfather.telegram.convert.SubscribeConvert; -import dev.struchkov.godfather.telegram.convert.UnsubscribeConvert; +import dev.struchkov.godfather.main.domain.content.Mail; +import dev.struchkov.godfather.simple.context.service.EventHandler; import dev.struchkov.godfather.telegram.domain.event.Subscribe; import dev.struchkov.godfather.telegram.domain.event.Unsubscribe; +import dev.struchkov.godfather.telegram.main.consumer.CallbackQueryConvert; +import dev.struchkov.godfather.telegram.main.consumer.MessageMailConvert; +import dev.struchkov.godfather.telegram.main.consumer.SubscribeConvert; +import dev.struchkov.godfather.telegram.main.consumer.UnsubscribeConvert; +import dev.struchkov.godfather.telegram.simple.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.simple.core.TelegramConnectBot; import org.jetbrains.annotations.NotNull; import org.telegram.telegrambots.meta.api.objects.CallbackQuery; import org.telegram.telegrambots.meta.api.objects.ChatMemberUpdated; diff --git a/telegram-context/pom.xml b/telegram-context/pom.xml index 12b0c84..a8eeb18 100644 --- a/telegram-context/pom.xml +++ b/telegram-context/pom.xml @@ -10,22 +10,16 @@ 4.0.0 telegram-context + pom + + telegram-context-main + telegram-context-simple + telegram-context-quarkus + 17 17 - - - dev.struchkov.godfather - bot-context - - - - org.telegram - telegrambots - - - \ No newline at end of file diff --git a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramSending.java b/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramSending.java deleted file mode 100644 index 4024890..0000000 --- a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramSending.java +++ /dev/null @@ -1,11 +0,0 @@ -package dev.struchkov.godfather.telegram.context; - -import dev.struchkov.godfather.context.domain.BoxAnswer; -import dev.struchkov.godfather.context.service.sender.Sending; -import org.jetbrains.annotations.NotNull; - -public interface TelegramSending extends Sending { - - void sendNotSave(@NotNull Long personId, @NotNull BoxAnswer boxAnswer); - -} diff --git a/telegram-sender/telegram-sender-core/pom.xml b/telegram-context/telegram-context-main/pom.xml similarity index 90% rename from telegram-sender/telegram-sender-core/pom.xml rename to telegram-context/telegram-context-main/pom.xml index 0d98eef..8e128bd 100644 --- a/telegram-sender/telegram-sender-core/pom.xml +++ b/telegram-context/telegram-context-main/pom.xml @@ -4,12 +4,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> dev.struchkov.godfather.telegram - telegram-sender + telegram-context 0.0.30 4.0.0 - telegram-sender-core + telegram-context-main 17 @@ -22,7 +22,6 @@ dev.struchkov.godfather.telegram telegram-domain - org.telegram telegrambots diff --git a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramConnect.java b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/TelegramConnect.java similarity index 73% rename from telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramConnect.java rename to telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/TelegramConnect.java index f084827..f4e96f0 100644 --- a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramConnect.java +++ b/telegram-context/telegram-context-main/src/main/java/dev/struchkov/godfather/telegram/main/context/TelegramConnect.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.context; +package dev.struchkov.godfather.telegram.main.context; import org.telegram.telegrambots.meta.bots.AbsSender; diff --git a/telegram-context/telegram-context-quarkus/pom.xml b/telegram-context/telegram-context-quarkus/pom.xml new file mode 100644 index 0000000..f41b5f6 --- /dev/null +++ b/telegram-context/telegram-context-quarkus/pom.xml @@ -0,0 +1,36 @@ + + + + dev.struchkov.godfather.telegram + telegram-context + 0.0.30 + + 4.0.0 + + telegram-context-quarkus + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather + bot-context-quarkus + + + dev.struchkov.godfather.telegram + telegram-context-main + + + + org.telegram + telegrambots-meta + + + + \ No newline at end of file diff --git a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/EventDistributor.java b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/EventDistributor.java new file mode 100644 index 0000000..7903717 --- /dev/null +++ b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/EventDistributor.java @@ -0,0 +1,13 @@ +package dev.struchkov.godfather.telegram.quarkus.context.service; + +import io.smallrye.mutiny.Uni; +import org.telegram.telegrambots.meta.api.objects.Update; + +import javax.validation.constraints.NotNull; + +public interface EventDistributor { + + Uni processing(@NotNull Update update); + +} + diff --git a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/SenderStorageService.java b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/SenderStorageService.java new file mode 100644 index 0000000..d55b8d0 --- /dev/null +++ b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/SenderStorageService.java @@ -0,0 +1,13 @@ +package dev.struchkov.godfather.telegram.quarkus.context.service; + +import io.smallrye.mutiny.Uni; + +public interface SenderStorageService { + + Uni getLastSendMessage(Long telegramId); + + Uni saveLastSendMessage(Long telegramId, Integer messageId); + + Uni removeLastSendMessage(Long telegramId); + +} diff --git a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramBot.java b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramBot.java new file mode 100644 index 0000000..618b416 --- /dev/null +++ b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramBot.java @@ -0,0 +1,18 @@ +package dev.struchkov.godfather.telegram.quarkus.context.service; + +import org.telegram.telegrambots.meta.bots.AbsSender; + +import javax.validation.constraints.NotNull; + +/** + * TODO: Добавить описание интерфейса. + * + * @author upagge [12.02.2020] + */ +public interface TelegramBot { + + AbsSender getAdsSender(); + + void initEventDistributor(@NotNull EventDistributor eventDistributor); + +} diff --git a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramSending.java b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramSending.java new file mode 100644 index 0000000..9b70661 --- /dev/null +++ b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramSending.java @@ -0,0 +1,12 @@ +package dev.struchkov.godfather.telegram.quarkus.context.service; + +import dev.struchkov.godfather.main.domain.BoxAnswer; +import dev.struchkov.godfather.quarkus.context.service.Sending; +import io.smallrye.mutiny.Uni; +import org.jetbrains.annotations.NotNull; + +public interface TelegramSending extends Sending { + + Uni sendNotSave(@NotNull Long personId, @NotNull BoxAnswer boxAnswer); + +} diff --git a/telegram-context/telegram-context-simple/pom.xml b/telegram-context/telegram-context-simple/pom.xml new file mode 100644 index 0000000..fcec8ee --- /dev/null +++ b/telegram-context/telegram-context-simple/pom.xml @@ -0,0 +1,37 @@ + + + + telegram-context + dev.struchkov.godfather.telegram + 0.0.30 + + 4.0.0 + + telegram-context-simple + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-context-main + + + + dev.struchkov.godfather + bot-context-simple + + + + org.telegram + telegrambots-meta + + + + \ No newline at end of file diff --git a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/EventDistributor.java b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/EventDistributor.java similarity index 74% rename from telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/EventDistributor.java rename to telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/EventDistributor.java index 2588cbc..38f42a8 100644 --- a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/EventDistributor.java +++ b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/EventDistributor.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.context; +package dev.struchkov.godfather.telegram.simple.context.service; import org.telegram.telegrambots.meta.api.objects.Update; diff --git a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/SenderStorageService.java b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/SenderStorageService.java similarity index 79% rename from telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/SenderStorageService.java rename to telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/SenderStorageService.java index 5ccf566..aa7a87a 100644 --- a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/SenderStorageService.java +++ b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/SenderStorageService.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.context; +package dev.struchkov.godfather.telegram.simple.context.service; import java.util.Optional; diff --git a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramBot.java b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramBot.java similarity index 84% rename from telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramBot.java rename to telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramBot.java index d413f0e..1c2f77c 100644 --- a/telegram-context/src/main/java/dev/struchkov/godfather/telegram/context/TelegramBot.java +++ b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramBot.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.context; +package dev.struchkov.godfather.telegram.simple.context.service; import org.telegram.telegrambots.meta.bots.AbsSender; diff --git a/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramSending.java b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramSending.java new file mode 100644 index 0000000..04e29e8 --- /dev/null +++ b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramSending.java @@ -0,0 +1,11 @@ +package dev.struchkov.godfather.telegram.simple.context.service; + +import dev.struchkov.godfather.main.domain.BoxAnswer; +import dev.struchkov.godfather.simple.context.service.Sending; +import org.jetbrains.annotations.NotNull; + +public interface TelegramSending extends Sending { + + void sendNotSave(@NotNull Long personId, @NotNull BoxAnswer boxAnswer); + +} diff --git a/telegram-core/pom.xml b/telegram-core/pom.xml index 2ac5087..de1dab6 100644 --- a/telegram-core/pom.xml +++ b/telegram-core/pom.xml @@ -7,41 +7,16 @@ telegram-bot 0.0.30 + + telegram-core-main + telegram-core-simple + telegram-core-quarkus + telegram-core + pom Telegram Core Allows you to create bots for Telegram - - - dev.struchkov.godfather.telegram - telegram-domain - - - dev.struchkov.godfather.telegram - telegram-context - - - - dev.struchkov.godfather - bot-core - - - - org.telegram - telegrambots - - - - org.telegram - telegrambots-abilities - - - - org.telegram - telegrambotsextensions - - - \ No newline at end of file diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/autoresponder/MailAutoresponderTelegram.java b/telegram-core/src/main/java/dev/struchkov/godfather/telegram/autoresponder/MailAutoresponderTelegram.java deleted file mode 100644 index 3331c17..0000000 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/autoresponder/MailAutoresponderTelegram.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.struchkov.godfather.telegram.autoresponder; - -import dev.struchkov.godfather.context.domain.content.Mail; -import dev.struchkov.godfather.context.service.PersonSettingService; -import dev.struchkov.godfather.context.service.StorylineService; -import dev.struchkov.godfather.context.service.sender.Sending; -import dev.struchkov.godfather.core.GeneralAutoResponder; - -/** - * TODO: Добавить описание класса. - * - * @author upagge [18.08.2019] - */ -public class MailAutoresponderTelegram extends GeneralAutoResponder { - - public MailAutoresponderTelegram( - Sending sending, - PersonSettingService personSettingService, - StorylineService storyLineService - ) { - super(sending, personSettingService, storyLineService); - } - -} diff --git a/telegram-core/telegram-core-main/pom.xml b/telegram-core/telegram-core-main/pom.xml new file mode 100644 index 0000000..0e7241c --- /dev/null +++ b/telegram-core/telegram-core-main/pom.xml @@ -0,0 +1,27 @@ + + + + dev.struchkov.godfather.telegram + telegram-core + 0.0.30 + + 4.0.0 + + telegram-core-main + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-context-main + + + + \ No newline at end of file diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramDefaultConnect.java b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/TelegramDefaultConnect.java similarity index 88% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramDefaultConnect.java rename to telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/TelegramDefaultConnect.java index 5eeb327..6734f4a 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramDefaultConnect.java +++ b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/TelegramDefaultConnect.java @@ -1,7 +1,7 @@ -package dev.struchkov.godfather.telegram; +package dev.struchkov.godfather.telegram.main.core; -import dev.struchkov.godfather.telegram.context.TelegramConnect; import dev.struchkov.godfather.telegram.domain.config.TelegramConnectConfig; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; import org.telegram.telegrambots.bots.DefaultAbsSender; import org.telegram.telegrambots.bots.DefaultBotOptions; import org.telegram.telegrambots.meta.bots.AbsSender; diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/Attachments.java b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/Attachments.java similarity index 97% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/Attachments.java rename to telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/Attachments.java index 55a75d9..03ec6a7 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/Attachments.java +++ b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/Attachments.java @@ -1,6 +1,6 @@ -package dev.struchkov.godfather.telegram.utils; +package dev.struchkov.godfather.telegram.main.core.util; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; import dev.struchkov.godfather.telegram.domain.attachment.CommandAttachment; import dev.struchkov.godfather.telegram.domain.attachment.ContactAttachment; import dev.struchkov.godfather.telegram.domain.attachment.DocumentAttachment; diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/InlineKeyBoards.java b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/InlineKeyBoards.java similarity index 89% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/InlineKeyBoards.java rename to telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/InlineKeyBoards.java index d9e78c0..b89dca5 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/utils/InlineKeyBoards.java +++ b/telegram-core/telegram-core-main/src/main/java/dev/struchkov/godfather/telegram/main/core/util/InlineKeyBoards.java @@ -1,16 +1,16 @@ -package dev.struchkov.godfather.telegram.utils; +package dev.struchkov.godfather.telegram.main.core.util; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; -import dev.struchkov.godfather.context.domain.keyboard.button.SimpleButton; -import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoard; -import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.button.SimpleButton; +import dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoard; +import dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoardLine; import dev.struchkov.godfather.telegram.domain.keyboard.InlineKeyBoard; import java.util.Arrays; import java.util.List; -import static dev.struchkov.godfather.context.domain.keyboard.button.SimpleButton.simpleButton; -import static dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; +import static dev.struchkov.godfather.main.domain.keyboard.button.SimpleButton.simpleButton; +import static dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; import static dev.struchkov.haiti.utils.Exceptions.utilityClass; public final class InlineKeyBoards { diff --git a/telegram-core/telegram-core-quarkus/pom.xml b/telegram-core/telegram-core-quarkus/pom.xml new file mode 100644 index 0000000..9e7efc1 --- /dev/null +++ b/telegram-core/telegram-core-quarkus/pom.xml @@ -0,0 +1,36 @@ + + + + telegram-core + dev.struchkov.godfather.telegram + 0.0.30 + + 4.0.0 + + telegram-core-quarkus + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-context-quarkus + + + + dev.struchkov.godfather.telegram + telegram-core-main + + + dev.struchkov.godfather + bot-core-quarkus + + + + \ No newline at end of file diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/MailAutoresponderTelegram.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/MailAutoresponderTelegram.java new file mode 100644 index 0000000..e997c1e --- /dev/null +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/MailAutoresponderTelegram.java @@ -0,0 +1,24 @@ +package dev.struchkov.godfather.telegram.quarkus.core; + +import dev.struchkov.godfather.main.domain.content.Mail; +import dev.struchkov.godfather.quarkus.context.service.PersonSettingService; +import dev.struchkov.godfather.quarkus.core.GeneralAutoResponder; +import dev.struchkov.godfather.quarkus.core.service.StorylineService; +import dev.struchkov.godfather.telegram.quarkus.context.service.TelegramSending; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [18.08.2019] + */ +public class MailAutoresponderTelegram extends GeneralAutoResponder { + + public MailAutoresponderTelegram( + TelegramSending sending, + PersonSettingService personSettingService, + StorylineService storyLineService + ) { + super(sending, personSettingService, storyLineService); + } + +} diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramConnectBot.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramConnectBot.java new file mode 100644 index 0000000..3df7dbc --- /dev/null +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramConnectBot.java @@ -0,0 +1,125 @@ +package dev.struchkov.godfather.telegram.quarkus.core; + +import dev.struchkov.godfather.telegram.domain.config.ProxyConfig; +import dev.struchkov.godfather.telegram.domain.config.ProxyConfig.Type; +import dev.struchkov.godfather.telegram.domain.config.TelegramConnectConfig; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; +import dev.struchkov.godfather.telegram.quarkus.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.quarkus.context.service.TelegramBot; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.telegram.telegrambots.bots.DefaultBotOptions; +import org.telegram.telegrambots.meta.TelegramBotsApi; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; + +import java.net.Authenticator; +import java.net.PasswordAuthentication; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [30.01.2020] + */ +public class TelegramConnectBot implements TelegramConnect { + + private static final Logger log = LoggerFactory.getLogger(TelegramConnectBot.class); + + private TelegramBot telegramBot; + private final TelegramConnectConfig telegramConnectConfig; + + public TelegramConnectBot(TelegramConnectConfig telegramConnectConfig) { + this.telegramConnectConfig = telegramConnectConfig; + initLongPolling(telegramConnectConfig); + } + +// public TelegramConnect(TelegramWebHookConfig telegramWebHookConfig) { +// initWebHook(telegramWebHookConfig); +// } +// +// private void initWebHook(TelegramWebHookConfig telegramWebHookConfig) { +// TelegramBotsApi botapi = new TelegramBotsApi(); +// final TelegramWebhookBot telegramWebhookBot = new TelegramHookBot(telegramWebHookConfig); +// try { +// botapi.registerBot(telegramWebhookBot); +// this.telegramBot = (TelegramBot) telegramWebhookBot; +// } catch (TelegramApiRequestException e) { +// e.printStackTrace(); +// } +// } + + private void initLongPolling(TelegramConnectConfig telegramConnectConfig) { + + final ProxyConfig proxyConfig = telegramConnectConfig.getProxyConfig(); + if (proxyConfig != null && proxyConfig.getPassword() != null) { + try { + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication( + proxyConfig.getUser(), + proxyConfig.getPassword().toCharArray() + ); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } + + final TelegramBotsApi botapi; + try { + if (proxyConfig != null && proxyConfig.getHost() != null) { + System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); + System.setProperty("javax.net.debug", "all"); + log.info(System.getProperty("https.protocols")); + DefaultBotOptions botOptions = new DefaultBotOptions(); + botOptions.setProxyHost(proxyConfig.getHost()); + botOptions.setProxyPort(proxyConfig.getPort()); + botOptions.setProxyType(convertProxyType(proxyConfig.getType())); + + + final TelegramPollingBot bot = new TelegramPollingBot(telegramConnectConfig, botOptions); + + botapi = new TelegramBotsApi(DefaultBotSession.class); + botapi.registerBot(bot); + this.telegramBot = bot; + } else { + final TelegramPollingBot bot = new TelegramPollingBot(telegramConnectConfig); + botapi = new TelegramBotsApi(DefaultBotSession.class); + botapi.registerBot(bot); + this.telegramBot = bot; + } + } catch (TelegramApiException e) { + log.error(e.getMessage()); + } + } + + private DefaultBotOptions.ProxyType convertProxyType(Type type) { + switch (type) { + case SOCKS5: + return DefaultBotOptions.ProxyType.SOCKS5; + case SOCKS4: + return DefaultBotOptions.ProxyType.SOCKS4; + case HTTP: + return DefaultBotOptions.ProxyType.HTTP; + default: + return DefaultBotOptions.ProxyType.NO_PROXY; + } + } + + public void initEventDistributor(EventDistributor eventDistributor) { + telegramBot.initEventDistributor(eventDistributor); + } + + public String getToken() { + return telegramConnectConfig.getBotToken(); + } + + @Override + public AbsSender getAbsSender() { + return telegramBot.getAdsSender(); + } + +} diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramPollingBot.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramPollingBot.java new file mode 100644 index 0000000..9a71091 --- /dev/null +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/TelegramPollingBot.java @@ -0,0 +1,59 @@ +package dev.struchkov.godfather.telegram.quarkus.core; + +import dev.struchkov.godfather.telegram.domain.config.TelegramConnectConfig; +import dev.struchkov.godfather.telegram.quarkus.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.quarkus.context.service.TelegramBot; +import org.jetbrains.annotations.NotNull; +import org.telegram.telegrambots.bots.DefaultBotOptions; +import org.telegram.telegrambots.bots.TelegramLongPollingBot; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.bots.AbsSender; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [15/07/2019] + */ +public class TelegramPollingBot extends TelegramLongPollingBot implements TelegramBot { + + private final TelegramConnectConfig telegramConnectConfig; + private EventDistributor eventDistributor; + + public TelegramPollingBot(TelegramConnectConfig telegramConnectConfig, DefaultBotOptions defaultBotOptions) { + super(defaultBotOptions); + this.telegramConnectConfig = telegramConnectConfig; + } + + public TelegramPollingBot(TelegramConnectConfig telegramConnectConfig) { + this.telegramConnectConfig = telegramConnectConfig; + } + + @Override + public void onUpdateReceived(Update update) { + if (update != null && eventDistributor != null) { + eventDistributor.processing(update) + .subscribe().asCompletionStage(); + } + } + + @Override + public String getBotUsername() { + return telegramConnectConfig.getBotUsername(); + } + + @Override + public String getBotToken() { + return telegramConnectConfig.getBotToken(); + } + + @Override + public AbsSender getAdsSender() { + return this; + } + + @Override + public void initEventDistributor(@NotNull EventDistributor eventDistributor) { + this.eventDistributor = eventDistributor; + } + +} diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/AttachmentServiceImpl.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/AttachmentServiceImpl.java new file mode 100644 index 0000000..02c01f7 --- /dev/null +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/AttachmentServiceImpl.java @@ -0,0 +1,128 @@ +package dev.struchkov.godfather.telegram.quarkus.core.service; + +import dev.struchkov.godfather.telegram.domain.attachment.DocumentAttachment; +import dev.struchkov.godfather.telegram.domain.attachment.Picture; +import dev.struchkov.godfather.telegram.domain.files.ByteContainer; +import dev.struchkov.godfather.telegram.domain.files.FileContainer; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.telegram.telegrambots.meta.api.methods.GetFile; +import org.telegram.telegrambots.meta.bots.AbsSender; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; +import java.util.stream.Stream; + +import static dev.struchkov.haiti.utils.Inspector.isNotNull; + +public class AttachmentServiceImpl { + + private static final Logger log = LoggerFactory.getLogger(AttachmentServiceImpl.class); + + private final AbsSender absSender; + private final String botToken; + + private String folderPathForFiles; + + public AttachmentServiceImpl(TelegramConnect telegramConnect) { + this.absSender = telegramConnect.getAbsSender(); + this.botToken = telegramConnect.getToken(); + } + + public void setFolderPathForFiles(String folderPathForFiles) { + if (folderPathForFiles != null) { + this.folderPathForFiles = folderPathForFiles + "/"; + try (final Stream pathStream = Files.list(Path.of(folderPathForFiles))) { + pathStream.forEach(path -> { + try { + Files.delete(path); + } catch (IOException e) { + log.error(e.getMessage()); + } + }); + } catch (IOException e) { + log.error(e.getMessage()); + } + } + } + + public FileContainer uploadFile(@NotNull DocumentAttachment documentAttachment) { + isNotNull(documentAttachment); + try { + final File file = downloadFile(documentAttachment); + return new FileContainer(documentAttachment.getFileName(), documentAttachment.getMimeType(), file); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return FileContainer.empty(); + } + + public ByteContainer uploadBytes(@NotNull DocumentAttachment documentAttachment) { + isNotNull(documentAttachment); + try { + final byte[] bytes = downloadBytes(documentAttachment); + return new ByteContainer(documentAttachment.getFileName(), documentAttachment.getMimeType(), bytes); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return ByteContainer.empty(); + } + + public ByteContainer uploadBytes(@NotNull Picture picture) { + isNotNull(picture); + try { + final byte[] bytes = downloadBytes(picture); + return new ByteContainer(null, "image/jpeg", bytes); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return ByteContainer.empty(); + } + + private byte[] downloadBytes(Picture picture) throws TelegramApiException, IOException { + return telegramDownloadBytes(picture.getFileId()); + } + + private byte[] downloadBytes(DocumentAttachment documentAttachment) throws TelegramApiException, IOException { + return telegramDownloadBytes(documentAttachment.getFileId()); + } + + private byte[] telegramDownloadBytes(String fileId) throws TelegramApiException, IOException { + final String fileUrl = getFileUrl(fileId); + return IOUtils.toByteArray(new URL(fileUrl)); + } + + private File downloadFile(DocumentAttachment documentAttachment) throws IOException, TelegramApiException { + final String fileUrl = getFileUrl(documentAttachment.getFileId()); + + final StringBuilder filePath = new StringBuilder(); + if (folderPathForFiles != null) { + filePath.append(folderPathForFiles); + } + filePath.append(UUID.randomUUID()); + filePath.append("_"); + filePath.append(documentAttachment.getFileName()); + + final File localFile = new File(filePath.toString()); + final InputStream is = new URL(fileUrl).openStream(); + FileUtils.copyInputStreamToFile(is, localFile); + return localFile; + } + + private String getFileUrl(String fileId) throws TelegramApiException { + final GetFile getFile = new GetFile(); + getFile.setFileId(fileId); + return absSender.execute(getFile).getFileUrl(botToken); + } + +} diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/SenderMapStorageService.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/SenderMapStorageService.java new file mode 100644 index 0000000..98af729 --- /dev/null +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/SenderMapStorageService.java @@ -0,0 +1,34 @@ +package dev.struchkov.godfather.telegram.quarkus.core.service; + +import dev.struchkov.godfather.telegram.quarkus.context.service.SenderStorageService; +import io.smallrye.mutiny.Uni; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.Map; + +import static dev.struchkov.haiti.utils.Inspector.isNotNull; + +public class SenderMapStorageService implements SenderStorageService { + + private final Map lastMessageId = new HashMap<>(); + + @Override + public Uni getLastSendMessage(Long telegramId) { + return Uni.createFrom().item(lastMessageId.get(telegramId)); + } + + @Override + public Uni saveLastSendMessage(@NotNull Long telegramId, @NotNull Integer messageId) { + isNotNull(telegramId); + lastMessageId.put(telegramId, messageId); + return Uni.createFrom().voidItem(); + } + + @Override + public Uni removeLastSendMessage(Long telegramId) { + lastMessageId.remove(telegramId); + return Uni.createFrom().voidItem(); + } + +} diff --git a/telegram-sender/telegram-simple-sender/pom.xml b/telegram-core/telegram-core-simple/pom.xml similarity index 79% rename from telegram-sender/telegram-simple-sender/pom.xml rename to telegram-core/telegram-core-simple/pom.xml index 3e3de4d..10ae98d 100644 --- a/telegram-sender/telegram-simple-sender/pom.xml +++ b/telegram-core/telegram-core-simple/pom.xml @@ -4,12 +4,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> dev.struchkov.godfather.telegram - telegram-sender + telegram-core 0.0.30 4.0.0 - telegram-simple-sender + telegram-core-simple 17 @@ -20,19 +20,17 @@ dev.struchkov.godfather.telegram - telegram-sender-core + telegram-context-simple dev.struchkov.godfather.telegram - telegram-core + telegram-core-main - dev.struchkov.godfather - bot-context + bot-core-simple - \ No newline at end of file diff --git a/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/MailAutoresponderTelegram.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/MailAutoresponderTelegram.java new file mode 100644 index 0000000..3141daa --- /dev/null +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/MailAutoresponderTelegram.java @@ -0,0 +1,24 @@ +package dev.struchkov.godfather.telegram.simple.core; + +import dev.struchkov.godfather.main.domain.content.Mail; +import dev.struchkov.godfather.simple.context.service.PersonSettingService; +import dev.struchkov.godfather.simple.core.GeneralAutoResponder; +import dev.struchkov.godfather.simple.core.service.StorylineService; +import dev.struchkov.godfather.telegram.simple.context.service.TelegramSending; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [18.08.2019] + */ +public class MailAutoresponderTelegram extends GeneralAutoResponder { + + public MailAutoresponderTelegram( + TelegramSending sending, + PersonSettingService personSettingService, + StorylineService storyLineService + ) { + super(sending, personSettingService, storyLineService); + } + +} diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramConnectBot.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramConnectBot.java similarity index 94% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramConnectBot.java rename to telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramConnectBot.java index d68d08b..5bb0c83 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramConnectBot.java +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramConnectBot.java @@ -1,11 +1,11 @@ -package dev.struchkov.godfather.telegram; +package dev.struchkov.godfather.telegram.simple.core; -import dev.struchkov.godfather.telegram.context.EventDistributor; -import dev.struchkov.godfather.telegram.context.TelegramBot; -import dev.struchkov.godfather.telegram.context.TelegramConnect; import dev.struchkov.godfather.telegram.domain.config.ProxyConfig; import dev.struchkov.godfather.telegram.domain.config.ProxyConfig.Type; import dev.struchkov.godfather.telegram.domain.config.TelegramConnectConfig; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; +import dev.struchkov.godfather.telegram.simple.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.simple.context.service.TelegramBot; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.telegram.telegrambots.bots.DefaultBotOptions; diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramPollingBot.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramPollingBot.java similarity index 88% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramPollingBot.java rename to telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramPollingBot.java index 647cfb4..f776a8b 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/TelegramPollingBot.java +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/TelegramPollingBot.java @@ -1,8 +1,8 @@ -package dev.struchkov.godfather.telegram; +package dev.struchkov.godfather.telegram.simple.core; -import dev.struchkov.godfather.telegram.context.EventDistributor; -import dev.struchkov.godfather.telegram.context.TelegramBot; import dev.struchkov.godfather.telegram.domain.config.TelegramConnectConfig; +import dev.struchkov.godfather.telegram.simple.context.service.EventDistributor; +import dev.struchkov.godfather.telegram.simple.context.service.TelegramBot; import org.jetbrains.annotations.NotNull; import org.telegram.telegrambots.bots.DefaultBotOptions; import org.telegram.telegrambots.bots.TelegramLongPollingBot; diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/AttachmentServiceImpl.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/AttachmentServiceImpl.java similarity index 95% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/AttachmentServiceImpl.java rename to telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/AttachmentServiceImpl.java index b79b689..ae5208c 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/AttachmentServiceImpl.java +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/AttachmentServiceImpl.java @@ -1,10 +1,10 @@ -package dev.struchkov.godfather.telegram.service; +package dev.struchkov.godfather.telegram.simple.core.service; -import dev.struchkov.godfather.telegram.context.TelegramConnect; import dev.struchkov.godfather.telegram.domain.attachment.DocumentAttachment; import dev.struchkov.godfather.telegram.domain.attachment.Picture; import dev.struchkov.godfather.telegram.domain.files.ByteContainer; import dev.struchkov.godfather.telegram.domain.files.FileContainer; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.jetbrains.annotations.NotNull; @@ -113,7 +113,7 @@ public class AttachmentServiceImpl { filePath.append("_"); filePath.append(documentAttachment.getFileName()); - final java.io.File localFile = new java.io.File(filePath.toString()); + final File localFile = new File(filePath.toString()); final InputStream is = new URL(fileUrl).openStream(); FileUtils.copyInputStreamToFile(is, localFile); return localFile; diff --git a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/SenderMapStorageService.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/SenderMapStorageService.java similarity index 84% rename from telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/SenderMapStorageService.java rename to telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/SenderMapStorageService.java index e0ef71c..efc810b 100644 --- a/telegram-core/src/main/java/dev/struchkov/godfather/telegram/service/SenderMapStorageService.java +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/SenderMapStorageService.java @@ -1,6 +1,6 @@ -package dev.struchkov.godfather.telegram.service; +package dev.struchkov.godfather.telegram.simple.core.service; -import dev.struchkov.godfather.telegram.context.SenderStorageService; +import dev.struchkov.godfather.telegram.simple.context.service.SenderStorageService; import org.jetbrains.annotations.NotNull; import java.util.HashMap; diff --git a/telegram-domain/pom.xml b/telegram-domain/pom.xml index 08a9d4d..8e9bb68 100644 --- a/telegram-domain/pom.xml +++ b/telegram-domain/pom.xml @@ -3,8 +3,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - telegram-bot dev.struchkov.godfather.telegram + telegram-bot 0.0.30 4.0.0 @@ -19,7 +19,7 @@ dev.struchkov.godfather - bot-context + bot-context-main diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/CommandAttachment.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/CommandAttachment.java index d7aa366..a3fa856 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/CommandAttachment.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/CommandAttachment.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.attachment; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; import java.util.Optional; diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ContactAttachment.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ContactAttachment.java index c2ade6a..2761a7a 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ContactAttachment.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/ContactAttachment.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.attachment; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; public class ContactAttachment extends Attachment { diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/DocumentAttachment.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/DocumentAttachment.java index b91abdf..e8ece15 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/DocumentAttachment.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/DocumentAttachment.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.attachment; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; public class DocumentAttachment extends Attachment { diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/LinkAttachment.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/LinkAttachment.java index 7545568..62e4373 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/LinkAttachment.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/LinkAttachment.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.attachment; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; import dev.struchkov.haiti.utils.Parser; import dev.struchkov.haiti.utils.domain.CompositeUrl; diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/PictureGroupAttachment.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/PictureGroupAttachment.java index be367d2..e9f1d51 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/PictureGroupAttachment.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/attachment/PictureGroupAttachment.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.attachment; -import dev.struchkov.godfather.context.domain.content.attachment.Attachment; +import dev.struchkov.godfather.main.domain.content.Attachment; import java.util.Comparator; import java.util.List; diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Subscribe.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Subscribe.java index 099da27..e2d4e96 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Subscribe.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Subscribe.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.event; -import dev.struchkov.godfather.context.domain.event.Event; +import dev.struchkov.godfather.main.domain.event.Event; import java.time.LocalDateTime; diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Unsubscribe.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Unsubscribe.java index 6b3a743..d0e3cbd 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Unsubscribe.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/event/Unsubscribe.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.event; -import dev.struchkov.godfather.context.domain.event.Event; +import dev.struchkov.godfather.main.domain.event.Event; import java.time.LocalDateTime; diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/InlineKeyBoard.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/InlineKeyBoard.java index de92a4d..2b17924 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/InlineKeyBoard.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/InlineKeyBoard.java @@ -1,14 +1,13 @@ package dev.struchkov.godfather.telegram.domain.keyboard; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoard; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardLine; -import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoard; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardLine; import java.util.ArrayList; import java.util.List; -import static dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; +import static dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; public class InlineKeyBoard implements KeyBoard { diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/MarkupKeyBoard.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/MarkupKeyBoard.java index b665333..2f21e4a 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/MarkupKeyBoard.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/MarkupKeyBoard.java @@ -1,14 +1,14 @@ package dev.struchkov.godfather.telegram.domain.keyboard; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardLine; -import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoard; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardLine; +import dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoard; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import static dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; +import static dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine; public class MarkupKeyBoard extends SimpleKeyBoard { diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/ContactButton.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/ContactButton.java index 3727830..1527e5c 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/ContactButton.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/ContactButton.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.keyboard.button; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; import org.jetbrains.annotations.NotNull; /** diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/UrlButton.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/UrlButton.java index 15fd779..ae001de 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/UrlButton.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/UrlButton.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.keyboard.button; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; import org.jetbrains.annotations.NotNull; public class UrlButton implements KeyBoardButton { diff --git a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/WebAppButton.java b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/WebAppButton.java index f2ec90f..64c9279 100644 --- a/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/WebAppButton.java +++ b/telegram-domain/src/main/java/dev/struchkov/godfather/telegram/domain/keyboard/button/WebAppButton.java @@ -1,6 +1,6 @@ package dev.struchkov.godfather.telegram.domain.keyboard.button; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; import org.jetbrains.annotations.NotNull; public class WebAppButton implements KeyBoardButton { diff --git a/telegram-sender/pom.xml b/telegram-sender/pom.xml index e5684a8..61000e9 100644 --- a/telegram-sender/pom.xml +++ b/telegram-sender/pom.xml @@ -12,9 +12,9 @@ telegram-sender pom - telegram-sender-core - telegram-quarkus-reactive-sender - telegram-simple-sender + telegram-sender-main + telegram-sender-simple + telegram-sender-quarkus diff --git a/telegram-sender/telegram-sender-main/pom.xml b/telegram-sender/telegram-sender-main/pom.xml new file mode 100644 index 0000000..a2f1006 --- /dev/null +++ b/telegram-sender/telegram-sender-main/pom.xml @@ -0,0 +1,31 @@ + + + + dev.struchkov.godfather.telegram + telegram-sender + 0.0.30 + + 4.0.0 + + telegram-sender-main + + + 17 + 17 + UTF-8 + + + + + org.telegram + telegrambots-meta + + + dev.struchkov.godfather.telegram + telegram-domain + + + + \ No newline at end of file diff --git a/telegram-sender/telegram-sender-core/src/main/java/dev/struchkov/godfather/telegram/sender/util/KeyBoardConvert.java b/telegram-sender/telegram-sender-main/src/main/java/dev/struchkov/godfather/telegram/main/sender/util/KeyBoardConvert.java similarity index 94% rename from telegram-sender/telegram-sender-core/src/main/java/dev/struchkov/godfather/telegram/sender/util/KeyBoardConvert.java rename to telegram-sender/telegram-sender-main/src/main/java/dev/struchkov/godfather/telegram/main/sender/util/KeyBoardConvert.java index 88c97e9..e928365 100644 --- a/telegram-sender/telegram-sender-core/src/main/java/dev/struchkov/godfather/telegram/sender/util/KeyBoardConvert.java +++ b/telegram-sender/telegram-sender-main/src/main/java/dev/struchkov/godfather/telegram/main/sender/util/KeyBoardConvert.java @@ -1,10 +1,10 @@ -package dev.struchkov.godfather.telegram.sender.util; +package dev.struchkov.godfather.telegram.main.sender.util; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoard; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton; -import dev.struchkov.godfather.context.domain.keyboard.KeyBoardLine; -import dev.struchkov.godfather.context.domain.keyboard.button.SimpleButton; -import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoard; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoard; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardButton; +import dev.struchkov.godfather.main.domain.keyboard.KeyBoardLine; +import dev.struchkov.godfather.main.domain.keyboard.button.SimpleButton; +import dev.struchkov.godfather.main.domain.keyboard.simple.SimpleKeyBoard; import dev.struchkov.godfather.telegram.domain.keyboard.InlineKeyBoard; import dev.struchkov.godfather.telegram.domain.keyboard.MarkupKeyBoard; import dev.struchkov.godfather.telegram.domain.keyboard.button.ContactButton; diff --git a/telegram-sender/telegram-quarkus-reactive-sender/pom.xml b/telegram-sender/telegram-sender-quarkus/pom.xml similarity index 72% rename from telegram-sender/telegram-quarkus-reactive-sender/pom.xml rename to telegram-sender/telegram-sender-quarkus/pom.xml index be5770e..eebb70b 100644 --- a/telegram-sender/telegram-quarkus-reactive-sender/pom.xml +++ b/telegram-sender/telegram-sender-quarkus/pom.xml @@ -9,7 +9,7 @@ 4.0.0 - telegram-quarkus-reactive-sender + telegram-sender-quarkus 17 @@ -20,17 +20,11 @@ dev.struchkov.godfather.telegram - telegram-sender-core + telegram-context-quarkus dev.struchkov.godfather.telegram - telegram-context - - - - io.smallrye.reactive - smallrye-mutiny-vertx-core - 2.24.1 + telegram-sender-main diff --git a/telegram-sender/telegram-quarkus-reactive-sender/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SendPreProcessing.java b/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SendPreProcessing.java similarity index 100% rename from telegram-sender/telegram-quarkus-reactive-sender/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SendPreProcessing.java rename to telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SendPreProcessing.java diff --git a/telegram-sender/telegram-quarkus-reactive-sender/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SenderStorageService.java b/telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SenderStorageService.java similarity index 100% rename from telegram-sender/telegram-quarkus-reactive-sender/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SenderStorageService.java rename to telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/SenderStorageService.java diff --git a/telegram-sender/telegram-quarkus-reactive-sender/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 similarity index 90% rename from telegram-sender/telegram-quarkus-reactive-sender/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java rename to telegram-sender/telegram-sender-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/sender/TelegramSender.java index bf416a3..4c73121 100644 --- a/telegram-sender/telegram-quarkus-reactive-sender/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 @@ -1,9 +1,11 @@ package dev.struchkov.godfather.telegram.quarkus.sender; -import dev.struchkov.godfather.context.domain.BoxAnswer; -import dev.struchkov.godfather.telegram.context.TelegramConnect; +import dev.struchkov.godfather.main.domain.BoxAnswer; +import dev.struchkov.godfather.main.domain.SendType; import dev.struchkov.godfather.telegram.domain.keyboard.InlineKeyBoard; -import dev.struchkov.godfather.telegram.sender.util.KeyBoardConvert; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; +import dev.struchkov.godfather.telegram.main.sender.util.KeyBoardConvert; +import dev.struchkov.godfather.telegram.quarkus.context.service.TelegramSending; import io.smallrye.mutiny.Uni; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -15,11 +17,11 @@ import org.telegram.telegrambots.meta.bots.AbsSender; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import static dev.struchkov.godfather.telegram.sender.util.KeyBoardConvert.convertInlineKeyBoard; +import static dev.struchkov.godfather.telegram.main.sender.util.KeyBoardConvert.convertInlineKeyBoard; import static dev.struchkov.haiti.utils.Checker.checkNotNull; import static dev.struchkov.haiti.utils.Inspector.isNotNull; -public class TelegramSender { +public class TelegramSender implements TelegramSending { private static final Logger log = LoggerFactory.getLogger(TelegramSender.class); @@ -47,10 +49,16 @@ public class TelegramSender { this.senderStorageService = senderStorageService; } + @Override public Uni send(@NotNull Long telegramId, @NotNull BoxAnswer boxAnswer) { return sendBoxAnswer(telegramId, boxAnswer, true); } + @Override + public SendType getType() { + return SendType.PRIVATE; + } + public Uni sendNotSave(@NotNull Long telegramId, @NotNull BoxAnswer boxAnswer) { return sendBoxAnswer(telegramId, boxAnswer, false); } diff --git a/telegram-sender/telegram-sender-simple/pom.xml b/telegram-sender/telegram-sender-simple/pom.xml new file mode 100644 index 0000000..beefb17 --- /dev/null +++ b/telegram-sender/telegram-sender-simple/pom.xml @@ -0,0 +1,31 @@ + + + + dev.struchkov.godfather.telegram + telegram-sender + 0.0.30 + + 4.0.0 + + telegram-sender-simple + + + 17 + 17 + UTF-8 + + + + + dev.struchkov.godfather.telegram + telegram-sender-main + + + dev.struchkov.godfather.telegram + telegram-context-simple + + + + \ No newline at end of file diff --git a/telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/SendPreProcessing.java b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/SendPreProcessing.java similarity index 78% rename from telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/SendPreProcessing.java rename to telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/SendPreProcessing.java index d37383f..f98d98a 100644 --- a/telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/SendPreProcessing.java +++ b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/SendPreProcessing.java @@ -1,4 +1,4 @@ -package dev.struchkov.godfather.telegram.sender.service; +package dev.struchkov.godfather.telegram.simple.sender; /** * // TODO: 18.09.2020 Добавить описание. diff --git a/telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/TelegramSender.java b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java similarity index 90% rename from telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/TelegramSender.java rename to telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java index bec12e5..b93f993 100644 --- a/telegram-sender/telegram-simple-sender/src/main/java/dev/struchkov/godfather/telegram/sender/service/TelegramSender.java +++ b/telegram-sender/telegram-sender-simple/src/main/java/dev/struchkov/godfather/telegram/simple/sender/TelegramSender.java @@ -1,12 +1,12 @@ -package dev.struchkov.godfather.telegram.sender.service; +package dev.struchkov.godfather.telegram.simple.sender; -import dev.struchkov.godfather.context.domain.BoxAnswer; -import dev.struchkov.godfather.context.service.sender.SendType; -import dev.struchkov.godfather.telegram.context.SenderStorageService; -import dev.struchkov.godfather.telegram.context.TelegramConnect; -import dev.struchkov.godfather.telegram.context.TelegramSending; +import dev.struchkov.godfather.main.domain.BoxAnswer; +import dev.struchkov.godfather.main.domain.SendType; import dev.struchkov.godfather.telegram.domain.keyboard.InlineKeyBoard; -import dev.struchkov.godfather.telegram.sender.util.KeyBoardConvert; +import dev.struchkov.godfather.telegram.main.context.TelegramConnect; +import dev.struchkov.godfather.telegram.main.sender.util.KeyBoardConvert; +import dev.struchkov.godfather.telegram.simple.context.service.SenderStorageService; +import dev.struchkov.godfather.telegram.simple.context.service.TelegramSending; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,6 +50,7 @@ public class TelegramSender implements TelegramSending { this.senderStorageService = senderStorageService; } + @Override public void send(@NotNull Long telegramId, @NotNull BoxAnswer boxAnswer) { sendBoxAnswer(telegramId, boxAnswer, true); } @@ -115,6 +116,7 @@ public class TelegramSender implements TelegramSending { } + @Override public SendType getType() { return SendType.PRIVATE; }