diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java index e124cc262..e5e37222f 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java @@ -69,7 +69,7 @@ public class Parse { } public String getUrl() { - return TextUtils.isEmpty(url) ? "" : url; + return TextUtils.isEmpty(url) ? "" : Utils.checkProxy(url); } public void setUrl(String url) { @@ -102,7 +102,7 @@ public class Parse { public String extUrl() { int index = getUrl().indexOf("?"); - if (index == -1) return getUrl(); + if (getExt().isEmpty() || index == -1) return getUrl(); return getUrl().substring(0, index + 1) + "cat_ext=" + Utils.getBase64(getExt().toString()) + "&" + getUrl().substring(index + 1); } @@ -141,6 +141,10 @@ public class Parse { this.header = header; } + public boolean isEmpty() { + return flag == null && header == null; + } + @NonNull @Override public String toString() { diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java index eede285cb..2a246457c 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java @@ -5,9 +5,9 @@ import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Parse; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.net.OKHttp; -import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.custom.CustomWebView; import com.fongmi.android.tv.utils.Json; +import com.fongmi.android.tv.utils.Utils; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -101,7 +101,7 @@ public class ParseTask { if (result.getUrl().isEmpty()) { onParseError(); } else if (result.getParse(0) == 1) { - App.post(() -> webView.start(Server.proxy(result.getUrl()), result.getHeaders(), callback)); + App.post(() -> webView.start(Utils.checkProxy(result.getUrl()), result.getHeaders(), callback)); } else { onParseSuccess(result.getHeaders(), result.getUrl(), result.getJxFrom()); } 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 d3747733a..6a5faaff9 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 @@ -34,11 +34,6 @@ public class Server implements Nano.Listener { return "http://" + (local ? "127.0.0.1" : getIP()) + ":" + port; } - public static String proxy(String url) { - if (url.startsWith("proxy://")) return url.replace("proxy://", get().getAddress(true) + "/proxy?"); - return url; - } - public void start() { if (nano != null) return; do { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index 7639a1b74..e1c3f42b7 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -12,6 +12,7 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.server.Server; import com.google.android.exoplayer2.util.Util; import java.math.BigInteger; @@ -79,6 +80,11 @@ public class Utils { return false; } + public static String checkProxy(String url) { + if (url.startsWith("proxy://")) return url.replace("proxy://", Server.get().getAddress(true) + "/proxy?"); + return url; + } + public static String checkClan(String text) { if (text.contains("/localhost/")) text = text.replace("/localhost/", "/"); if (text.startsWith("clan")) text = text.replace("clan", "file");