From 7c8356c0fd18d6af372c7bb8f2f6b6285cabcf09 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 15 Jan 2017 04:51:42 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B2=20Seasonvar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kinosearch/core/warez/Seasonvar.java | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/main/java/kinosearch/core/warez/Seasonvar.java b/src/main/java/kinosearch/core/warez/Seasonvar.java index 4337c0a..d11977e 100644 --- a/src/main/java/kinosearch/core/warez/Seasonvar.java +++ b/src/main/java/kinosearch/core/warez/Seasonvar.java @@ -13,10 +13,6 @@ import kinosearch.core.KinoItem; import kinosearch.core.KinoPlay; import kinosearch.core.Tools; import kinosearch.core.browser.Browser; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -42,30 +38,31 @@ public class Seasonvar implements KinoWarez { @Override public List search(String nameKino, boolean strong) { - String html = browser.get(DOMAIN + "/search?q=" + Tools.SafeUrlEncode(nameKino, "UTF-8")); - if (html.isEmpty()) return Collections.emptyList(); + browser.setHeader("X-Requested-With", "XMLHttpRequest"); + String json = browser.get(String.format( + "%s/autocomplete.php?query=%s", + DOMAIN, + Tools.SafeUrlEncode(nameKino, "UTF-8"))); - Pattern pattern = null; - if (strong) { - pattern = Tools.getStrongPattern(nameKino.toLowerCase()); + if (json.isEmpty()) { + return Collections.emptyList(); } - Document document = Jsoup.parse(html); - Elements elements = document.getElementsByClass("searchName"); + JsonObject jsonObject = gson.fromJson(json, JsonObject.class); + JsonArray data = jsonObject.get("data").getAsJsonArray(); + if (data.size() == 0 || data.get(0).getAsString().isEmpty()) { + return Collections.emptyList(); + } + + JsonArray suggestions = jsonObject.get("suggestions").getAsJsonArray(); + List outList = new ArrayList<>(); - for (Element element : elements) { - Element childElement = element.child(0); - String name = childElement.text(); - String url = childElement.attr("href"); - - if (strong) { - Matcher matcher = pattern.matcher(name.toLowerCase()); - if (!matcher.find()) { - continue; - } - } - - Kino kino = new Kino(name, DOMAIN + url, this); + for (int i = 0; i < suggestions.size(); i++) { + Kino kino = new Kino( + suggestions.get(i).getAsString(), + DOMAIN + "/" + data.get(i).getAsString(), + this + ); kino.setPlayer(true); outList.add(kino); } @@ -100,6 +97,7 @@ public class Seasonvar implements KinoWarez { serials.add(new KinoItem( jsonObject.get("comment").getAsString().replace("
", ""), jsonObject.get("file").getAsString().replace("http://", "/proxy/seasonvar/") + .replace("/fi3lm/", "/fi2lm/").replace("//", "/") )); } kinoPlay.setSerials(serials);