From ab8129facde6e948451b80d5e4145fda665a730d Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 16:29:35 +0300 Subject: [PATCH 1/9] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=20=D0=B2=D0=B8=D0=B4?= =?UTF-8?q?=D0=B5=D0=BE=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20proxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kinosearch/core/warez/Onlinelife.java | 24 ++++++- .../webapp/servlets/ProxyServlet.java | 64 +++++++++++++++++++ webapp/WEB-INF/player.html | 4 +- webapp/WEB-INF/web.xml | 10 +++ 4 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 src/main/java/kinosearch/webapp/servlets/ProxyServlet.java diff --git a/src/main/java/kinosearch/core/warez/Onlinelife.java b/src/main/java/kinosearch/core/warez/Onlinelife.java index 410432a..0bc6893 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -1,6 +1,8 @@ package kinosearch.core.warez; import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import kinosearch.core.browser.Browser; import kinosearch.core.Kino; @@ -68,12 +70,30 @@ public class Onlinelife implements KinoWarez { JsonObject jsonObj = new Gson().fromJson(json, JsonObject.class); if (jsonObj.has("file")) { - return "{\"file\":\"" + jsonObj.get("file").getAsString() + "\"}"; + String fileMp4 = jsonObj.get("file").getAsString().substring("http://".length()); + return "{\"file\":\"/proxy/onlinelife/" + fileMp4 + "\"}"; } else if (jsonObj.has("pl")) { browser.setEncoding("utf-8"); - return browser.get(jsonObj.get("pl").getAsString()); + return replaceToProxy(browser.get(jsonObj.get("pl").getAsString())); } else { return "{}"; } } + + private String replaceToProxy(String json) { + JsonObject jsonObject = new Gson().fromJson(json, JsonObject.class); + JsonArray jsonArray = jsonObject.get("playlist").getAsJsonArray(); + + //jsonArray.get(0).getAsJsonObject().get("playlist").getAsJsonArray().get(0).getAsJsonObject().get("file").getAsString(); + + for (JsonElement elm1 : jsonArray) { + JsonArray arr1 = elm1.getAsJsonObject().get("playlist").getAsJsonArray(); + for (JsonElement elm2 : arr1) { + JsonObject obj1 = elm2.getAsJsonObject(); + obj1.addProperty("file", obj1.get("file").getAsString().replace("http://", "/proxy/onlinelife/")); + } + } + + return new Gson().toJson(jsonObject); + } } \ No newline at end of file diff --git a/src/main/java/kinosearch/webapp/servlets/ProxyServlet.java b/src/main/java/kinosearch/webapp/servlets/ProxyServlet.java new file mode 100644 index 0000000..8b6b493 --- /dev/null +++ b/src/main/java/kinosearch/webapp/servlets/ProxyServlet.java @@ -0,0 +1,64 @@ +package kinosearch.webapp.servlets; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Enumeration; +import java.util.List; +import java.util.Map; + +/** + * Created by DmitriyMX + * 2016 + */ +public class ProxyServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String path = request.getPathInfo().substring("/onlinelife/".length()); + + URL url = new URL("http://" + path); + HttpURLConnection con =(HttpURLConnection) url.openConnection(); + con.setRequestMethod("GET"); + con.setDoOutput(true); + con.setDoInput(true); + con.setUseCaches(true); + + for (Enumeration names = request.getHeaderNames(); names.hasMoreElements();) { + String headerName = names.nextElement().toString(); + if (headerName.equalsIgnoreCase("referer")) continue; + con.setRequestProperty(headerName, request.getHeader(headerName)); + } + + con.connect(); + + int statusCode = con.getResponseCode(); + response.setStatus(statusCode); + + for (Map.Entry> stringListEntry : con.getHeaderFields().entrySet()) { + Map.Entry mapEntry = (Map.Entry) stringListEntry; + if (mapEntry.getKey() != null) { + response.setHeader(mapEntry.getKey().toString(), ((List) mapEntry.getValue()).get(0).toString()); + } + } + + BufferedInputStream webToProxyBuf = new BufferedInputStream(con.getInputStream()); + BufferedOutputStream proxyToClientBuf = new BufferedOutputStream(response.getOutputStream()); + + int oneByte; + while ((oneByte = webToProxyBuf.read()) != -1) { + proxyToClientBuf.write(oneByte); + } + + proxyToClientBuf.flush(); + proxyToClientBuf.close(); + webToProxyBuf.close(); + con.disconnect(); + } +} diff --git a/webapp/WEB-INF/player.html b/webapp/WEB-INF/player.html index 536b3cc..ce854de 100644 --- a/webapp/WEB-INF/player.html +++ b/webapp/WEB-INF/player.html @@ -4,7 +4,7 @@ $(function(){ if (typeof(video_data.file) !== 'undefined') { - $('#player').attr('src', video_data.file); + $('#player').attr('src', '${basedir}'+video_data.file); } else if (typeof(video_data.playlist) !== 'undefined') { $('#pl-season').removeClass('hide'); menu = $('#pl-season-menu'); @@ -28,7 +28,7 @@ smenu.find('a').bind('click', function(){ $('#dropdownSerial').html(this.text + ' '); - $('#player').attr('src', this.attributes['data-file'].value); + $('#player').attr('src', '${basedir}'+this.attributes['data-file'].value); }); $('#pl-serial').removeClass('hide'); diff --git a/webapp/WEB-INF/web.xml b/webapp/WEB-INF/web.xml index 12aede8..d619e21 100644 --- a/webapp/WEB-INF/web.xml +++ b/webapp/WEB-INF/web.xml @@ -22,6 +22,11 @@ kinosearch.webapp.servlets.PlayerServlet + + proxy + kinosearch.webapp.servlets.ProxyServlet + + index / @@ -38,6 +43,11 @@ /onlinelife/* + + proxy + /proxy/* + + default /js/* From 879fca3ea4d117d776b1ab75514e86ad31cff9bc Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 16:31:59 +0300 Subject: [PATCH 2/9] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B2=20=D0=BF=D0=B0?= =?UTF-8?q?=D0=BA=D0=B5=D1=82=20=D0=BD=D0=B0=20=D1=83=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D0=BD=D1=8C=20=D0=B2=D1=8B=D1=88=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/{test => }/core/TestBrowser.java | 2 +- src/test/java/{test => }/core/warez/TestHdrezka.java | 2 +- src/test/java/{test => }/core/warez/TestOnlinelife.java | 2 +- src/test/java/{test => }/webapp/TestTemplateProcessor.java | 5 ++--- 4 files changed, 5 insertions(+), 6 deletions(-) rename src/test/java/{test => }/core/TestBrowser.java (99%) rename src/test/java/{test => }/core/warez/TestHdrezka.java (97%) rename src/test/java/{test => }/core/warez/TestOnlinelife.java (97%) rename src/test/java/{test => }/webapp/TestTemplateProcessor.java (93%) diff --git a/src/test/java/test/core/TestBrowser.java b/src/test/java/core/TestBrowser.java similarity index 99% rename from src/test/java/test/core/TestBrowser.java rename to src/test/java/core/TestBrowser.java index 2ad3645..274abf9 100644 --- a/src/test/java/test/core/TestBrowser.java +++ b/src/test/java/core/TestBrowser.java @@ -1,4 +1,4 @@ -package test.core; +package core; import com.google.gson.Gson; import com.google.gson.JsonObject; diff --git a/src/test/java/test/core/warez/TestHdrezka.java b/src/test/java/core/warez/TestHdrezka.java similarity index 97% rename from src/test/java/test/core/warez/TestHdrezka.java rename to src/test/java/core/warez/TestHdrezka.java index 6e73a26..06a5690 100644 --- a/src/test/java/test/core/warez/TestHdrezka.java +++ b/src/test/java/core/warez/TestHdrezka.java @@ -1,4 +1,4 @@ -package test.core.warez; +package core.warez; import kinosearch.core.Kino; import kinosearch.core.warez.Hdrezka; diff --git a/src/test/java/test/core/warez/TestOnlinelife.java b/src/test/java/core/warez/TestOnlinelife.java similarity index 97% rename from src/test/java/test/core/warez/TestOnlinelife.java rename to src/test/java/core/warez/TestOnlinelife.java index ab92b8b..0280f2a 100644 --- a/src/test/java/test/core/warez/TestOnlinelife.java +++ b/src/test/java/core/warez/TestOnlinelife.java @@ -1,4 +1,4 @@ -package test.core.warez; +package core.warez; import kinosearch.core.Kino; import kinosearch.core.warez.KinoWarez; diff --git a/src/test/java/test/webapp/TestTemplateProcessor.java b/src/test/java/webapp/TestTemplateProcessor.java similarity index 93% rename from src/test/java/test/webapp/TestTemplateProcessor.java rename to src/test/java/webapp/TestTemplateProcessor.java index 1689be4..a51bb23 100644 --- a/src/test/java/test/webapp/TestTemplateProcessor.java +++ b/src/test/java/webapp/TestTemplateProcessor.java @@ -1,4 +1,4 @@ -package test.webapp; +package webapp; import kinosearch.webapp.template.FreemakerProcessor; import kinosearch.webapp.template.TemplateProcessor; @@ -6,7 +6,6 @@ import org.junit.Before; import org.junit.Test; import java.io.*; -import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; @@ -37,7 +36,7 @@ public class TestTemplateProcessor { @Test public void test() throws IOException { - System.err.println(System.getProperty("user.dir")); +// System.err.println(System.getProperty("user.dir")); TemplateProcessor templateProcessor = new FreemakerProcessor(); OutputStreamWriter writer = new OutputStreamWriter(baos); From be54401bf6fa2b82dee8ec9c8b1d8aa06f14dd06 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 16:37:08 +0300 Subject: [PATCH 3/9] =?UTF-8?q?=D0=9D=D0=B0=D0=B8=D0=BC=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B0=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kinosearch/core/warez/Hdrezka.java | 8 +++++++- src/main/java/kinosearch/core/warez/KinoWarez.java | 1 + src/main/java/kinosearch/core/warez/Onlinelife.java | 10 ++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/kinosearch/core/warez/Hdrezka.java b/src/main/java/kinosearch/core/warez/Hdrezka.java index 20ace63..502bf98 100644 --- a/src/main/java/kinosearch/core/warez/Hdrezka.java +++ b/src/main/java/kinosearch/core/warez/Hdrezka.java @@ -14,6 +14,12 @@ import java.util.regex.Pattern; public class Hdrezka implements KinoWarez { private static final String DOMAIN = "http://hdrezka.me"; + private static final String NAME = "HDREZKA"; + + @Override + public String getName() { + return NAME; + } @Override public void search(String nameKino, List outList, boolean strong) { @@ -45,7 +51,7 @@ public class Hdrezka implements KinoWarez { } } - outList.add(new Kino("[HDREZKA] " + name, url)); + outList.add(new Kino(name, url)); } } diff --git a/src/main/java/kinosearch/core/warez/KinoWarez.java b/src/main/java/kinosearch/core/warez/KinoWarez.java index f0a5212..1e34616 100644 --- a/src/main/java/kinosearch/core/warez/KinoWarez.java +++ b/src/main/java/kinosearch/core/warez/KinoWarez.java @@ -5,6 +5,7 @@ import kinosearch.core.Kino; import java.util.List; public interface KinoWarez { + String getName(); void search(String nameKino, List outList, 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 0bc6893..80d4399 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -18,6 +18,12 @@ import java.util.regex.Pattern; public class Onlinelife implements KinoWarez { private static final String DOMAIN = "http://www.online-life.cc"; + private static final String NAME = "OnlineLife"; + + @Override + public String getName() { + return NAME; + } @Override public void search(String nameKino, List outList, boolean strong) { @@ -43,7 +49,7 @@ public class Onlinelife implements KinoWarez { for (Element element : elements) { Element childElement = element.child(0); String name = childElement.text(); - String url = "onlinelife/" + (childElement.attr("href").substring(DOMAIN.length()+1)); + String url = childElement.attr("href"); if (strong) { Matcher matcher = pattern.matcher(name.toLowerCase()); @@ -53,7 +59,7 @@ public class Onlinelife implements KinoWarez { } name = name.replaceAll("\\[.+", "").trim(); - outList.add(new Kino("[OnlineLife] "+name, url)); + outList.add(new Kino(name, url)); } } From 987a22b5453fc1a48cd174a79e5dc1839a65f9df Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 16:50:04 +0300 Subject: [PATCH 4/9] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC?= =?UTF-8?q?=D0=B0=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=87=D0=B8=20=D1=81=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B0=20=D0=BA=D0=B8=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kinosearch/core/Kino.java | 4 ++++ src/main/java/kinosearch/core/warez/Hdrezka.java | 9 +++++++-- src/main/java/kinosearch/core/warez/KinoWarez.java | 2 +- src/main/java/kinosearch/core/warez/Onlinelife.java | 11 ++++++++--- .../java/kinosearch/webapp/servlets/IndexServlet.java | 7 ++++++- src/test/java/core/warez/TestHdrezka.java | 3 +-- src/test/java/core/warez/TestOnlinelife.java | 3 +-- 7 files changed, 28 insertions(+), 11 deletions(-) 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); From db4878e61413136deb779e7ed58e6b8d300236a7 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 16:52:11 +0300 Subject: [PATCH 5/9] =?UTF-8?q?KinoGroup=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D1=89=D0=B5=D0=BD=20=D0=B2=20webapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kinosearch/{core => webapp}/KinoGroup.java | 4 +++- src/main/java/kinosearch/webapp/servlets/IndexServlet.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) rename src/main/java/kinosearch/{core => webapp}/KinoGroup.java (89%) diff --git a/src/main/java/kinosearch/core/KinoGroup.java b/src/main/java/kinosearch/webapp/KinoGroup.java similarity index 89% rename from src/main/java/kinosearch/core/KinoGroup.java rename to src/main/java/kinosearch/webapp/KinoGroup.java index d00fd8b..f8b97d5 100644 --- a/src/main/java/kinosearch/core/KinoGroup.java +++ b/src/main/java/kinosearch/webapp/KinoGroup.java @@ -1,4 +1,6 @@ -package kinosearch.core; +package kinosearch.webapp; + +import kinosearch.core.Kino; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java index d855ef9..76bcaf8 100644 --- a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java +++ b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java @@ -1,7 +1,7 @@ package kinosearch.webapp.servlets; import kinosearch.core.Kino; -import kinosearch.core.KinoGroup; +import kinosearch.webapp.KinoGroup; import kinosearch.core.Tools; import kinosearch.webapp.WebApp; import kinosearch.webapp.template.TemplateProcessor; From c827bf7ab82f67c5fce69af26d9f98a8a5042067 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 18:30:30 +0300 Subject: [PATCH 6/9] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=88=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=B2=D0=B8=D0=B4=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=87=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kinosearch/core/Kino.java | 9 ++ .../kinosearch/core/warez/Onlinelife.java | 4 +- webapp/WEB-INF/index.html | 86 ++++++++++++++----- webapp/css/style.css | 15 +--- 4 files changed, 79 insertions(+), 35 deletions(-) diff --git a/src/main/java/kinosearch/core/Kino.java b/src/main/java/kinosearch/core/Kino.java index 6fc229f..0529749 100644 --- a/src/main/java/kinosearch/core/Kino.java +++ b/src/main/java/kinosearch/core/Kino.java @@ -3,6 +3,7 @@ package kinosearch.core; public class Kino { private String name; private String url; + private boolean player = false; public Kino(String name, String url) { this.name = name; @@ -20,4 +21,12 @@ public class Kino { public String getUrl() { return url; } + + public boolean hasPlayer() { + return player; + } + + public void setPlayer(boolean value) { + this.player = value; + } } diff --git a/src/main/java/kinosearch/core/warez/Onlinelife.java b/src/main/java/kinosearch/core/warez/Onlinelife.java index d8ddf5b..7075d2b 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -62,7 +62,9 @@ public class Onlinelife implements KinoWarez { } name = name.replaceAll("\\[.+", "").trim(); - outList.add(new Kino(name, url)); + Kino kino = new Kino(name, url); + kino.setPlayer(true); + outList.add(kino); } return outList; diff --git a/webapp/WEB-INF/index.html b/webapp/WEB-INF/index.html index 6dce7a4..ad6edd1 100644 --- a/webapp/WEB-INF/index.html +++ b/webapp/WEB-INF/index.html @@ -1,26 +1,72 @@ <#include "/header.inc.html"> - <#if resultsearch??> -
- <#if resultsearch?has_content> -
    - <#list resultsearch as kino> -
  • - <#if kino.getClass().getSimpleName() == "KinoGroup"> - ${kino.name} -
      + <#if resultsearch??> + +
      + <#if resultsearch?has_content> + <#list resultsearch as kino> + <#if kino.getClass().getSimpleName() == "KinoGroup"> +
      + +  ${kino.name} + +
      +
      <#list kino.kinolist as kino_groupped> -
    • ${kino_groupped.name}
    • +
      +
      ${kino_groupped.name}
      +
      +
      + <#if kino_groupped.hasPlayer()> + + + <#else> + + +
      +
      +
      -
    - <#else> - ${kino.name} - -
  • - -
- <#else> -

Ничего не найдено =(

- + + + + <#else> +
+
${kino.name}
+
+
+ <#if kino.hasPlayer()> + + + <#else> + + +
+
+
+ + + <#else> +

Ничего не найдено =(

+ <#else> <#include "/news.inc.html"> diff --git a/webapp/css/style.css b/webapp/css/style.css index bcc892d..7ebbf37 100644 --- a/webapp/css/style.css +++ b/webapp/css/style.css @@ -33,21 +33,8 @@ input.check-middle { vertical-align: sub; } -.resultlist { - padding-left: 0; -} - -.resultlist li { - list-style: none; -} - -.resultlist a { +a.panel-heading.spoiler { display: block; - padding: 1em; - background-color: #f1f1f1; - margin-bottom: 0.5em; - border-radius: 0.5em; - border: 1px solid #ccc; } .news time { From d439ba938e0877e971cfa6d5553eec6da06ae7ae Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 18:44:05 +0300 Subject: [PATCH 7/9] =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B2=D1=8B=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B8=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BB=D0=B5=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kinosearch/core/Kino.java | 19 ++++++++++++++++++- .../java/kinosearch/core/warez/Hdrezka.java | 7 ++++++- .../java/kinosearch/core/warez/KinoWarez.java | 1 + .../kinosearch/core/warez/Onlinelife.java | 7 ++++++- .../java/kinosearch/webapp/KinoGroup.java | 5 +++-- .../webapp/servlets/IndexServlet.java | 2 +- webapp/WEB-INF/index.html | 4 ++-- 7 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/main/java/kinosearch/core/Kino.java b/src/main/java/kinosearch/core/Kino.java index 0529749..247265f 100644 --- a/src/main/java/kinosearch/core/Kino.java +++ b/src/main/java/kinosearch/core/Kino.java @@ -1,13 +1,17 @@ package kinosearch.core; +import kinosearch.core.warez.KinoWarez; + public class Kino { private String name; private String url; private boolean player = false; + private KinoWarez kinowarez; - public Kino(String name, String url) { + public Kino(String name, String url, KinoWarez kinoWarez) { this.name = name; this.url = url; + this.kinowarez = kinoWarez; } public String getName() { @@ -29,4 +33,17 @@ public class Kino { public void setPlayer(boolean value) { this.player = value; } + + public KinoWarez getKinowarez() { + return kinowarez; + } + + public String getPlayerUrl() { + if (player) { + String path = url.substring(kinowarez.getDomain().length()); + return kinowarez.getName().toLowerCase() + path; + } else { + return "#"; + } + } } diff --git a/src/main/java/kinosearch/core/warez/Hdrezka.java b/src/main/java/kinosearch/core/warez/Hdrezka.java index 4f5fda6..1568f22 100644 --- a/src/main/java/kinosearch/core/warez/Hdrezka.java +++ b/src/main/java/kinosearch/core/warez/Hdrezka.java @@ -23,6 +23,11 @@ public class Hdrezka implements KinoWarez { return NAME; } + @Override + public String getDomain() { + return DOMAIN; + } + @Override public List search(String nameKino, boolean strong) { Browser browser = Tools.createBrowser(); @@ -54,7 +59,7 @@ public class Hdrezka implements KinoWarez { } } - outList.add(new Kino(name, url)); + outList.add(new Kino(name, url, this)); } return outList; diff --git a/src/main/java/kinosearch/core/warez/KinoWarez.java b/src/main/java/kinosearch/core/warez/KinoWarez.java index e9864b7..e36a3fd 100644 --- a/src/main/java/kinosearch/core/warez/KinoWarez.java +++ b/src/main/java/kinosearch/core/warez/KinoWarez.java @@ -8,4 +8,5 @@ public interface KinoWarez { String getName(); List search(String nameKino, boolean strong); String player(String page); + String getDomain(); } diff --git a/src/main/java/kinosearch/core/warez/Onlinelife.java b/src/main/java/kinosearch/core/warez/Onlinelife.java index 7075d2b..d0f1233 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -27,6 +27,11 @@ public class Onlinelife implements KinoWarez { return NAME; } + @Override + public String getDomain() { + return DOMAIN; + } + @Override public List search(String nameKino, boolean strong) { Browser browser = Tools.createBrowser(); @@ -62,7 +67,7 @@ public class Onlinelife implements KinoWarez { } name = name.replaceAll("\\[.+", "").trim(); - Kino kino = new Kino(name, url); + Kino kino = new Kino(name, url, this); kino.setPlayer(true); outList.add(kino); } diff --git a/src/main/java/kinosearch/webapp/KinoGroup.java b/src/main/java/kinosearch/webapp/KinoGroup.java index f8b97d5..1645525 100644 --- a/src/main/java/kinosearch/webapp/KinoGroup.java +++ b/src/main/java/kinosearch/webapp/KinoGroup.java @@ -1,6 +1,7 @@ package kinosearch.webapp; import kinosearch.core.Kino; +import kinosearch.core.warez.KinoWarez; import java.util.ArrayList; import java.util.List; @@ -12,8 +13,8 @@ import java.util.List; public class KinoGroup extends Kino { private List kinolist = new ArrayList<>(); - public KinoGroup(String name, String url) { - super(name, ""); + public KinoGroup(String name, String url, KinoWarez kinoWarez) { + super(name, "", kinoWarez); } public List getKinolist() { diff --git a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java index 76bcaf8..687f04e 100644 --- a/src/main/java/kinosearch/webapp/servlets/IndexServlet.java +++ b/src/main/java/kinosearch/webapp/servlets/IndexServlet.java @@ -89,7 +89,7 @@ public class IndexServlet extends HttpServlet { continue; } - KinoGroup group = new KinoGroup(s1, null); + KinoGroup group = new KinoGroup(s1, null, null); Iterator itr2 = list.iterator(); int val = 0; diff --git a/webapp/WEB-INF/index.html b/webapp/WEB-INF/index.html index ad6edd1..7d79639 100644 --- a/webapp/WEB-INF/index.html +++ b/webapp/WEB-INF/index.html @@ -28,7 +28,7 @@ на сайте <#else>
@@ -52,7 +52,7 @@ на сайте
<#else>
From 71d93378b5edfd31781da5082b58f165f27c91ab Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 19:44:50 +0300 Subject: [PATCH 8/9] =?UTF-8?q?=D0=98=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B0?= =?UTF-8?q?=D0=B5=D0=BC=20=D1=81=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=D1=8B=20Onl?= =?UTF-8?q?inelife?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit С ними нужно отдельно повозиться --- .../java/kinosearch/core/warez/Onlinelife.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/kinosearch/core/warez/Onlinelife.java b/src/main/java/kinosearch/core/warez/Onlinelife.java index d0f1233..f2ef435 100644 --- a/src/main/java/kinosearch/core/warez/Onlinelife.java +++ b/src/main/java/kinosearch/core/warez/Onlinelife.java @@ -66,15 +66,28 @@ public class Onlinelife implements KinoWarez { } } + boolean has_player = is_serial(name); + name = name.replaceAll("\\[.+", "").trim(); Kino kino = new Kino(name, url, this); - kino.setPlayer(true); + kino.setPlayer(has_player); outList.add(kino); } return outList; } + private boolean is_serial(String name) { + Pattern pattern = Pattern.compile("\\[(.+)\\]"); + Matcher matcher = pattern.matcher(name); + if (matcher.find()) { + int idx = matcher.group().indexOf("1"); + return !(idx >= 0); + } else { + return false; + } + } + @Override public String player(String page) { String movie_id = page.substring(1,page.indexOf("-")); From 853468c582b23c9a87e7a74e0f894e5972147346 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 26 Mar 2016 19:48:49 +0300 Subject: [PATCH 9/9] update news --- webapp/WEB-INF/news.inc.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/webapp/WEB-INF/news.inc.html b/webapp/WEB-INF/news.inc.html index 71850fb..8909084 100644 --- a/webapp/WEB-INF/news.inc.html +++ b/webapp/WEB-INF/news.inc.html @@ -1,4 +1,14 @@
+
+ +
+
+

Version 2.0.7b

+

Прошлый раз код идеально работал на localhost, а на реальном сервере заглох. Пришлось переделывать. + Зато теперь точно всё должно заработать.

+

Пришлось отказаться от воспроизведения сериалов. С ними придётся отдельно повозиться.

+
+
@@ -8,6 +18,7 @@

Кхм. Простите.

Вообщем, тестовая вариация плеера запущена для кинотеатра OnlineLife. Если нареканий не будет, то запущу и для остальных.

+