diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index b74252155..3e1225dfd 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java @@ -29,7 +29,7 @@ public class LiveParser { if (live.getGroups().size() > 0) return; if (live.getType() == 0) text(live, getText(live.getUrl())); if (live.getType() == 1) json(live, getText(live.getUrl())); - if (live.getType() == 2) proxy(live, getText(Utils.checkProxy(live.getUrl()))); + if (live.getType() == 2) proxy(live, getText(Utils.convert(live.getUrl()))); } public static void text(Live live, String text) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Core.java b/app/src/main/java/com/fongmi/android/tv/bean/Core.java index dac81b7d7..1008d9016 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Core.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Core.java @@ -2,6 +2,7 @@ package com.fongmi.android.tv.bean; import android.text.TextUtils; +import com.fongmi.android.tv.utils.Utils; import com.google.gson.annotations.SerializedName; public class Core { @@ -14,9 +15,11 @@ public class Core { private String pass; @SerializedName("broker") private String broker; + @SerializedName("resp") + private String resp; public String getAuth() { - return TextUtils.isEmpty(auth) ? "" : auth; + return TextUtils.isEmpty(auth) ? "" : Utils.convert(auth); } public String getName() { @@ -30,4 +33,8 @@ public class Core { public String getBroker() { return TextUtils.isEmpty(broker) ? "" : broker; } + + public String getResp() { + return TextUtils.isEmpty(resp) ? "" : resp; + } } 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 c1eadeae3..1dc181b67 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 @@ -79,7 +79,7 @@ public class Parse { } public String getUrl() { - return TextUtils.isEmpty(url) ? "" : Utils.checkProxy(url); + return TextUtils.isEmpty(url) ? "" : Utils.convert(url); } public void setUrl(String url) { diff --git a/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java index c7ca7a686..038af5251 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java @@ -148,7 +148,7 @@ public class ParseJob implements ParseCallback { private void checkResult(Result result) { if (result.getUrl().isEmpty()) onParseError(); - else if (result.getParse() == 1) startWeb(result.getHeaders(), Utils.checkProxy(result.getUrl())); + else if (result.getParse() == 1) startWeb(result.getHeaders(), Utils.convert(result.getUrl())); else onParseSuccess(result.getHeaders(), result.getUrl(), result.getJxFrom()); } diff --git a/app/src/main/java/com/fongmi/android/tv/server/Nano.java b/app/src/main/java/com/fongmi/android/tv/server/Nano.java index 4122e55d5..3ebf03ebc 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Nano.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Nano.java @@ -4,6 +4,7 @@ import android.net.Uri; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; +import com.fongmi.android.tv.api.LiveConfig; import com.fongmi.android.tv.bean.Device; import com.fongmi.android.tv.server.process.ActionRequestProcess; import com.fongmi.android.tv.server.process.RawRequestProcess; @@ -90,6 +91,7 @@ public class Nano extends NanoHTTPD { if (url.startsWith("/upload")) return doUpload(session.getParms(), files); else if (url.startsWith("/newFolder")) return doNewFolder(session.getParms()); else if (url.startsWith("/delFolder") || url.startsWith("/delFile")) return doDelFolder(session.getParms()); + else if (url.startsWith("/tvbus")) return createSuccessResponse(LiveConfig.get().getHome().getCore().getResp()); break; } return createErrorResponse(NanoHTTPD.Response.Status.NOT_FOUND, "Not Found"); diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index 22cd0fd18..82ca0f02f 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -55,7 +55,7 @@ public class ImgUtil { public static Object getUrl(String url) { String param = null; - url = Utils.checkProxy(url); + url = Utils.convert(url); if (url.startsWith("data:")) return url; LazyHeaders.Builder builder = new LazyHeaders.Builder(); if (url.contains("@Cookie=")) builder.addHeader("Cookie", param = url.split("@Cookie=")[1].split("@")[0]); 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 6c689d61e..fc24ee278 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 @@ -4,6 +4,7 @@ import android.Manifest; import android.app.Activity; import android.content.ClipboardManager; import android.content.Context; +import android.net.Uri; import android.os.Build; import android.os.IBinder; import android.provider.Settings; @@ -94,27 +95,26 @@ public class Utils { return headers; } - public static String checkProxy(String url) { - if (url.startsWith("proxy://")) return url.replace("proxy://", Server.get().getAddress("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"); return text; } - public static String convert(String text) { - return text.startsWith("file") ? Server.get().getAddress(text) : text; - } - public static String convert(String baseUrl, String text) { if (TextUtils.isEmpty(text)) return ""; if (text.startsWith("clan")) return checkClan(text); return UriUtil.resolve(baseUrl, text); } + public static String convert(String url) { + Uri uri = Uri.parse(url); + if ("file".equals(uri.getScheme())) return Server.get().getAddress(url); + if ("local".equals(uri.getScheme())) return Server.get().getAddress(uri.getHost()); + if ("proxy".equals(uri.getScheme())) return url.replace("proxy://", Server.get().getAddress("proxy?")); + return url; + } + public static String getMd5(String src) { try { if (TextUtils.isEmpty(src)) return "";