From 1914bbffc2fec7b6f7ce6e6330cf3c5c08b2491f Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 15:33:13 +0800 Subject: [PATCH 1/6] Set cookie for webview --- .../android/tv/ui/custom/CustomWebView.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index e6d050a4e..490914456 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -69,6 +69,7 @@ public class CustomWebView extends WebView { getSettings().setBuiltInZoomControls(true); getSettings().setDisplayZoomControls(false); getSettings().setLoadWithOverviewMode(true); + getSettings().setUserAgentString(Setting.getUa()); getSettings().setMediaPlaybackRequiresUserGesture(false); getSettings().setJavaScriptCanOpenWindowsAutomatically(false); getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); @@ -76,29 +77,29 @@ public class CustomWebView extends WebView { setWebViewClient(webViewClient()); } - private void setUserAgent(Map headers) { - if (headers.isEmpty()) { - getSettings().setUserAgentString(Setting.getUa()); - } else for (String key : headers.keySet()) { - if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) { - getSettings().setUserAgentString(headers.get(key)); - break; - } - } - } - public CustomWebView start(String key, String from, Map headers, String url, String click, ParseCallback callback, boolean detect) { App.post(timer, Constant.TIMEOUT_PARSE_WEB); this.callback = callback; - setUserAgent(headers); - loadUrl(url, headers); this.detect = detect; this.click = click; this.from = from; this.key = key; + start(url, headers); return this; } + private void start(String url, Map headers) { + checkHeader(url, headers); + loadUrl(url, headers); + } + + private void checkHeader(String url, Map headers) { + for (String key : headers.keySet()) { + if (key.equalsIgnoreCase(HttpHeaders.COOKIE)) CookieManager.getInstance().setCookie(url, headers.get(key)); + if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) getSettings().setUserAgentString(headers.get(key)); + } + } + private WebViewClient webViewClient() { return new WebViewClient() { @Override From 89d110cc04cc539d84f116f005f371e1234bcf41 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 15:49:07 +0800 Subject: [PATCH 2/6] Clean code --- catvod/src/main/java/com/github/catvod/utils/Shell.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/catvod/src/main/java/com/github/catvod/utils/Shell.java b/catvod/src/main/java/com/github/catvod/utils/Shell.java index 9563e9c11..6b4b4dcc4 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Shell.java +++ b/catvod/src/main/java/com/github/catvod/utils/Shell.java @@ -1,11 +1,13 @@ package com.github.catvod.utils; +import com.orhanobut.logger.Logger; + public class Shell { public static void exec(String command) { try { int code = Runtime.getRuntime().exec(command).waitFor(); - if (code != 0) throw new RuntimeException("Shell command failed with exit code " + code); + if (code != 0) Logger.e("Shell command failed with exit code " + code); } catch (Exception e) { e.printStackTrace(); } From dc40bda71430135a9bdd313580938f8f10f3c1ce Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 15:52:07 +0800 Subject: [PATCH 3/6] Update Shell.java --- catvod/src/main/java/com/github/catvod/utils/Shell.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/catvod/src/main/java/com/github/catvod/utils/Shell.java b/catvod/src/main/java/com/github/catvod/utils/Shell.java index 6b4b4dcc4..6fde6a3e4 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Shell.java +++ b/catvod/src/main/java/com/github/catvod/utils/Shell.java @@ -4,10 +4,12 @@ import com.orhanobut.logger.Logger; public class Shell { + private static final String TAG = Shell.class.getSimpleName(); + public static void exec(String command) { try { int code = Runtime.getRuntime().exec(command).waitFor(); - if (code != 0) Logger.e("Shell command failed with exit code " + code); + if (code != 0) Logger.t(TAG).d("Shell command '%s' failed with exit code '%s'", command, code); } catch (Exception e) { e.printStackTrace(); } From 842d2030e710ae9ee966175c8153f5e1bd3fcfd3 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 16:17:09 +0800 Subject: [PATCH 4/6] Update part api --- .../android/tv/ui/activity/VideoActivity.java | 2 +- .../java/com/fongmi/android/tv/bean/Part.java | 42 ++++++++++++------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index a64f747b6..e069945d0 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1153,7 +1153,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void getPart(String source) { - OkHttp.newCall("http://api.pullword.com/get.php?source=" + URLEncoder.encode(source.trim()) + "¶m1=0¶m2=0&json=1").enqueue(new Callback() { + OkHttp.newCall("https://api.yesapi.cn/?service=App.Scws.GetWords&app_key=CEE4B8A091578B252AC4C92FB4E893C3&text=" + URLEncoder.encode(source.trim())).enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { List items = Part.get(response.body().string()); diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Part.java b/app/src/main/java/com/fongmi/android/tv/bean/Part.java index d5142246e..1cc15c384 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Part.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Part.java @@ -4,34 +4,48 @@ import android.text.TextUtils; import com.fongmi.android.tv.App; import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class Part { - @SerializedName("t") - private String t; + @SerializedName("data") + private Data data; - private static List arrayFrom(String str) { - try { - Type listType = new TypeToken>() {}.getType(); - return App.gson().fromJson(str, listType); - } catch (Exception e) { - return new ArrayList<>(); - } + public static Part objectFrom(String str) { + return App.gson().fromJson(str, Part.class); } public static List get(String str) { List items = new ArrayList<>(); if (TextUtils.isEmpty(str)) return items; - for (Part item : arrayFrom(str)) items.add(item.getT()); + for (Data.Word word : objectFrom(str).getData().getWords()) items.add(word.getWord()); return items; } - public String getT() { - return TextUtils.isEmpty(t) ? "" : t; + public Data getData() { + return data == null ? new Data() : data; + } + + public static class Data { + + @SerializedName("words") + private List words; + + public List getWords() { + return words == null ? Collections.emptyList() : words; + } + + public static class Word { + + @SerializedName("word") + private String word; + + public String getWord() { + return TextUtils.isEmpty(word) ? "" : word; + } + } } } From c531d7db520db6e4915044d29e97cc0436ce2904 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 23:59:09 +0800 Subject: [PATCH 5/6] Fix live boot bug --- .../main/java/com/fongmi/android/tv/api/config/VodConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index 6e710a347..7c8efd7b3 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -249,6 +249,7 @@ public class VodConfig { } public void setRecent(String jar) { + if (jarLoader == null) jarLoader = new JarLoader(); jarLoader.parseJar(Util.md5(jar), jar); jarLoader.setRecent(jar); } From ee3beb611eb11b6c391487738050b7441dcdfd35 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 22 Feb 2024 09:25:35 +0800 Subject: [PATCH 6/6] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9302f3f2a..3349cbdff 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ https://github.com/CatVodTVOfficial/CatVodTVJarLoader |------------|------|------|------------------| | searchable | 1 | 是否搜索 | 0:關閉;1:啟用 | | changeable | 1 | 是否換源 | 0:關閉;1:啟用 | -| recordable | 1 | 是否紀錄 | 0:關閉;1:啟用 | | playerType | none | 播放器 | 0:系統;1:IJK;2:EXO | | timeout | 15 | 播放超時 | 單位:秒 | | header | none | 請求標頭 | 格式:json |