diff --git a/src/main/java/kinosearch/core/Kino.java b/src/main/java/kinosearch/core/Kino.java index 85bc1c7..6fc229f 100644 --- a/src/main/java/kinosearch/core/Kino.java +++ b/src/main/java/kinosearch/core/Kino.java @@ -13,6 +13,10 @@ public class Kino { return name; } + public void setName(String name) { + this.name = name; + } + public String getUrl() { return url; } diff --git a/src/main/java/kinosearch/core/warez/Hdrezka.java b/src/main/java/kinosearch/core/warez/Hdrezka.java index 502bf98..4f5fda6 100644 --- a/src/main/java/kinosearch/core/warez/Hdrezka.java +++ b/src/main/java/kinosearch/core/warez/Hdrezka.java @@ -8,6 +8,8 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -22,12 +24,12 @@ public class Hdrezka implements KinoWarez { } @Override - public void search(String nameKino, List outList, boolean strong) { + public List search(String nameKino, boolean strong) { Browser browser = Tools.createBrowser(); browser.setEncoding("UTF-8"); String html = browser.get(DOMAIN + "/?do=search&subaction=search&q=" + Tools.SafeUrlEncode(nameKino, "UTF-8")); - if (html.isEmpty()) return; + if (html.isEmpty()) return Collections.emptyList(); Document document = Jsoup.parse(html); Pattern pattern = null; @@ -36,6 +38,7 @@ public class Hdrezka implements KinoWarez { pattern = Tools.getStrongPattern(nk); } + List outList = new ArrayList<>(); Elements elements = document.getElementsByClass("b-content__inline_item-cover"); for (Element element : elements) { Element childElement = element.child(0); @@ -53,6 +56,8 @@ public class Hdrezka implements KinoWarez { outList.add(new Kino(name, url)); } + + return outList; } @Override diff --git a/src/main/java/kinosearch/core/warez/KinoWarez.java b/src/main/java/kinosearch/core/warez/KinoWarez.java index 1e34616..e9864b7 100644 --- a/src/main/java/kinosearch/core/warez/KinoWarez.java +++ b/src/main/java/kinosearch/core/warez/KinoWarez.java @@ -6,6 +6,6 @@ import java.util.List; public interface KinoWarez { String getName(); - void search(String nameKino, List outList, boolean strong); + List search(String nameKino, boolean strong); String player(String page); } diff --git a/src/main/java/kinosearch/core/warez/Onlinelife.java b/src/main/java/kinosearch/core/warez/Onlinelife.java index 80d4399..d8ddf5b 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -12,6 +12,8 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -26,13 +28,13 @@ public class Onlinelife implements KinoWarez { } @Override - public void search(String nameKino, List outList, boolean strong) { + public List search(String nameKino, boolean strong) { Browser browser = Tools.createBrowser(); browser.setEncoding("windows-1251"); String postData = "do=search&subaction=search&mode=simple&story=" + Tools.SafeUrlEncode(nameKino, "windows-1251"); String html = browser.post(DOMAIN + "/?do=search", postData); - if (html.isEmpty()) return; + if (html.isEmpty()) return Collections.emptyList(); Document document = Jsoup.parse(html); Pattern pattern = null; @@ -43,8 +45,9 @@ public class Onlinelife implements KinoWarez { // ничего не найдено? Elements elements = document.getElementsByClass("info"); - if (elements.size() > 0) return; + if (elements.size() > 0) return Collections.emptyList(); + List outList = new ArrayList<>(); elements = document.getElementsByClass("custom-poster"); for (Element element : elements) { Element childElement = element.child(0); @@ -61,6 +64,8 @@ public class Onlinelife implements KinoWarez { name = name.replaceAll("\\[.+", "").trim(); outList.add(new Kino(name, url)); } + + return outList; } @Override diff --git a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java index 5f57431..d855ef9 100644 --- a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java +++ b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java @@ -53,7 +53,12 @@ public class IndexServlet extends HttpServlet { ThreadGroup threadGroup = new ThreadGroup(""); for (KinoWarez kinoWarez : kinoWarezSet) { //TODO на будущее надо ограничить количество одновременных потоков new Thread(threadGroup, () -> { - kinoWarez.search(search, list, strong); + List outList = kinoWarez.search(search, strong); + + for (Kino kino : outList) { + kino.setName("[" + kinoWarez.getName() + "] " + kino.getName()); + } + list.addAll(outList); }).start(); } diff --git a/src/test/java/core/warez/TestHdrezka.java b/src/test/java/core/warez/TestHdrezka.java index 06a5690..0bf9615 100644 --- a/src/test/java/core/warez/TestHdrezka.java +++ b/src/test/java/core/warez/TestHdrezka.java @@ -23,10 +23,9 @@ public class TestHdrezka { private void search(boolean strong) { KinoWarez kinoWarez = new Hdrezka(); - List kinoList = new ArrayList<>(); String titleKino = "рик и морти"; - kinoWarez.search(titleKino, kinoList, strong); + List kinoList = kinoWarez.search(titleKino, strong); assertTrue(kinoList.size() > 0); diff --git a/src/test/java/core/warez/TestOnlinelife.java b/src/test/java/core/warez/TestOnlinelife.java index 0280f2a..00bd90c 100644 --- a/src/test/java/core/warez/TestOnlinelife.java +++ b/src/test/java/core/warez/TestOnlinelife.java @@ -23,10 +23,9 @@ public class TestOnlinelife { private void search(boolean strong) { KinoWarez kinoWarez = new Onlinelife(); - List kinoList = new ArrayList<>(); String titleKino = "рик и морти"; - kinoWarez.search(titleKino, kinoList, strong); + List kinoList = kinoWarez.search(titleKino, strong); assertTrue(kinoList.size() > 0);