From d756292d80982f324722c15558835fb2de661eb7 Mon Sep 17 00:00:00 2001 From: gzlinz2 <107169210+gzlinz2@users.noreply.github.com> Date: Mon, 10 Oct 2022 21:04:35 +0800 Subject: [PATCH] Add files via upload --- .../java/com/github/catvod/spider/Proxy.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 app/src/main/java/com/github/catvod/spider/Proxy.java diff --git a/app/src/main/java/com/github/catvod/spider/Proxy.java b/app/src/main/java/com/github/catvod/spider/Proxy.java new file mode 100644 index 0000000..db37dba --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Proxy.java @@ -0,0 +1,81 @@ +package com.github.catvod.spider; + +import android.util.Base64; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.live.TxtSubscribe; +import com.github.catvod.utils.okhttp.OkHttpUtil; +import com.github.catvod.parser.MixDemo; +import com.github.catvod.parser.MixWeb; + +import java.io.ByteArrayInputStream; +import java.util.Map; + +public class Proxy extends Spider { + + public static int localPort = -1; + + static void adjustLocalPort() { + if (localPort > 0) + return; + int port = 9978; + while (port < 10000) { + String resp = OkHttpUtil.string("http://127.0.0.1:" + port + "/proxy?do=ck", null); + if (resp.equals("ok")) { + SpiderDebug.log("Found local server port " + port); + localPort = port; + break; + } + port++; + } + } + + public static String localProxyUrl() { + adjustLocalPort(); + return "http://127.0.0.1:" + Proxy.localPort + "/proxy"; + } + + public static Object[] proxy(Map params) { + try { + String what = params.get("do"); + if (what.equals("live")) { + String type = params.get("type"); + if (type.equals("txt")) { + String ext = params.get("ext"); + if (!ext.startsWith("http")) { + ext = new String(Base64.decode(ext, Base64.DEFAULT | Base64.URL_SAFE | Base64.NO_WRAP), "UTF-8"); + } + return TxtSubscribe.load(ext); + } + } else if (what.equals("ck")) { + Object[] result = new Object[3]; + result[0] = 200; + result[1] = "text/plain; charset=utf-8"; + ByteArrayInputStream baos = new ByteArrayInputStream("ok".getBytes("UTF-8")); + result[2] = baos; + return result; + } else if (what.equals("push")) { + return PushAgent.vod(params); + } else if (what.equals("kmys")) { + return Kmys.vod(params); + } else if (what.equals("ali")) { + return PushAgent.vod(params); + } else if (what.equals("czspp")) { + return Czsapp.loadsub(params.get("url")); + } else if (what.equals("XYQBiu")) { + return XYQBiu.loadPic(params); + } else if (what.equals("MixDemo")) { + return MixDemo.loadHtml(params.get("flag"), params.get("url")); + } + else if (what.equals("MixWeb")) { + return MixWeb.loadHtml(params.get("flag"), params.get("url")); + } + + } catch (Throwable th) { + + } + return null; + } + +}