pull/605/head
jhengazuji 4 months ago
parent bd050b8490
commit 02d4cee0bd
  1. 11
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  2. 29
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/bean/Live.java
  4. 6
      app/src/main/java/com/fongmi/android/tv/bean/Parse.java
  5. 6
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  6. 2
      app/src/main/java/com/fongmi/android/tv/player/ParseJob.java

@ -199,12 +199,10 @@ public class LiveConfig {
private void initLive(Config config, JsonObject object) {
String spider = Json.safeString(object, "spider");
BaseLoader.get().parseJar(spider, false);
setLives(Json.safeListElement(object, "lives").stream().map(element -> Live.objectFrom(element, spider)).distinct().collect(Collectors.toCollection(ArrayList::new)));
if (getLives().isEmpty()) return;
setLives(Json.safeListElement(object, "lives").stream().map(e -> Live.objectFrom(e, spider)).distinct().collect(Collectors.toCollection(ArrayList::new)));
Map<String, Live> items = Live.findAll().stream().collect(Collectors.toMap(Live::getName, Function.identity()));
for (Live live : getLives()) live.sync(items.get(live.getName()));
int index = getLives().indexOf(Live.get(config.getHome()));
setHome(config, index != -1 ? getLives().get(index) : getLives().get(0), false);
getLives().forEach(live -> live.sync(items.get(live.getName())));
setHome(config, getLives().isEmpty() ? new Live() : getLives().stream().filter(item -> item.getName().equals(config.getHome())).findFirst().orElse(getLives().get(0)), false);
}
private void bootLive() {
@ -303,8 +301,7 @@ public class LiveConfig {
}
public Live getLive(String key) {
int index = getLives().indexOf(Live.get(key));
return index == -1 ? new Live() : getLives().get(index);
return getLives().stream().filter(item -> item.getName().equals(key)).findFirst().orElse(new Live());
}
public void setHome(Live home) {

@ -191,19 +191,15 @@ public class VodConfig {
private void initSite(Config config, JsonObject object) {
String spider = Json.safeString(object, "spider");
BaseLoader.get().parseJar(spider, true);
setSites(Json.safeListElement(object, "sites").stream().map(element -> Site.objectFrom(element, spider)).distinct().collect(Collectors.toCollection(ArrayList::new)));
if (getSites().isEmpty()) return;
setSites(Json.safeListElement(object, "sites").stream().map(e -> Site.objectFrom(e, spider)).distinct().collect(Collectors.toCollection(ArrayList::new)));
Map<String, Site> items = Site.findAll().stream().collect(Collectors.toMap(Site::getKey, Function.identity()));
for (Site site : getSites()) site.sync(items.get(site.getKey()));
int index = getSites().indexOf(Site.get(config.getHome()));
setHome(config, index != -1 ? getSites().get(index) : getSites().get(0), false);
getSites().forEach(site -> site.sync(items.get(site.getKey())));
setHome(config, getSites().isEmpty() ? new Site() : getSites().stream().filter(item -> item.getKey().equals(config.getHome())).findFirst().orElse(getSites().get(0)), false);
}
private void initParse(Config config, JsonObject object) {
setParses(Json.safeListElement(object, "parses").stream().map(Parse::objectFrom).distinct().collect(Collectors.toCollection(ArrayList::new)));
if (getParses().isEmpty()) return;
int index = getParses().indexOf(Parse.get(config.getParse()));
setParse(config, index != -1 ? getParses().get(index) : getParses().get(0), false);
setParse(config, getParses().isEmpty() ? new Parse() : getParses().stream().filter(item -> item.getName().equals(config.getParse())).findFirst().orElse(getParses().get(0)), false);
}
public List<Site> getSites() {
@ -244,16 +240,13 @@ public class VodConfig {
}
public List<Parse> getParses(int type) {
List<Parse> items = new ArrayList<>();
for (Parse item : getParses()) if (item.getType() == type) items.add(item);
return items;
return getParses().stream().filter(item -> item.getType() == type).collect(Collectors.toList());
}
public List<Parse> getParses(int type, String flag) {
List<Parse> items = new ArrayList<>();
for (Parse item : getParses(type)) if (item.getExt().getFlag().contains(flag)) items.add(item);
if (items.isEmpty()) items.addAll(getParses(type));
return items;
List<Parse> items = getParses(type);
List<Parse> filter = items.stream().filter(item -> item.getExt().getFlag().contains(flag)).collect(Collectors.toList());
return filter.isEmpty() ? items : filter;
}
private void setHeaders(List<Header> headers) {
@ -302,13 +295,11 @@ public class VodConfig {
}
public Parse getParse(String name) {
int index = getParses().indexOf(Parse.get(name));
return index == -1 ? null : getParses().get(index);
return getParses().stream().filter(item -> item.getName().equals(name)).findFirst().orElse(new Parse());
}
public Site getSite(String key) {
int index = getSites().indexOf(Site.get(key));
return index == -1 ? new Site() : getSites().get(index);
return getSites().stream().filter(item -> item.getKey().equals(key)).findFirst().orElse(new Site());
}
public void setParse(Parse parse) {

@ -128,12 +128,6 @@ public class Live {
}
}
public static Live get(String name) {
Live live = new Live();
live.setName(name);
return live;
}
public Live() {
}

@ -38,12 +38,6 @@ public class Parse implements Diffable<Parse> {
return App.gson().fromJson(element, Parse.class);
}
public static Parse get(String name) {
Parse parse = new Parse();
parse.setName(name);
return parse;
}
public static Parse get(Integer type, String url) {
Parse parse = new Parse();
parse.setType(type);

@ -116,12 +116,6 @@ public class Site implements Parcelable {
}
}
public static Site get(String key) {
Site site = new Site();
site.setKey(key);
return site;
}
public static Site get(String key, String name) {
Site site = new Site();
site.setKey(key);

@ -62,7 +62,7 @@ public class ParseJob implements ParseCallback {
if (useParse) parse = VodConfig.get().getParse();
if (result.getPlayUrl().startsWith("json:")) parse = Parse.get(1, result.getPlayUrl().substring(5));
if (result.getPlayUrl().startsWith("parse:")) parse = VodConfig.get().getParse(result.getPlayUrl().substring(6));
if (parse == null || parse.isEmpty()) parse = Parse.get(0, result.getPlayUrl());
if (parse.isEmpty()) parse = Parse.get(0, result.getPlayUrl());
parse.setHeader(result.getHeader());
parse.setClick(getClick(result));
}

Loading…
Cancel
Save