live support jar config

pull/265/head
FongMi 2 years ago
parent 989f0ac6c8
commit 201d293687
  1. 7
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  2. 1
      app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java
  3. 11
      app/src/main/java/com/fongmi/android/tv/bean/Live.java
  4. 1
      app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.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<String, String> params) {
if (params.containsKey("do") && params.get("do").equals("js")) {
return jsLoader.proxyInvoke(params);

@ -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];

@ -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<Live> arrayFrom(String str) {
Type listType = new TypeToken<List<Live>>() {}.getType();
Type listType = new TypeToken<List<Live>>() {
}.getType();
List<Live> 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;
}

@ -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;

Loading…
Cancel
Save