diff --git a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java index 12cc40b4..b64f0e2f 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java +++ b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java @@ -15,6 +15,7 @@ import java.io.ByteArrayInputStream; import java.net.URLEncoder; import java.nio.charset.Charset; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; @@ -24,6 +25,7 @@ public class ProxyVideo { private static final String GO_SERVER = "http://127.0.0.1:7777/"; //线程数4 private static final int THREAD_NUM = 16; + private static Map infoMap = new ConcurrentHashMap<>(); public static String buildCommonProxyUrl(String url, Map headers) { @@ -79,11 +81,19 @@ public class ProxyVideo { public static Object[] proxyMultiThread(String url, Map headers) throws Exception { + Object[] info = infoMap.get(url); + + //防止频繁请求 + if (info == null) { + Map newHeaders = new HashMap<>(headers); + newHeaders.put("range", "bytes=0-0"); + newHeaders.put("Range", "bytes=0-0"); + info = proxy(url, newHeaders); + infoMap.clear(); + infoMap.put(url, info); + } + SpiderDebug.log("--proxyMultiThread: start "); - Map newHeaders = new HashMap<>(headers); - newHeaders.put("range", "bytes=0-0"); - newHeaders.put("Range", "bytes=0-0"); - Object[] info = proxy(url, newHeaders); int code = (int) info[0]; if (code != 206) { return proxy(url, headers); @@ -168,7 +178,7 @@ public class ProxyVideo { private static List generatePart(Map rangeObj, String total) { long start = Long.parseLong(rangeObj.get("start")); - long end = StringUtils.isAllBlank(rangeObj.get("end")) ? start + 1024 * 1024 *8 : Long.parseLong(rangeObj.get("end")); + long end = StringUtils.isAllBlank(rangeObj.get("end")) ? start + 1024 * 1024 * 8 : Long.parseLong(rangeObj.get("end")); long totalSize = Long.parseLong(total); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 910de31c..583af595 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 6e3b4a5b..cfbc3da8 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -14968269a850a3a62378a9cdc14384fd +5f9348f15ba85a80f258ec70f368ba03 diff --git a/json/test.json b/json/test.json index 9d61004e..06715120 100644 --- a/json/test.json +++ b/json/test.json @@ -1,5 +1,5 @@ { - "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThread/jar/custom_spider.jar;md5;14968269a850a3a62378a9cdc14384fd", + "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThread/jar/custom_spider.jar;md5;5f9348f15ba85a80f258ec70f368ba03", "lives": [ { "name": "电视直播",