diff --git a/app/src/main/java/com/github/catvod/spider/Init.java b/app/src/main/java/com/github/catvod/spider/Init.java index 5748431b..bacc65a8 100644 --- a/app/src/main/java/com/github/catvod/spider/Init.java +++ b/app/src/main/java/com/github/catvod/spider/Init.java @@ -42,9 +42,11 @@ public class Init { public static void init(Context context) { get().app = ((Application) context); - SpiderDebug.log("自定義爬蟲代碼載入成功!"+"1"); - ProxyServer.INSTANCE.stop(); - ProxyServer.INSTANCE.start(); + SpiderDebug.log("自定義爬蟲代碼載入成功!" + "1"); + execute(() -> { + ProxyServer.INSTANCE.stop(); + ProxyServer.INSTANCE.start(); + }); } public static void execute(Runnable runnable) { @@ -63,7 +65,8 @@ public class Init { try { Activity activity = Init.getActivity(); if (activity == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return; - if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) return; + if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) + return; activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 9999); } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/com/github/catvod/utils/ProxyServer.kt b/app/src/main/java/com/github/catvod/utils/ProxyServer.kt index a983aa22..94ae0ca3 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyServer.kt +++ b/app/src/main/java/com/github/catvod/utils/ProxyServer.kt @@ -25,35 +25,36 @@ object ProxyServer { fun start() { + do { + try { + httpServer = AdvancedHttpServer(port) + httpServer?.addRoutes("/") { _, response -> + run { + response.setContentType("text/html") + response.start() + response.write("Hello, world!") + } + }; + httpServer?.addRoutes("/proxy") { req, response -> + run { + val url = Util.base64Decode(req.queryParams["url"]) + val header: Map = Gson().fromJson>( + Util.base64Decode(req.queryParams["headers"]), MutableMap::class.java + ) + proxyAsync(url, header, req, response) + } + } + httpServer?.start() - try { - httpServer = AdvancedHttpServer(port) - httpServer?.addRoutes("/") { _, response -> - run { - response.setContentType("text/html") - response.start() - response.write("Hello, world!") - } - }; - httpServer?.addRoutes("/proxy") { req, response -> - run { - val url = Util.base64Decode(req.queryParams["url"]) - val header: Map = Gson().fromJson>( - Util.base64Decode(req.queryParams["headers"]), MutableMap::class.java - ) - proxyAsync(url, header, req, response) - } + } catch (e: Exception) { + e.printStackTrace() + SpiderDebug.log("启动服务出错:" + e.message) + + port++ + httpServer?.stop() } - httpServer?.start() - - } catch (e: Exception) { - SpiderDebug.log("start server e:" + e.message) - e.printStackTrace() - - httpServer?.stop() - } - - SpiderDebug.log("Server start on $port") + } while (port < 20000) + SpiderDebug.log("启动服务 on $port") } @@ -101,7 +102,9 @@ object ProxyServer { response.setHeader("Connection", "keep-alive") - response.setHeader("Content-Length", (finalEndPoint - startPoint + 1).toString()) + response.setHeader( + "Content-Length", (finalEndPoint - startPoint + 1).toString() + ) response.setHeader( "Content-Range", "bytes $startPoint-$finalEndPoint/$contentLength" ) diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 4c232579..0f778674 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 50c64a50..267357c1 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -4111cbdc5007a7e0510c84e4162e5ad9 +f857aaa917fac3bce9f407d7a8262ba7 diff --git a/json/test.json b/json/test.json index cf2609af..e85a787f 100644 --- a/json/test.json +++ b/json/test.json @@ -1,5 +1,5 @@ { - "spider": "https://gh.llkk.cc/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThreadNew/jar/custom_spider.jar;md5;4111cbdc5007a7e0510c84e4162e5ad9", + "spider": "https://gh.llkk.cc/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThreadNew/jar/custom_spider.jar;md5;f857aaa917fac3bce9f407d7a8262ba7", "lives": [ { "name": "电视直播",