summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlonerkinboev/animarfo/telegram/bot')
-rw-r--r--src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java
new file mode 100644
index 0000000..9cc831a
--- /dev/null
+++ b/src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java
@@ -0,0 +1,90 @@
+package com.mavlonerkinboev.animarfo.telegram.bot;
+
+import com.mavlonerkinboev.animarfo.App;
+import com.mavlonerkinboev.animarfo.anime.Anime;
+import com.mavlonerkinboev.animarfo.parser.Parser;
+import com.mavlonerkinboev.animarfo.telegram.user.TelegramUser;
+import com.mavlonerkinboev.animarfo.telegram.user.callbackquery.UserCallbackQuery;
+import com.mavlonerkinboev.animarfo.telegram.user.keyboard.UserKeyboard;
+import com.mavlonerkinboev.animarfo.telegram.user.message.UserMessage;
+import com.pengrad.telegrambot.TelegramBot;
+import com.pengrad.telegrambot.UpdatesListener;
+import com.pengrad.telegrambot.model.User;
+import com.pengrad.telegrambot.model.request.ParseMode;
+import com.pengrad.telegrambot.request.SendMessage;
+import com.pengrad.telegrambot.request.SendPhoto;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+
+// TODO: 7/25/21 Добавить Аниме OVA, аниме по жанру, Дорамы, случайное аниме
+
+public class Bot {
+ public final static TelegramBot TELEGRAM_BOT = new TelegramBot(App.PROPERTIES.getProperty("BOT_TOKEN"));
+ public static TelegramUser telegramUser = new TelegramUser();
+
+ public static void start() {
+ TELEGRAM_BOT.setUpdatesListener(updates -> {
+ updates.forEach(update -> {
+ if (update.callbackQuery() != null) {
+ try {
+ UserCallbackQuery.execute(update.callbackQuery());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (update.message() != null) {
+ User user = update.message().from();
+ SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss z");
+ simpleDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT+5"));
+ String formattedDate = simpleDateFormat.format(new java.util.Date(update.message().date() * 1000L));
+ telegramUser = new TelegramUser(user.id(), user.isBot(), user.firstName(), user.lastName(), user.username(), formattedDate);
+ try {
+ UserMessage.execute(update.message());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ return UpdatesListener.CONFIRMED_UPDATES_ALL;
+ });
+ }
+
+ public static void sendAnime(String url) {
+ Anime[] anime = new Anime[28];
+ byte index = Anime.index;
+ try {
+ anime = Parser.getAnime(url);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ Anime.setList(anime);
+ TELEGRAM_BOT.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel()));
+ }
+
+ public static void sendAnimeByCallBackQuery() {
+ Anime[] anime = Anime.list;
+ byte index = Anime.index;
+ TELEGRAM_BOT.execute(new SendPhoto(UserCallbackQuery.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel()));
+ }
+
+ public static void sendSearchedAnime() throws IOException {
+ String searchedAnime = Anime.searched;
+ byte index = Anime.index;
+ byte animeAtSearchSize = Parser.getSizeOfSearchedAnime("https://anime.anidub.life/?do=search&mode=advanced&subaction=search&titleonly=3&story=" + searchedAnime);
+ if (animeAtSearchSize > 0) {
+ Anime[] anime = new Anime[animeAtSearchSize];
+ try {
+ anime = Parser.getAnime("https://anime.anidub.life/?do=search&mode=advanced&subaction=search&titleonly=3&story=" + searchedAnime);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ Anime.size = animeAtSearchSize;
+ Anime.setList(anime);
+ TELEGRAM_BOT.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(UserKeyboard.getCarousel()));
+ } else {
+ TELEGRAM_BOT.execute(new SendMessage(UserMessage.chatId, "Прости, но я не смог найти аниме с таким названием...\nДавай поищем другое аниме!"));
+ Anime.isSearching = true;
+ }
+ }
+}