diff options
Diffstat (limited to 'src/main/java/files')
-rw-r--r-- | src/main/java/files/Anime.java | 18 | ||||
-rw-r--r-- | src/main/java/files/Bot.java | 92 | ||||
-rw-r--r-- | src/main/java/files/entity/TelegramUser.java | 22 |
3 files changed, 95 insertions, 37 deletions
diff --git a/src/main/java/files/Anime.java b/src/main/java/files/Anime.java index 6fd72b8..db2fcbf 100644 --- a/src/main/java/files/Anime.java +++ b/src/main/java/files/Anime.java @@ -6,7 +6,7 @@ public class Anime { private final String[] genres; private final String year; private final String image; - private static byte indexOfRecentlyAddedAnime = 0; + private static byte indexOfAnime = 0; public Anime(String name, String description, String[] genres, String year, String image) { this.name = name; @@ -26,19 +26,19 @@ public class Anime { return image; } - public static byte getIndexOfRecentlyAddedAnime() { - return indexOfRecentlyAddedAnime; + public static byte getIndexOfAnime() { + return indexOfAnime; } - public static void setIndexOfRecentlyAddedAnime(byte number) { - indexOfRecentlyAddedAnime = number; + public static void setIndexOfAnime(byte number) { + indexOfAnime = number; } - public static void decreaseIndexOfRecentlyAddedAnime() { - indexOfRecentlyAddedAnime--; + public static void decreaseIndexOfAnime() { + indexOfAnime--; } - public static void increaseIndexOfRecentlyAddedAnime() { - indexOfRecentlyAddedAnime++; + public static void increaseIndexOfAnime() { + indexOfAnime++; } } 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"))); } } diff --git a/src/main/java/files/entity/TelegramUser.java b/src/main/java/files/entity/TelegramUser.java index d32189a..5c0d6af 100644 --- a/src/main/java/files/entity/TelegramUser.java +++ b/src/main/java/files/entity/TelegramUser.java @@ -8,11 +8,11 @@ import javax.persistence.Id; @Entity public class TelegramUser { @Id - private Long id; - private String username; - private Boolean isBot; - private String fullName; - private String date; + private static Long id; + private static String username; + private static Boolean isBot; + private static String fullName; + private static String date; public TelegramUser() {} @@ -28,4 +28,16 @@ public class TelegramUser { String lastName = user.lastName(); return (lastName != null) ? (" " + lastName) : (""); } + + public static Long getId() { + return id; + } + + public static String getUsername() { + return username; + } + + public static String getFullName() { + return fullName; + } } |