py support proxy

pull/180/head
FongMi 2 years ago
parent 1bd56fd983
commit 5efa2fbbab
  1. 39
      app/src/main/java/com/fongmi/android/tv/server/Server.java
  2. 3
      app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java
  3. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java
  4. 20
      catvod/src/main/java/com/github/catvod/Proxy.java
  5. 34
      catvod/src/main/java/com/github/catvod/utils/Util.java
  6. 9
      pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java
  7. 6
      quickjs/src/main/java/com/fongmi/quickjs/method/Global.java
  8. 14
      quickjs/src/main/java/com/fongmi/quickjs/utils/Proxy.java

@ -1,17 +1,8 @@
package com.fongmi.android.tv.server;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.text.format.Formatter;
import com.fongmi.android.tv.App;
import com.fongmi.quickjs.utils.Proxy;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import com.github.catvod.Proxy;
import com.github.catvod.utils.Util;
import go_proxy_video.GoVideoProxy;
import go_proxy_video.Go_proxy_video;
@ -47,7 +38,7 @@ public class Server {
}
public String getAddress(boolean local) {
return "http://" + (local ? "127.0.0.1" : getIP()) + ":" + getPort();
return "http://" + (local ? "127.0.0.1" : Util.getIp()) + ":" + getPort();
}
public void start() {
@ -78,28 +69,4 @@ public class Server {
proxy = null;
}
}
public String getIP() {
try {
WifiManager manager = (WifiManager) App.get().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
int address = manager.getConnectionInfo().getIpAddress();
if (address != 0) return Formatter.formatIpAddress(address);
return getHostAddress();
} catch (Exception e) {
return "";
}
}
private String getHostAddress() throws SocketException {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface interfaces = en.nextElement();
for (Enumeration<InetAddress> addresses = interfaces.getInetAddresses(); addresses.hasMoreElements(); ) {
InetAddress inetAddress = addresses.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
return "";
}
}

@ -2,6 +2,7 @@ package com.fongmi.android.tv.cast;
import com.fongmi.android.tv.server.Server;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Util;
public class CastVideo {
@ -14,7 +15,7 @@ public class CastVideo {
private CastVideo(String name, String url) {
if (url.startsWith("file")) url = Server.get().getAddress() + "/" + url.replace(Path.rootPath(), "");
if (url.contains("127.0.0.1")) url = url.replace("127.0.0.1", Server.get().getIP());
if (url.contains("127.0.0.1")) url = url.replace("127.0.0.1", Util.getIp());
this.name = name;
this.url = url;
}

@ -32,6 +32,7 @@ import com.fongmi.android.tv.ui.adapter.DeviceAdapter;
import com.fongmi.android.tv.utils.Notify;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Util;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import org.fourthline.cling.support.lastchange.EventedValue;
@ -77,7 +78,7 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe
String fd = history.getVodId();
if (fd.startsWith("/")) fd = Server.get().getAddress() + "/file://" + fd.replace(Path.rootPath(), "");
if (fd.startsWith("file")) fd = Server.get().getAddress() + "/" + fd.replace(Path.rootPath(), "");
if (fd.contains("127.0.0.1")) fd = fd.replace("127.0.0.1", Server.get().getIP());
if (fd.contains("127.0.0.1")) fd = fd.replace("127.0.0.1", Util.getIp());
body.add("history", history.toString().replace(id, fd));
return this;
}

@ -0,0 +1,20 @@
package com.github.catvod;
import com.github.catvod.utils.Util;
public class Proxy {
private static int port = 9978;
public static void set(int port) {
Proxy.port = port;
}
public static int getPort() {
return port;
}
public static String getUrl(boolean local) {
return "http://" + (local ? "127.0.0.1" : Util.getIp()) + ":" + getPort() + "/proxy";
}
}

@ -1,14 +1,24 @@
package com.github.catvod.utils;
import android.content.Context;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.util.Base64;
import com.github.catvod.Init;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Enumeration;
public class Util {
@ -67,4 +77,28 @@ public class Util {
return false;
}
}
public static String getIp() {
try {
WifiManager manager = (WifiManager) Init.context().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
int address = manager.getConnectionInfo().getIpAddress();
if (address != 0) return Formatter.formatIpAddress(address);
return getHostAddress();
} catch (Exception e) {
return "";
}
}
private static String getHostAddress() throws SocketException {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface interfaces = en.nextElement();
for (Enumeration<InetAddress> addresses = interfaces.getInetAddresses(); addresses.hasMoreElements(); ) {
InetAddress inetAddress = addresses.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
return "";
}
}

@ -6,6 +6,7 @@ import android.text.TextUtils;
import androidx.collection.ArrayMap;
import com.chaquo.python.PyObject;
import com.github.catvod.Proxy;
import com.github.catvod.net.OkHttp;
import com.google.gson.Gson;
@ -74,7 +75,7 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
public String playerContent(String flag, String id, List<String> vipFlags) {
return app.callAttr("playerContent", obj, flag, id, gson.toJson(vipFlags)).toString();
return replaceLocalUrl(app.callAttr("playerContent", obj, flag, id, gson.toJson(vipFlags)).toString());
}
@Override
@ -102,10 +103,14 @@ public class Spider extends com.github.catvod.crawler.Spider {
return new Object[]{code, type, OkHttp.newCall(url, header, param).execute().body().byteStream()};
} else {
if (content.isEmpty()) content = OkHttp.newCall(url, header).execute().body().string();
return new Object[]{code, type, new ByteArrayInputStream(content.getBytes())};
return new Object[]{code, type, new ByteArrayInputStream(replaceLocalUrl(content).getBytes())};
}
}
private String replaceLocalUrl(String content) {
return content.replace("http://127.0.0.1:UndCover/proxy", Proxy.getUrl(true) + "?do=py");
}
private Headers getHeader(String header) throws JSONException {
Headers.Builder builder = new Headers.Builder();
if (TextUtils.isEmpty(header)) return builder.build();

@ -8,7 +8,7 @@ import com.fongmi.quickjs.utils.Connect;
import com.fongmi.quickjs.utils.Crypto;
import com.fongmi.quickjs.utils.JSUtil;
import com.fongmi.quickjs.utils.Parser;
import com.fongmi.quickjs.utils.Proxy;
import com.github.catvod.Proxy;
import com.github.catvod.utils.Trans;
import com.orhanobut.logger.Logger;
import com.whl.quickjs.wrapper.JSArray;
@ -78,13 +78,13 @@ public class Global {
@Keep
@JSMethod
public String getProxy(Boolean local) {
return Proxy.getUrl() + "?do=js";
return Proxy.getUrl(local) + "?do=js";
}
@Keep
@JSMethod
public String js2Proxy(Boolean dynamic, Integer siteType, String siteKey, String url, JSObject headers) {
return getProxy(true) + "&from=catvod" + "&siteType=" + siteType + "&siteKey=" + siteKey + "&header=" + URLEncoder.encode(headers.stringify()) + "&url=" + URLEncoder.encode(url);
return getProxy(!dynamic) + "&from=catvod" + "&siteType=" + siteType + "&siteKey=" + siteKey + "&header=" + URLEncoder.encode(headers.stringify()) + "&url=" + URLEncoder.encode(url);
}
@Keep

@ -1,14 +0,0 @@
package com.fongmi.quickjs.utils;
public class Proxy {
private static int port = 9978;
public static void set(int port) {
Proxy.port = port;
}
public static String getUrl() {
return "http://127.0.0.1:" + port + "/proxy";
}
}
Loading…
Cancel
Save