summaryrefslogtreecommitdiff
path: root/src/main/java/files/Parser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/files/Parser.java')
-rw-r--r--src/main/java/files/Parser.java83
1 files changed, 80 insertions, 3 deletions
diff --git a/src/main/java/files/Parser.java b/src/main/java/files/Parser.java
index 048b147..09dceea 100644
--- a/src/main/java/files/Parser.java
+++ b/src/main/java/files/Parser.java
@@ -20,9 +20,10 @@ public class Parser {
assert animeList != null;
Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-1]").select("a");
Elements descriptionsTemp = animeList.select("div[class=description d-none d-sm-block]");
- Elements yearsTemp = animeList.select("span[class=anime-year mb-2]").select("a[class=text-link-gray text-underline]");
+ Elements yearsTemp = animeList.select("span[class=anime-year mb-2]").select("a");
Elements genresTemp = animeList.select("span[class=anime-genre d-none d-sm-inline]").select("a[class=mb-2 text-link-gray text-underline]");
Elements imagesTemp = animeList.select("div[class=anime-list-lazy lazy]");
+ Elements urlsTemp = animeList.select("div[class=h5 font-weight-normal mb-1]").select("a");
byte countOfAnime = (byte) namesTemp.size();
@@ -51,11 +52,87 @@ public class Parser {
images.add(String.valueOf(dst));
}
+ ArrayList<String> urls = new ArrayList<>();
+ for (Element url : urlsTemp) {
+ String text = url.toString();
+ int start = text.indexOf("\"") + 1;
+ int end = text.indexOf(">") - 1;
+ char[] dst = new char[end - start];
+ text.getChars(start, end, dst, 0);
+ urls.add(String.valueOf(dst));
+ }
+
+ Anime[] anime = new Anime[countOfAnime];
+ for (int i = 0; i < countOfAnime; i++) {
+ anime[i] = new Anime(names.get(i), descriptions.get(i), null, years.get(i), images.get(i), urls.get(i));
+ }
+
+ return anime;
+ }
+
+ public static Anime[] getAnimeAtSearch(String page) throws IOException {
+ Element animeList = Parser.getPage(page).select("div[class=animes-grid position-relative]").first();
+ assert animeList != null;
+ Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a");
+ Elements descriptionsTemp = animeList.select("div[class=anime-small-description read-more-container]");
+ Elements yearsTemp = animeList.select("span[class=anime-year]").select("a");
+ Elements imagesTemp = animeList.select("div[class=anime-grid-lazy lazy]");
+ Elements urlsTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a");
+
+ byte countOfAnime = (byte) namesTemp.size();
+
+ ArrayList<String> names = new ArrayList<>();
+ for (Element name : namesTemp) {
+ names.add(Jsoup.parse(String.valueOf(name)).text());
+ }
+
+ ArrayList<String> descriptions = new ArrayList<>();
+ for (Element description : descriptionsTemp) {
+ descriptions.add(Jsoup.parse(String.valueOf(description)).text());
+ }
+
+ ArrayList<String> years = new ArrayList<>();
+ for (Element year : yearsTemp) {
+ years.add(Jsoup.parse(String.valueOf(year)).text());
+ }
+
+ ArrayList<String> images = new ArrayList<>();
+ for (Element image : imagesTemp) {
+ String text = image.toString();
+ int start = text.indexOf("data-original=") + 15;
+ int end = text.indexOf(">") - 1;
+ char[] dst = new char[end - start];
+ text.getChars(start, end, dst, 0);
+ images.add(String.valueOf(dst));
+ }
+
+ ArrayList<String> urls = new ArrayList<>();
+ for (Element url :urlsTemp) {
+ String text = url.toString();
+ int start = text.indexOf("=\"") + 2;
+ int end = text.indexOf("\" title") - 1;
+ char[] dst = new char[end - start];
+ text.getChars(start, end, dst, 0);
+ urls.add(String.valueOf(dst));
+ }
+
Anime[] anime = new Anime[countOfAnime];
for (int i = 0; i < countOfAnime; i++) {
- anime[i] = new Anime(names.get(i), descriptions.get(i), null, years.get(i), images.get(i));
+ anime[i] = new Anime(names.get(i), null, null, years.get(i), images.get(i), urls.get(i));
}
return anime;
}
-}
+
+ public static byte getAnimeAtSearchSize(String page) throws IOException {
+ Element animeList = Parser.getPage(page).select("div[class=animes-grid position-relative]").first();
+ assert animeList != null;
+
+ if (animeList == null) return 0;
+
+ Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a");
+ byte countOfAnime = (byte) namesTemp.size();
+ return countOfAnime;
+ }
+
+ } \ No newline at end of file