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;
}