From 201d2936873aac945c081e2051c8eff2e8ff76d6 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 1 Feb 2024 17:06:10 +0800 Subject: [PATCH] live support jar config --- .../com/fongmi/android/tv/api/config/VodConfig.java | 7 +++++++ .../com/fongmi/android/tv/api/loader/JarLoader.java | 1 + .../main/java/com/fongmi/android/tv/bean/Live.java | 11 +++++++++-- .../com/fongmi/android/tv/model/LiveViewModel.java | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) 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 80ac4d858..e449002f5 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 @@ -10,6 +10,7 @@ import com.fongmi.android.tv.api.loader.JsLoader; import com.fongmi.android.tv.api.loader.PyLoader; import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.bean.Depot; +import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.bean.Parse; import com.fongmi.android.tv.bean.Rule; import com.fongmi.android.tv.bean.Site; @@ -21,6 +22,7 @@ import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderNull; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Json; +import com.github.catvod.utils.Util; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -247,6 +249,11 @@ public class VodConfig { else if (csp) jarLoader.setRecent(site.getJar()); } + public void setRecent(Live live) { + jarLoader.parseJar(Util.md5(live.getJar()), live.getJar()); + jarLoader.setRecent(live.getJar()); + } + public Object[] proxyLocal(Map params) { if (params.containsKey("do") && params.get("do").equals("js")) { return jsLoader.proxyInvoke(params); diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java index 101f3d729..e1e8e3a93 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java @@ -81,6 +81,7 @@ public class JarLoader { } public void parseJar(String key, String jar) { + if (loaders.containsKey(key)) return; String[] texts = jar.split(";md5;"); String md5 = texts.length > 1 ? texts[1].trim() : ""; jar = texts[0]; diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index f216e8236..c9e402183 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -@Entity(ignoredColumns = {"type", "group", "url", "logo", "epg", "ua", "click", "origin", "referer", "timeout", "header", "playerType", "channels", "groups", "core", "activated", "width"}) +@Entity(ignoredColumns = {"type", "group", "url", "jar", "logo", "epg", "ua", "click", "origin", "referer", "timeout", "header", "playerType", "channels", "groups", "core", "activated", "width"}) public class Live { @NonNull @@ -38,6 +38,8 @@ public class Live { private String group; @SerializedName("url") private String url; + @SerializedName("jar") + private String jar; @SerializedName("logo") private String logo; @SerializedName("epg") @@ -71,7 +73,8 @@ public class Live { } public static List arrayFrom(String str) { - Type listType = new TypeToken>() {}.getType(); + Type listType = new TypeToken>() { + }.getType(); List items = App.gson().fromJson(str, listType); return items == null ? Collections.emptyList() : items; } @@ -125,6 +128,10 @@ public class Live { return TextUtils.isEmpty(url) ? "" : url; } + public String getJar() { + return TextUtils.isEmpty(jar) ? "" : jar; + } + public String getLogo() { return TextUtils.isEmpty(logo) ? "" : logo; } diff --git a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java index b51edd22e..3017bbc2d 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java @@ -52,6 +52,7 @@ public class LiveViewModel extends ViewModel { public void getLive(Live item) { execute(LIVE, () -> { + VodConfig.get().setRecent(item); LiveParser.start(item); verify(item); return item;