diff --git a/app/src/main/java/com/fongmi/android/tv/server/Server.java b/app/src/main/java/com/fongmi/android/tv/server/Server.java index 241befb3b..6f581da3c 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Server.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Server.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 en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { - NetworkInterface interfaces = en.nextElement(); - for (Enumeration addresses = interfaces.getInetAddresses(); addresses.hasMoreElements(); ) { - InetAddress inetAddress = addresses.nextElement(); - if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { - return inetAddress.getHostAddress(); - } - } - } - return ""; - } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java b/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java index 327c10187..40e3df806 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java +++ b/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java @@ -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; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java index 1bb5e4811..56068a020 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java @@ -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; } diff --git a/catvod/src/main/java/com/github/catvod/Proxy.java b/catvod/src/main/java/com/github/catvod/Proxy.java new file mode 100644 index 000000000..27092bfc0 --- /dev/null +++ b/catvod/src/main/java/com/github/catvod/Proxy.java @@ -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"; + } +} diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index e0dc2b8cc..c619f3d9e 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -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 en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { + NetworkInterface interfaces = en.nextElement(); + for (Enumeration addresses = interfaces.getInetAddresses(); addresses.hasMoreElements(); ) { + InetAddress inetAddress = addresses.nextElement(); + if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { + return inetAddress.getHostAddress(); + } + } + } + return ""; + } } diff --git a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java index 9251c7708..0277ece71 100644 --- a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java +++ b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java @@ -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 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(); diff --git a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java index 1195124bb..65c1f64aa 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java @@ -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 diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/Proxy.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/Proxy.java deleted file mode 100644 index 5e2866de3..000000000 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/Proxy.java +++ /dev/null @@ -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"; - } -}