From 775171c4b0f0cfd99595a856183e078ae0d30684 Mon Sep 17 00:00:00 2001 From: mavlonerkinboev Date: Sat, 24 Jul 2021 00:27:36 +0500 Subject: fourteenth commit --- src/main/java/files/Parser.java | 83 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) (limited to 'src/main/java/files/Parser.java') 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 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 names = new ArrayList<>(); + for (Element name : namesTemp) { + names.add(Jsoup.parse(String.valueOf(name)).text()); + } + + ArrayList descriptions = new ArrayList<>(); + for (Element description : descriptionsTemp) { + descriptions.add(Jsoup.parse(String.valueOf(description)).text()); + } + + ArrayList years = new ArrayList<>(); + for (Element year : yearsTemp) { + years.add(Jsoup.parse(String.valueOf(year)).text()); + } + + ArrayList 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 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 -- cgit v1.2.3