diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Site.java b/app/src/main/java/com/fongmi/android/tv/bean/Site.java index a8b05dedb..1b21f4d51 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Site.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Site.java @@ -15,6 +15,7 @@ import com.fongmi.android.tv.api.loader.BaseLoader; import com.fongmi.android.tv.db.AppDatabase; import com.fongmi.android.tv.gson.ExtAdapter; import com.github.catvod.crawler.Spider; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Json; import com.github.catvod.utils.Trans; import com.google.gson.JsonElement; @@ -267,6 +268,13 @@ public class Site implements Parcelable { return Headers.of(Json.toMap(getHeader())); } + public Site fetchExt() { + if (!getExt().startsWith("http")) return this; + String extend = OkHttp.string(getExt()); + if (!extend.isEmpty()) setExt(extend); + return this; + } + public Site trans() { if (Trans.pass()) return this; List categories = new ArrayList<>(); 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 157d5fe1e..2fd60193b 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 @@ -24,7 +24,6 @@ import com.fongmi.android.tv.utils.Sniffer; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Json; import com.github.catvod.utils.Trans; import com.github.catvod.utils.Util; @@ -76,7 +75,7 @@ public class SiteViewModel extends ViewModel { } else if (site.getType() == 4) { ArrayMap params = new ArrayMap<>(); params.put("filter", "true"); - String homeContent = call(site, params); + String homeContent = call(site.fetchExt(), params); SpiderDebug.log(homeContent); return Result.fromJson(homeContent); } else { @@ -239,17 +238,10 @@ public class SiteViewModel extends ViewModel { } private String call(Site site, ArrayMap params) throws IOException { - String extend = fetchExt(site); - if (!extend.isEmpty()) params.put("extend", extend); + if (!site.getExt().isEmpty()) params.put("extend", site.getExt()); Call get = OkHttp.newCall(site.getApi(), site.getHeaders(), params); Call post = OkHttp.newCall(site.getApi(), site.getHeaders(), OkHttp.toBody(params)); - return (extend.length() <= 1000 ? get : post).execute().body().string(); - } - - private String fetchExt(Site site) { - String extend = OkHttp.string(site.getExt(), Json.toMap(site.getHeader())); - if (!extend.isEmpty()) site.setExt(extend); - return site.getExt(); + return (site.getExt().length() <= 1000 ? get : post).execute().body().string(); } private Result fetchPic(Site site, Result result) throws Exception { diff --git a/catvod/src/main/java/com/github/catvod/net/OkHttp.java b/catvod/src/main/java/com/github/catvod/net/OkHttp.java index 2117aff08..261cd3faa 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkHttp.java +++ b/catvod/src/main/java/com/github/catvod/net/OkHttp.java @@ -125,7 +125,7 @@ public class OkHttp { public static String string(String url, Map headers) { try { - return newCall(url, Headers.of(headers)).execute().body().string(); + return url.startsWith("http") ? newCall(url, Headers.of(headers)).execute().body().string() : ""; } catch (Exception e) { e.printStackTrace(); return "";