pull/605/head
jhengazuki 4 months ago
parent 34792d599a
commit 6bfb71e17e
  1. 32
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java

@ -87,26 +87,31 @@ public class SiteViewModel extends ViewModel {
Spider spider = site.recent().spider();
boolean crash = Prefers.getBoolean("crash");
String homeContent = crash ? "" : spider.homeContent(true);
String homeVideoContent = crash ? "" : spider.homeVideoContent();
Prefers.put("crash", false);
SpiderDebug.log("home", homeContent);
Result result = Result.fromJson(homeContent);
if (!result.getList().isEmpty()) return setTypes(site, result);
String homeVideoContent = spider.homeVideoContent();
SpiderDebug.log("homeVideo", homeVideoContent);
result.setList(Result.fromJson(homeVideoContent).getList());
return setTypes(site, result);
Result result = Result.fromJson(homeContent);
List<Vod> list = Result.fromJson(homeVideoContent).getList();
if (!list.isEmpty()) result.setList(list);
setTypes(site, result);
return result;
} else if (site.getType() == 4) {
ArrayMap<String, String> params = new ArrayMap<>();
params.put("filter", "true");
String homeContent = call(site.fetchExt(), params);
SpiderDebug.log("home", homeContent);
return setTypes(site, Result.fromJson(homeContent));
Result result = Result.fromJson(homeContent);
setTypes(site, result);
return result;
} else {
try (Response response = OkHttp.newCall(site.getApi(), site.getHeader()).execute()) {
String homeContent = response.body().string();
SpiderDebug.log("home", homeContent);
Result result = Result.fromType(site.getType(), homeContent);
return setTypes(site, fetchPic(site, result));
setTypes(site, result);
fetchPic(site, result);
return result;
}
}
});
@ -144,8 +149,9 @@ public class SiteViewModel extends ViewModel {
String detailContent = spider.detailContent(Arrays.asList(id));
SpiderDebug.log("detail", detailContent);
Result result = Result.fromJson(detailContent);
if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags();
if (!result.getList().isEmpty()) Source.get().parse(result.getList().get(0).getVodFlags());
if (result.getList().isEmpty()) return result;
result.getList().get(0).setVodFlags();
Source.get().parse(result.getList().get(0).getVodFlags());
return result;
} else if (site.isEmpty() && "push_agent".equals(key)) {
Vod vod = new Vod();
@ -162,8 +168,9 @@ public class SiteViewModel extends ViewModel {
String detailContent = call(site, params);
SpiderDebug.log("detail", detailContent);
Result result = Result.fromType(site.getType(), detailContent);
if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags();
if (!result.getList().isEmpty()) Source.get().parse(result.getList().get(0).getVodFlags());
if (result.getList().isEmpty()) return result;
result.getList().get(0).setVodFlags();
Source.get().parse(result.getList().get(0).getVodFlags());
return result;
}
});
@ -260,11 +267,10 @@ public class SiteViewModel extends ViewModel {
}
}
private Result setTypes(Site site, Result result) {
private void setTypes(Site site, Result result) {
result.getTypes().stream().filter(type -> result.getFilters().containsKey(type.getTypeId())).forEach(type -> type.setFilters(result.getFilters().get(type.getTypeId())));
List<Class> types = site.getCategories().stream().flatMap(cate -> result.getTypes().stream().filter(type -> cate.equals(type.getTypeName()))).toList();
if (!types.isEmpty()) result.setTypes(types);
return result;
}
private void execute(MutableLiveData<Result> result, Callable<Result> callable) {

Loading…
Cancel
Save