package files; import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.UpdatesListener; import com.pengrad.telegrambot.model.CallbackQuery; import com.pengrad.telegrambot.model.request.ParseMode; import com.pengrad.telegrambot.request.SendMessage; import com.pengrad.telegrambot.request.SendPhoto; import java.io.*; import java.util.Properties; // TODO: 7/25/21 Добавить поиск Аниме OVA, аниме по жанру, Дорамы, случайное аниме public class Bot { public static Properties properties = loadProperties(new File("app.properties")); public static TelegramBot telegramBot = new TelegramBot(properties.getProperty("TELEGRAM_TOKEN")); public static FileWriter log; public static void main(String[] args) throws IOException { log = new FileWriter("log.txt", false); telegramBot.setUpdatesListener(updates -> { updates.forEach(update -> { if (UserCallbackQuery.checkIfNotNull(update.callbackQuery())) { try { UserCallbackQuery.execute(update.callbackQuery()); } catch (IOException e) { e.printStackTrace(); } } if (UserMessage.checkIfNotNull(update.message())) { try { UserMessage.execute(update.message()); } catch (IOException e) { e.printStackTrace(); } } }); return UpdatesListener.CONFIRMED_UPDATES_ALL; }); } public static Properties loadProperties(File file) { Properties properties = new Properties(); try (FileInputStream fis = new FileInputStream(file)) { properties.load(fis); } catch (IOException e) { e.printStackTrace(); } return properties; } public static void sendAnimeAtMainMenu(String url, String typeOfAnime) { Anime[] anime = new Anime[28]; byte index = Anime.indexOfAnime; try { anime = Parse.getAnimeAtMainMenu(url, typeOfAnime); } catch (IOException e) { e.printStackTrace(); } Anime.setList(anime); telegramBot.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(MyKeyboard.getCarousel(typeOfAnime))); } public static void sendAnimeAtMainMenuByCallBackQuery(String typeOfAnime) { Anime[] anime = Anime.list; byte index = Anime.indexOfAnime; telegramBot.execute(new SendPhoto(UserCallbackQuery.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(MyKeyboard.getCarousel(typeOfAnime))); } public static void sendSearchedAnime(byte index, String searchedAnime) throws IOException { byte animeAtSearchSize = Parse.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime); if (animeAtSearchSize > 0) { Anime[] anime = new Anime[Parse.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime)]; try { anime = Parse.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime); } catch (IOException e) { e.printStackTrace(); } Anime.setSearchedAnimeSize(animeAtSearchSize); Anime.setList(anime); telegramBot.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(MyKeyboard.getCarousel("SearchedAnime"))); } else { telegramBot.execute(new SendMessage(UserMessage.chatId, "Прости, но я не смог найти аниме с таким названием...\nДавай поищем другое аниме!")); Anime.setIsSearchingAnAnime(true); } } public static void sendSearchedAnimeByCallBackQuery(CallbackQuery callbackQuery, byte index, Anime[] list) { telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), list[index].getImage()).caption(list[index].showInfo()).parseMode(ParseMode.HTML).replyMarkup(MyKeyboard.getCarousel("SearchedAnime"))); } }