diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java index 36132f9ca..8510ed425 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java @@ -10,6 +10,8 @@ import com.fongmi.android.tv.ui.custom.CustomWebView; import com.fongmi.android.tv.utils.Utils; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Json; +import com.github.catvod.utils.Util; +import com.google.common.net.HttpHeaders; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -179,7 +181,7 @@ public class ParseJob implements ParseCallback { private Map getHeader(JsonObject object) { Map headers = new HashMap<>(); - for (String key : object.keySet()) if (key.equalsIgnoreCase("user-agent") || key.equalsIgnoreCase("referer")) headers.put(key, object.get(key).getAsString()); + for (String key : object.keySet()) if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT) || key.equalsIgnoreCase(HttpHeaders.REFERER)) headers.put(Util.fix(key), object.get(key).getAsString()); return headers; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java index cad551984..a80497553 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java @@ -12,6 +12,7 @@ import com.fongmi.android.tv.player.Source; import com.forcetech.Util; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Github; +import com.google.common.net.HttpHeaders; import java.util.HashSet; @@ -40,7 +41,7 @@ public class Force implements Source.Extractor { String id = uri.getLastPathSegment(); String cmd = "http://127.0.0.1:" + port + "/cmd.xml?cmd=switch_chan&server=" + uri.getHost() + ":" + uri.getPort() + "&id=" + id; String result = "http://127.0.0.1:" + port + "/" + id; - OkHttp.newCall(cmd, Headers.of("user-agent", "MTV")).execute().body().string(); + OkHttp.newCall(cmd, Headers.of(HttpHeaders.USER_AGENT, "MTV")).execute().body().string(); return result; } 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 87396de32..f4fd84e38 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 @@ -21,6 +21,7 @@ import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.impl.ParseCallback; import com.fongmi.android.tv.utils.Sniffer; import com.github.catvod.crawler.Spider; +import com.google.common.net.HttpHeaders; import java.io.ByteArrayInputStream; import java.util.Map; @@ -58,7 +59,7 @@ public class CustomWebView extends WebView { private void setUserAgent(Map headers) { for (String key : headers.keySet()) { - if (key.equalsIgnoreCase("user-agent")) { + if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) { getSettings().setUserAgentString(headers.get(key)); break; } @@ -114,7 +115,7 @@ public class CustomWebView extends WebView { private void post(Map headers, String url) { String cookie = CookieManager.getInstance().getCookie(url); - if (cookie != null) headers.put("cookie", cookie); + if (cookie != null) headers.put(HttpHeaders.COOKIE, cookie); onParseSuccess(headers, url); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index 2fe363644..7aa0cd2e2 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -24,6 +24,7 @@ import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.github.catvod.utils.Json; +import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import com.google.gson.JsonParser; @@ -85,14 +86,7 @@ public class ImgUtil { private static void addHeader(LazyHeaders.Builder builder, String header) { Map map = Json.toMap(JsonParser.parseString(header)); - for (Map.Entry entry : map.entrySet()) builder.addHeader(replace(entry.getKey()), entry.getValue()); - } - - private static String replace(String key) { - if (key.equals("user-agent")) return HttpHeaders.USER_AGENT; - if (key.equals("referer")) return HttpHeaders.REFERER; - if (key.equals("cookie")) return HttpHeaders.COOKIE; - return key; + for (Map.Entry entry : map.entrySet()) builder.addHeader(Util.fix(entry.getKey()), entry.getValue()); } public static byte[] resize(byte[] bytes) { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/M3U8.java b/app/src/main/java/com/fongmi/android/tv/utils/M3U8.java index 82b7378c3..9be5dec64 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/M3U8.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/M3U8.java @@ -6,7 +6,6 @@ import com.github.catvod.net.OkHttp; import com.google.common.net.HttpHeaders; import java.util.Map; -import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -28,8 +27,7 @@ public class M3U8 { private static Headers getHeader(Map headers) { Headers.Builder builder = new Headers.Builder(); - if (headers.containsKey(HttpHeaders.USER_AGENT)) builder.add(HttpHeaders.USER_AGENT, Objects.requireNonNull(headers.get(HttpHeaders.USER_AGENT))); - if (headers.containsKey(HttpHeaders.REFERER)) builder.add(HttpHeaders.REFERER, Objects.requireNonNull(headers.get(HttpHeaders.REFERER))); + for (Map.Entry header : headers.entrySet()) if (header.getKey().equalsIgnoreCase(HttpHeaders.USER_AGENT) || header.getKey().equalsIgnoreCase(HttpHeaders.REFERER)) builder.add(header.getKey(), header.getValue()); return builder.build(); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index c4cadda35..2263f457e 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -96,7 +96,8 @@ public class Utils { } public static Map checkUa(Map headers) { - if (Setting.getUa().isEmpty() || headers.containsKey(HttpHeaders.USER_AGENT) || headers.containsKey(HttpHeaders.USER_AGENT.toLowerCase())) return headers; + if (Setting.getUa().isEmpty()) return headers; + for (Map.Entry header : headers.entrySet()) if (header.getKey().equalsIgnoreCase(HttpHeaders.USER_AGENT)) return headers; headers.put(HttpHeaders.USER_AGENT, Setting.getUa()); return headers; } diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index b2ce87746..e9ab3c1e1 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -7,6 +7,7 @@ import android.text.TextUtils; import android.util.Base64; import com.github.catvod.Init; +import com.google.common.net.HttpHeaders; import java.io.File; import java.io.FileInputStream; @@ -116,6 +117,13 @@ public class Util { } } + public static String fix(String key) { + if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) return HttpHeaders.USER_AGENT; + if (key.equalsIgnoreCase(HttpHeaders.REFERER)) return HttpHeaders.REFERER; + if (key.equalsIgnoreCase(HttpHeaders.COOKIE)) return HttpHeaders.COOKIE; + return key; + } + public static String size(long size) { if (size <= 0) return ""; int group = (int) (Math.log10(size) / Math.log10(1024)); diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/Module.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/Module.java index a6a72694b..c129d0b5b 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/Module.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/utils/Module.java @@ -4,6 +4,7 @@ import android.net.Uri; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; +import com.google.common.net.HttpHeaders; import java.io.File; import java.nio.charset.StandardCharsets; @@ -40,7 +41,7 @@ public class Module { Uri uri = Uri.parse(url); File file = Path.js(uri.getLastPathSegment()); if (file.exists()) return Path.read(file); - Response response = OkHttp.newCall(url, Headers.of("User-Agent", "Mozilla/5.0")).execute(); + Response response = OkHttp.newCall(url, Headers.of(HttpHeaders.USER_AGENT, "Mozilla/5.0")).execute(); if (response.code() != 200) return ""; byte[] data = response.body().bytes(); boolean cache = !"127.0.0.1".equals(uri.getHost());