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