FENGMI蜂蜜影视 原始JAR及配置
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.9 KiB

package com.github.catvod.spider;
import com.github.catvod.crawler.SpiderDebug;
import com.github.catvod.net.OkHttp;
import java.io.ByteArrayInputStream;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.util.Map;
public class Proxy {
private static Method method;
private static int port;
public static Object[] proxy(Map<String, String> params) throws Exception {
switch (params.get("do")) {
case "ck":
return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream("ok".getBytes(StandardCharsets.UTF_8))};
case "bili":
return Bili.proxy(params);
case "webdav":
return WebDAV.vod(params);
case "local":
return Local.proxy(params);
default:
return null;
}
}
public static void init() {
try {
Class<?> clz = Class.forName("com.github.catvod.Proxy");
port = (int) clz.getMethod("getPort").invoke(null);
method = clz.getMethod("getUrl", boolean.class);
} catch (Throwable e) {
findPort();
}
}
public static int getPort() {
return port;
}
public static String getUrl() {
return getUrl(true);
}
public static String getUrl(boolean local) {
try {
return (String) method.invoke(null, local);
} catch (Throwable e) {
return "http://127.0.0.1:" + port + "/proxy";
}
}
private static void findPort() {
if (port > 0) return;
for (int p = 8964; p < 9999; p++) {
if ("ok".equals(OkHttp.string("http://127.0.0.1:" + p + "/proxy?do=ck", null))) {
SpiderDebug.log("本地代理端口:" + p);
port = p;
break;
}
}
}
}