diff options
| -rw-r--r-- | build.gradle | 1 | ||||
| -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 | 
4 files changed, 96 insertions, 37 deletions
| diff --git a/build.gradle b/build.gradle index ba9a8fb..4972522 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@  apply plugin: 'java'  apply plugin: 'application' +//noinspection GroovyAssignabilityCheck  repositories {      mavenCentral()  } 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; +    }  } |