diff options
Diffstat (limited to 'src/main/java/com/mavlonerkinboev/animarfo/telegram/bot')
-rw-r--r-- | src/main/java/com/mavlonerkinboev/animarfo/telegram/bot/Bot.java | 90 |
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; + } + } +} |