diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/files/Anime.java | 13 | ||||
| -rw-r--r-- | src/main/java/files/Bot.java | 69 | ||||
| -rw-r--r-- | src/main/java/files/Parser.java | 4 | ||||
| -rw-r--r-- | src/main/java/files/UserCallbackQuery.java | 32 | ||||
| -rw-r--r-- | src/main/java/files/UserMessage.java | 70 | ||||
| -rw-r--r-- | src/main/java/files/entity/TelegramUser.java | 10 | 
6 files changed, 115 insertions, 83 deletions
| diff --git a/src/main/java/files/Anime.java b/src/main/java/files/Anime.java index 9dae88b..4a8e79f 100644 --- a/src/main/java/files/Anime.java +++ b/src/main/java/files/Anime.java @@ -10,6 +10,7 @@ public class Anime {      private static Anime[] list;      private static byte indexOfAnime = 0;      private static String searchedAnime; +    private static byte searchedAnimeSize;      private static boolean isSearchingAnAnime;      public Anime(String name, String description, String[] genres, String year, String image, String url) { @@ -23,8 +24,8 @@ public class Anime {      public String showInfo() {          return "Имя: " + this.name + System.lineSeparator() + -                "Описание: " + this.description + System.lineSeparator() + -                "Год: " + this.year + System.lineSeparator(); +                "Год: " + this.year + System.lineSeparator() + +                "Описание: " + this.description + System.lineSeparator();      }      public String getImage() { @@ -67,6 +68,14 @@ public class Anime {          Anime.isSearchingAnAnime = isSearchingAnAnime;      } +    public static void setSearchedAnimeSize(byte searchedAnimeSize) { +        Anime.searchedAnimeSize = searchedAnimeSize; +    } + +    public static byte getSearchedAnimeSize() { +        return Anime.searchedAnimeSize; +    } +      public static Anime[] getList() {          return list;      } diff --git a/src/main/java/files/Bot.java b/src/main/java/files/Bot.java index a533ebd..55eff9b 100644 --- a/src/main/java/files/Bot.java +++ b/src/main/java/files/Bot.java @@ -20,54 +20,22 @@ public class Bot {          // Creating telegram bot          TelegramBot telegramBot = new TelegramBot(properties.getProperty("TELEGRAM_TOKEN")); +        // Setting updates listener          telegramBot.setUpdatesListener(updates -> {              updates.forEach(update -> {                  if (UserCallbackQuery.checkIfNotNull(update.callbackQuery())) {                      UserCallbackQuery.setInformation(update.callbackQuery());                      UserCallbackQuery.execute(telegramBot); -                } else if (update.message() != null && update.message().text().equals("Поиск аниме")) { -                    Anime.setIndexOfAnime((byte) 0); -                    Anime.setIsSearchingAnAnime(true); -                    telegramBot.execute(new SendMessage(update.message().chat().id(), "Введи название аниме, которое хочешь найти...")); -                } else if (update.message() != null && update.message().text().equals("Недавно добавленные аниме")) { -                    Anime.setIndexOfAnime((byte) 0); -                    Anime.setIsSearchingAnAnime(false); -                    try { -                        Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime()); -                    } catch (IOException e) { -                        e.printStackTrace(); -                    } -                } else if (update.message() != null && update.message().text().equals("Новинки аниме")) { -                    Anime.setIndexOfAnime((byte) 0); -                    Anime.setIsSearchingAnAnime(false); -                    try { -                        Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime()); -                    } catch (IOException e) { -                        e.printStackTrace(); -                    } -                } else if (update.message() != null && update.message().text().equals("/start")) { -//                    DataBase.saveUser(update); -                    Anime.setIsSearchingAnAnime(false); -                    telegramBot.execute(new SendMessage(update.message().chat().id(), ("Приветики " + update.message().from().firstName() + ", меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(MyKeyboard.getMain())); -                } else if (update.message() != null) { -                    if (Anime.getIsSearchingAnAnime()) { -                        Anime.setSearchedAnime(update.message().text()); -                        Anime.setIsSearchingAnAnime(false); -                        try { -                            Bot.showSearchedAnime(telegramBot, update, Anime.getIndexOfAnime(), Anime.getSearchedAnime()); -                        } catch (IOException e) { -                            e.printStackTrace(); -                        } -                    } else { -                        telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(MyKeyboard.getMain())); -                    } +                } else if (UserMessage.checkIfNotNull(update.message())) { +                    UserMessage.setInformation(update.message()); +                    UserMessage.execute(telegramBot, update);                  }              });              return UpdatesListener.CONFIRMED_UPDATES_ALL;          });      } -    private static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) throws IOException { +    public static void showAnimeAtMainMenu(TelegramBot telegramBot, Update update, byte index, String url, String typeOfAnime) throws IOException {          Anime[] anime = new Anime[Parser.getAnimeAtSearchSize(url)];          try {              anime = Parser.getAnimeAtMainMenu(url); @@ -78,18 +46,21 @@ public class Bot {          telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime)));      } -    private static void showAnimeAtMainMenuCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String typeOfAnime, Anime[] list) { +    public static void showAnimeAtMainMenuByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String typeOfAnime, Anime[] list) {          telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), list[index].getImage()).caption(list[index].showInfo()).replyMarkup(MyKeyboard.getCarousel(typeOfAnime))); -   } +    }      public static void showSearchedAnime(TelegramBot telegramBot, Update update, byte index, String searchedAnime) throws IOException { -        if (Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime) > 0) { +        byte animeAtSearchSize = Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime); +        if (animeAtSearchSize > 0) {              Anime[] anime = new Anime[Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + searchedAnime)];              try {                  anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime);              } catch (IOException e) {                  e.printStackTrace();              } +            Anime.setSearchedAnimeSize(animeAtSearchSize); +            Anime.setList(anime);              telegramBot.execute(new SendPhoto(update.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));          } else {              telegramBot.execute(new SendMessage(update.message().chat().id(), "Прости, но я не смог найти аниме с таким названием...\nДавай поищем другое аниме!")); @@ -97,29 +68,23 @@ public class Bot {          }      } -    public static void showSearchedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, String searchedAnime) { -        Anime[] anime = new Anime[20]; -        try { -            anime = Parser.getAnimeAtSearch("https://animego.org/search/all?q=" + searchedAnime); -        } catch (IOException e) { -            e.printStackTrace(); -        } -        telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), anime[index].getImage()).caption(anime[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime"))); +    public static void showSearchedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index, Anime[] list) { +        telegramBot.execute(new SendPhoto(callbackQuery.message().chat().id(), list[index].getImage()).caption(list[index].showInfo()).replyMarkup(MyKeyboard.getCarousel("SearchedAnime")));      }      public static void showRecentlyAddedAnime(TelegramBot telegramBot, Update update, byte index) throws IOException {          showAnimeAtMainMenu(telegramBot, update, index, "https://animego.org/anime?sort=a.createdAt&direction=desc", "RecentlyAddedAnime");      } -    public static void showRecentlyAddedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { -        showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyAddedAnime", Anime.getList()); +    public static void showRecentlyAddedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { +        showAnimeAtMainMenuByCallBackQuery(telegramBot, callbackQuery, index,"RecentlyAddedAnime", Anime.getList());      }      public static void showRecentlyReleasedAnime(TelegramBot telegramBot, Update update, byte index) throws IOException {          showAnimeAtMainMenu(telegramBot, update, index, "https://animego.org/anime?sort=a.startDate&direction=desc", "RecentlyReleasedAnime");      } -    public static void showRecentlyReleasedAnimeCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { -        showAnimeAtMainMenuCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList()); +    public static void showRecentlyReleasedAnimeByCallBackQuery(TelegramBot telegramBot, CallbackQuery callbackQuery, byte index) { +        showAnimeAtMainMenuByCallBackQuery(telegramBot, callbackQuery, index,"RecentlyReleasedAnime", Anime.getList());      }  } diff --git a/src/main/java/files/Parser.java b/src/main/java/files/Parser.java index 09dceea..4d7f863 100644 --- a/src/main/java/files/Parser.java +++ b/src/main/java/files/Parser.java @@ -10,7 +10,6 @@ import java.net.URL;  import java.util.ArrayList;  public class Parser { -      public static Document getPage(String url) throws IOException {          return Jsoup.parse(new URL(url), 3000);      } @@ -134,5 +133,4 @@ public class Parser {          byte countOfAnime = (byte) namesTemp.size();          return countOfAnime;      } - -    }
\ No newline at end of file +}
\ No newline at end of file diff --git a/src/main/java/files/UserCallbackQuery.java b/src/main/java/files/UserCallbackQuery.java index 92f2391..7a297a8 100644 --- a/src/main/java/files/UserCallbackQuery.java +++ b/src/main/java/files/UserCallbackQuery.java @@ -5,8 +5,6 @@ import com.pengrad.telegrambot.model.CallbackQuery;  import com.pengrad.telegrambot.model.User;  import com.pengrad.telegrambot.request.DeleteMessage; -import java.io.IOException; -  public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQuery {      private static CallbackQuery callbackQuery;      private static String data; @@ -33,7 +31,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue              } else {                  Anime.decreaseIndexOfAnime();              } -            Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); +            Bot.showRecentlyAddedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());          }          if (data.equals("nextRecentlyAddedAnime")) {              if (Anime.getIndexOfAnime() == 19) { @@ -41,7 +39,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue              } else {                  Anime.increaseIndexOfAnime();              } -            Bot.showRecentlyAddedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); +            Bot.showRecentlyAddedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());          }          if (data.equals("previousRecentlyReleasedAnime")) { @@ -50,7 +48,7 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue              } else {                  Anime.decreaseIndexOfAnime();              } -            Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); +            Bot.showRecentlyReleasedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());          }          if (data.equals("nextRecentlyReleasedAnime")) {              if (Anime.getIndexOfAnime() == 19) { @@ -58,32 +56,24 @@ public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQue              } else {                  Anime.increaseIndexOfAnime();              } -            Bot.showRecentlyReleasedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime()); +            Bot.showRecentlyReleasedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime());          }          if (data.equals("previousSearchedAnime")) {              if (Anime.getIndexOfAnime() == 0) { -                try { -                    Anime.setIndexOfAnime((byte) ((Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + Anime.getSearchedAnime())) - 1)); -                } catch (IOException e) { -                    e.printStackTrace(); -                } +                Anime.setIndexOfAnime((byte) (Anime.getSearchedAnimeSize() - 1));              } else {                  Anime.decreaseIndexOfAnime();              } -            Bot.showSearchedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getSearchedAnime()); +            Bot.showSearchedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getList());          }          if (data.equals("nextSearchedAnime")) { -            try { -                if (Anime.getIndexOfAnime() == Parser.getAnimeAtSearchSize("https://animego.org/search/all?q=" + Anime.getSearchedAnime()) - 1) { -                    Anime.setIndexOfAnime((byte) 0); -                } else { -                    Anime.increaseIndexOfAnime(); -                } -            } catch (IOException e) { -                e.printStackTrace(); +            if (Anime.getIndexOfAnime() == Anime.getSearchedAnimeSize() - 1) { +                Anime.setIndexOfAnime((byte) 0); +            } else { +                Anime.increaseIndexOfAnime();              } -            Bot.showSearchedAnimeCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getSearchedAnime()); +            Bot.showSearchedAnimeByCallBackQuery(telegramBot, callbackQuery, Anime.getIndexOfAnime(), Anime.getList());          }          DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId); diff --git a/src/main/java/files/UserMessage.java b/src/main/java/files/UserMessage.java new file mode 100644 index 0000000..14addf1 --- /dev/null +++ b/src/main/java/files/UserMessage.java @@ -0,0 +1,70 @@ +package files; + +import com.pengrad.telegrambot.TelegramBot; +import com.pengrad.telegrambot.model.Message; +import com.pengrad.telegrambot.model.Update; +import com.pengrad.telegrambot.request.SendMessage; + +import java.io.IOException; + +public class UserMessage { +    public static Message message; +    public static String text; +    public static long chatId; + +    public static void setInformation(Message message) { +        UserMessage.message = message; +        UserMessage.text = message.text(); +        UserMessage.chatId = message.chat().id(); +    } + +    public static boolean checkIfNotNull(Message message) { +        return (message != null); +    } + +    public static void execute(TelegramBot telegramBot, Update update) { +        switch (UserMessage.text) { +            case "Поиск аниме": +                Anime.setIndexOfAnime((byte) 0); +                Anime.setIsSearchingAnAnime(true); +                telegramBot.execute(new SendMessage(UserMessage.chatId, "Введи название аниме, которое хочешь найти...")); +                break; +            case "Недавно добавленные аниме": +                Anime.setIndexOfAnime((byte) 0); +                Anime.setIsSearchingAnAnime(false); +                try { +                    Bot.showRecentlyAddedAnime(telegramBot, update, Anime.getIndexOfAnime()); +                } catch (IOException e) { +                    e.printStackTrace(); +                } +                break; +            case "Новинки аниме": +                Anime.setIndexOfAnime((byte) 0); +                Anime.setIsSearchingAnAnime(false); +                try { +                    Bot.showRecentlyReleasedAnime(telegramBot, update, Anime.getIndexOfAnime()); +                } catch (IOException e) { +                    e.printStackTrace(); +                } +                break; +            case "/start": +//                DataBase.saveUser(update); +                Anime.setIsSearchingAnAnime(false); +                telegramBot.execute(new SendMessage(UserMessage.chatId, ("Приветики, меня звать AniMarfo!\nЯ помогу тебе найти аниме, скачать его или же смотреть прямо тут.")).replyMarkup(MyKeyboard.getMain())); +                break; +            default: +                if (Anime.getIsSearchingAnAnime()) { +                    Anime.setSearchedAnime(UserMessage.text); +                    Anime.setIsSearchingAnAnime(false); +                    try { +                        Bot.showSearchedAnime(telegramBot, update, Anime.getIndexOfAnime(), Anime.getSearchedAnime()); +                    } catch (IOException e) { +                        e.printStackTrace(); +                    } +                } else { +                    telegramBot.execute(new SendMessage(UserMessage.chatId, "Прости, но я тебя не понимаю...\nВоспользуйся командами на твоей клавлиатуре!").replyMarkup(MyKeyboard.getMain())); +                } +                break; +        } +    } +} diff --git a/src/main/java/files/entity/TelegramUser.java b/src/main/java/files/entity/TelegramUser.java index 5c0d6af..5564a64 100644 --- a/src/main/java/files/entity/TelegramUser.java +++ b/src/main/java/files/entity/TelegramUser.java @@ -17,11 +17,11 @@ public class TelegramUser {      public TelegramUser() {}      public TelegramUser(long id, String username, boolean isBot, String fullName, String date) { -        this.id = id; -        this.username = username; -        this.isBot = isBot; -        this.fullName = fullName; -        this.date = date; +        TelegramUser.id = id; +        TelegramUser.username = username; +        TelegramUser.isBot = isBot; +        TelegramUser.fullName = fullName; +        TelegramUser.date = date;      }      public static String checkIfHasLastName(User user) { |