summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard')
-rw-r--r--src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java
new file mode 100644
index 0000000..0db27c1
--- /dev/null
+++ b/src/main/java/com/mavlonerkinboev/animarfo/telegram/user/keyboard/UserKeyboard.java
@@ -0,0 +1,89 @@
+package com.mavlonerkinboev.animarfo.telegram.user.keyboard;
+
+import com.mavlonerkinboev.animarfo.anime.Anime;
+import com.mavlonerkinboev.animarfo.parser.Parser;
+import com.pengrad.telegrambot.model.request.Keyboard;
+import com.pengrad.telegrambot.model.request.InlineKeyboardButton;
+import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
+import com.pengrad.telegrambot.model.request.ReplyKeyboardMarkup;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+public class UserKeyboard {
+ public static short seriesSize;
+
+ public static Keyboard getMain() {
+ return new ReplyKeyboardMarkup(
+ new String[]{"Поиск аниме"},
+ new String[]{"Онгоинги"},
+ new String[]{"Аниме сериалы"},
+ new String[]{"Аниме фильмы"})
+ .oneTimeKeyboard(true)
+ .resizeKeyboard(true)
+ .selective(true);
+ }
+
+ public static Keyboard getCarousel() {
+ InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
+
+ inlineKeyboardMarkup.addRow(new InlineKeyboardButton("Смотреть / Скачать").callbackData("watchOrDownload"));
+ inlineKeyboardMarkup.addRow(new InlineKeyboardButton("Пред.").callbackData("previous"), new InlineKeyboardButton("След.").callbackData("next"));
+
+ return inlineKeyboardMarkup;
+ }
+
+ public static Keyboard getDub() {
+ return new InlineKeyboardMarkup(new InlineKeyboardButton("Anidub").callbackData("anidub"));
+ }
+
+ public static Keyboard getAnidub() throws IOException {
+ Anime[] anime = Anime.list;
+ Anime thisAnime = anime[Anime.index];
+
+ Elements seriesList = Parser.getPage(thisAnime.getUrl()).select("div[class=tabs-b video-box]").next().select("span");
+ ArrayList<String> series = new ArrayList<>();
+ ArrayList<String> seriesUrls = new ArrayList<>();
+
+ for (Element seriesTemp : seriesList) {
+ series.add(Jsoup.parse(String.valueOf(seriesTemp)).text());
+ }
+
+ for (Element seriesTemp : seriesList) {
+ String text = seriesTemp.toString();
+ int start = text.indexOf("=\"") + 2;
+ int end = text.indexOf("\" ");
+ char[] dst = new char[end - start];
+ text.getChars(start, end, dst, 0);
+ seriesUrls.add(String.valueOf(dst));
+ }
+
+ InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
+ seriesSize = (short) series.size();
+ for (int i = 0; i < seriesSize; i++) {
+ if (i+2 < seriesSize) {
+ inlineKeyboardMarkup.addRow(
+ new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i)),
+ new InlineKeyboardButton(series.get(i+1)).url(seriesUrls.get(i+1)),
+ new InlineKeyboardButton(series.get(i+2)).url(seriesUrls.get(i+2))
+ );
+ i += 2;
+ } else if (i+1 < seriesSize) {
+ inlineKeyboardMarkup.addRow(
+ new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i)),
+ new InlineKeyboardButton(series.get(i+1)).url(seriesUrls.get(i+1))
+ );
+ i++;
+ } else {
+ inlineKeyboardMarkup.addRow(
+ new InlineKeyboardButton(series.get(i)).url(seriesUrls.get(i))
+ );
+ }
+ }
+
+ return inlineKeyboardMarkup;
+ }
+}