diff --git a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java index 1498e8c52..8dc713948 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java @@ -22,8 +22,8 @@ public class Decoder { private static final Pattern JS_URI = Pattern.compile("\"(\\.|\\.\\.)/(.?|.+?)\\.js\\?(.?|.+?)\""); - public static String getJson(String url) throws Exception { - try (Response res = OkHttp.newCall(url, "config").execute()) { + public static String getJson(String url, String tag) throws Exception { + try (Response res = OkHttp.newCall(url, tag).execute()) { HttpUrl httpUrl = res.request().url(); int size = HttpUrl.parse(url).querySize(); if (httpUrl.querySize() == size) url = httpUrl.toString(); diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java index ed2afa3e0..edf555028 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java @@ -41,6 +41,8 @@ import java.util.stream.Collectors; public class LiveConfig { + private static final String TAG = LiveConfig.class.getSimpleName(); + private Live home; private Config config; private List lives; @@ -128,9 +130,9 @@ public class LiveConfig { private void loadConfig(Callback callback) { try { + OkHttp.cancel(TAG); Server.get().start(); - OkHttp.cancel("config"); - String text = Decoder.getJson(UrlUtil.convert(config.getUrl())); + String text = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG); if (!Json.isObj(text)) clear().parseText(text, callback); else checkJson(Json.parse(text).getAsJsonObject(), callback); config.update(); diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index 7bf672302..312fe523a 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -33,6 +33,8 @@ import java.util.stream.Collectors; public class VodConfig { + private static final String TAG = VodConfig.class.getSimpleName(); + private Site home; private String wall; private Parse parse; @@ -129,9 +131,9 @@ public class VodConfig { private void loadConfig(Callback callback) { try { + OkHttp.cancel(TAG); Server.get().start(); - OkHttp.cancel("config"); - String json = Decoder.getJson(UrlUtil.convert(config.getUrl())); + String json = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG); checkJson(Json.parse(json).getAsJsonObject(), callback); config.update(); } catch (Throwable e) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index 420871f79..0bbb2ba62 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -351,11 +351,11 @@ public class Channel { public Result result() { Result result = new Result(); result.setDrm(getDrm()); + result.setUrl(getCurrent()); result.setClick(getClick()); result.setParse(getParse()); result.setFormat(getFormat()); result.setHeader(Json.toObject(getHeaders())); - result.setUrl(Url.create().add(getCurrent())); return result; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Result.java b/app/src/main/java/com/fongmi/android/tv/bean/Result.java index 9ea1c4bc1..bbf8ec130 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Result.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Result.java @@ -183,10 +183,6 @@ public class Result implements Parcelable { return url == null ? Url.create() : url; } - public void setUrl(Url url) { - this.url = url; - } - public void setUrl(String url) { this.url = getUrl().replace(url); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Url.java b/app/src/main/java/com/fongmi/android/tv/bean/Url.java index 514e728a1..6b703ab60 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Url.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Url.java @@ -64,7 +64,8 @@ public class Url { } public Url replace(String url) { - getValues().get(getPosition()).setV(url); + if (isEmpty()) add(url); + else getValues().get(getPosition()).setV(url); return this; } diff --git a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java index fbc34a2f2..866051e7b 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java @@ -14,7 +14,6 @@ import com.fongmi.android.tv.bean.Episode; import com.fongmi.android.tv.bean.Flag; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Site; -import com.fongmi.android.tv.bean.Url; import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.exception.ExtractException; import com.fongmi.android.tv.player.Source; @@ -192,20 +191,19 @@ public class SiteViewModel extends ViewModel { return result; } else if (site.isEmpty() && "push_agent".equals(key)) { Result result = new Result(); + result.setUrl(id); result.setParse(0); result.setFlag(flag); - result.setUrl(Url.create().add(id)); result.setUrl(Source.get().fetch(result)); SpiderDebug.log("player", result.toString()); return result; } else { - Url url = Url.create().add(id); Result result = new Result(); - result.setUrl(url); + result.setUrl(id); result.setFlag(flag); result.setHeader(site.getHeader()); result.setPlayUrl(site.getPlayUrl()); - result.setParse(Sniffer.isVideoFormat(url.v()) && result.getPlayUrl().isEmpty() ? 0 : 1); + result.setParse(Sniffer.isVideoFormat(id) && result.getPlayUrl().isEmpty() ? 0 : 1); result.setUrl(Source.get().fetch(result)); SpiderDebug.log("player", result.toString()); return result;