From d70d87e4c453d87018c9b1c2b60d0b767ba5f10d Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 23 May 2023 00:02:32 +0800 Subject: [PATCH] Fix type 0 search vodPic --- .../android/tv/model/SiteViewModel.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) 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 252ce0724..150c167d2 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 @@ -72,16 +72,7 @@ public class SiteViewModel extends ViewModel { String body = OkHttp.newCall(site.getApi()).execute().body().string(); SpiderDebug.log(body); Result result = site.getType() == 0 ? Result.fromXml(body) : Result.fromJson(body); - if (result.getList().isEmpty() || result.getList().get(0).getVodPic().length() > 0) return result; - ArrayList ids = new ArrayList<>(); - for (Vod item : result.getList()) ids.add(item.getVodId()); - ArrayMap params = new ArrayMap<>(); - params.put("ac", site.getType() == 0 ? "videolist" : "detail"); - params.put("ids", TextUtils.join(",", ids)); - body = OkHttp.newCall(site.getApi(), params).execute().body().string(); - List items = site.getType() == 0 ? Result.fromXml(body).getList() : Result.fromJson(body).getList(); - result.setList(items); - return result; + return fetchPic(site, result); } }); } @@ -172,7 +163,7 @@ public class SiteViewModel extends ViewModel { if (site.getType() == 3) { Spider spider = ApiConfig.get().getCSP(site); String searchContent = spider.searchContent(Trans.t2s(keyword), false); - SpiderDebug.log(searchContent); + SpiderDebug.log(site.getName() + "," + searchContent); post(site, Result.fromJson(searchContent)); } else { ArrayMap params = new ArrayMap<>(); @@ -180,11 +171,24 @@ public class SiteViewModel extends ViewModel { if (site.getType() != 0) params.put("ac", "detail"); String body = OkHttp.newCall(site.getApi(), params).execute().body().string(); SpiderDebug.log(site.getName() + "," + body); - if (site.getType() == 0) post(site, Result.fromXml(body)); - else post(site, Result.fromJson(body)); + Result result = site.getType() == 0 ? Result.fromXml(body) : Result.fromJson(body); + post(site, fetchPic(site, result)); } } + private Result fetchPic(Site site, Result result) throws Exception { + if (result.getList().isEmpty() || result.getList().get(0).getVodPic().length() > 0) return result; + ArrayList ids = new ArrayList<>(); + for (Vod item : result.getList()) ids.add(item.getVodId()); + ArrayMap params = new ArrayMap<>(); + params.put("ac", site.getType() == 0 ? "videolist" : "detail"); + params.put("ids", TextUtils.join(",", ids)); + String body = OkHttp.newCall(site.getApi(), params).execute().body().string(); + List items = site.getType() == 0 ? Result.fromXml(body).getList() : Result.fromJson(body).getList(); + result.setList(items); + return result; + } + private void post(Site site, Result result) { if (result.getList().isEmpty()) return; for (Vod vod : result.getList()) vod.setSite(site);