diff options
Diffstat (limited to 'src/main/java/files/Bot.java')
-rw-r--r-- | src/main/java/files/Bot.java | 92 |
1 files changed, 69 insertions, 23 deletions
diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java index 59190df..0a7975c 100644 --- a/src/main/java/files/Bot.java +++ b/src/main/java/files/Bot.java @@ -25,40 +25,65 @@ public class Bot { properties.load(new FileInputStream("app.properties")); // Creating telegram bot - TelegramBot telegramBot = new TelegramBot(properties.getProperty("telegram_token")); + TelegramBot telegramBot = new TelegramBot(properties.getProperty("TELEGRAM_TOKEN")); telegramBot.setUpdatesListener(updates -> { updates.forEach(update -> { - byte indexOfRecentlyAddedAnime = Anime.getIndexOfRecentlyAddedAnime(); - - if (update.callbackQuery() != null && update.message() != null) { + if (update.callbackQuery() != null) { CallbackQuery callbackQuery = update.callbackQuery(); String data = callbackQuery.data(); User user = callbackQuery.from(); int messageId = callbackQuery.message().messageId(); long chatId = callbackQuery.message().chat().id(); - System.out.println(callbackQuery.toString()); + if (data.equals("previousRecentlyAddedAnime")) { + if (Anime.getIndexOfAnime() == 0) { + Anime.setIndexOfAnime((byte) 19); + } else { + Anime.decreaseIndexOfAnime(); + } + Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); + } + if (data.equals("nextRecentlyAddedAnime")) { + if (Anime.getIndexOfAnime() == 19) { + Anime.setIndexOfAnime((byte) 0); + } else { + Anime.increaseIndexOfAnime(); + } + Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); + } - if (data.equals("previous")) { - Anime.decreaseIndexOfRecentlyAddedAnime(); - if (indexOfRecentlyAddedAnime == -1) Anime.setIndexOfRecentlyAddedAnime((byte) 19); - Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfRecentlyAddedAnime()); + if (data.equals("previousRecentlyReleasedAnime")) { + if (Anime.getIndexOfAnime() == 0) { + Anime.setIndexOfAnime((byte) 19); + } else { + Anime.decreaseIndexOfAnime(); + } + Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); } - if (data.equals("next")) { - Anime.increaseIndexOfRecentlyAddedAnime(); - if (indexOfRecentlyAddedAnime == 20) Anime.setIndexOfRecentlyAddedAnime((byte) 0); - Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfRecentlyAddedAnime()); + if (data.equals("nextRecentlyReleasedAnime")) { + if (Anime.getIndexOfAnime() == 19) { + Anime.setIndexOfAnime((byte) 0); + } else { + Anime.increaseIndexOfAnime(); + } + Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); } DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId); BaseResponse response = telegramBot.execute(deleteMessage); + } else if (update.message() != null && update.message().text().equals("Недавно добавленные аниме")) { + Anime.setIndexOfAnime((byte) 0); + Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime()); + } else if (update.message() != null && update.message().text().equals("Новинки аниме")) { + Anime.setIndexOfAnime((byte) 0); + Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime()); + } else if (update.message() != null && update.message().text().equals("/start")) { +// DataBase.saveUser(update); + telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(getMainKeyboard())); + } else if (update.message() != null) { + telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(getMainKeyboard())); } - DataBase.saveUser(update); - - indexOfRecentlyAddedAnime = 0; - Anime.setIndexOfRecentlyAddedAnime((byte) 0); - Bot.showRecentlyAddedAnime(telegramBot, update, (byte) indexOfRecentlyAddedAnime); }); return UpdatesListener.CONFIRMED_UPDATES_ALL; }); @@ -68,16 +93,17 @@ public class Bot { return new ReplyKeyboardMarkup( new String[]{"Поиск аниме"}, new String[]{"Недавно добавленные аниме"}, + new String[]{"Новинки аниме"}, new String[]{"Случайное аниме"}) .oneTimeKeyboard(true) .resizeKeyboard(true) .selective(true); } - public static Keyboard getCarouselKeyboard() { + public static Keyboard getCarouselKeyboard(String typeOfAnime) { return new InlineKeyboardMarkup( - new InlineKeyboardButton("<-").callbackData("previous"), - new InlineKeyboardButton("->").callbackData("next")); + new InlineKeyboardButton("<").callbackData("previous" + typeOfAnime), + new InlineKeyboardButton(">").callbackData("next" + typeOfAnime)); } public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) { @@ -87,7 +113,7 @@ public class Bot { } catch (IOException e) { e.printStackTrace(); } - telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard())); + telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime"))); } public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { @@ -97,6 +123,26 @@ public class Bot { } catch (IOException e) { e.printStackTrace(); } - telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard())); + telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyAddedAnime"))); + } + + public static void showRecentlyReleasedAnime(TelegramBot telegramBot, Update update, byte index) { + Anime[] anime = new Anime[20]; + try { + anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc"); + } catch (IOException e) { + e.printStackTrace(); + } + telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime"))); + } + + public static void showRecentlyReleasedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { + Anime[] anime = new Anime[20]; + try { + anime = Parser.getAnimeAtMainMenu("https://animego.org/anime?sort=a.startDate&direction=desc"); + } catch (IOException e) { + e.printStackTrace(); + } + telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(Bot.getCarouselKeyboard("RecentlyReleasedAnime"))); } } |