diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java new file mode 100644 index 000000000..c9df19c1e --- /dev/null +++ b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java @@ -0,0 +1,13 @@ +package com.fongmi.android.tv.utils; + +import java.util.regex.Pattern; + +public class Sniffer { + + public static final Pattern RULE = Pattern.compile( + "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)\\?.*|" + + "http((?!http).)*?cdn-tos[^?]*|" + + "http((?!http).)*?/obj/tos[^?]*|" + + "http((?!http).)*?/video/tos/cn[^?]*" + ); +} 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 e98b6de4d..b25eaa955 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 @@ -19,13 +19,9 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; -import java.util.regex.Pattern; public class Utils { - private static final Pattern SNIFFER = Pattern.compile("http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)|http((?!http).){12,}?\\/m3u8\\?pt=m3u8.*|http((?!http).)*?default\\.ixigua\\.com\\/.*|http((?!http).)*?cdn-tos[^\\?]*|http((?!http).)*?\\/obj\\/tos[^\\?]*|http.*?\\/player\\/m3u8play\\.php\\?url=.*|http.*?\\/player\\/.*?[pP]lay\\.php\\?url=.*|http.*?\\/playlist\\/m3u8\\/\\?vid=.*|http.*?\\.php\\?type=m3u8&.*|http.*?\\/download.aspx\\?.*|http.*?\\/api\\/up_api.php\\?.*|https.*?\\.66yk\\.cn.*|http((?!http).)*?netease\\.com\\/file\\/.*"); - public static boolean isEnterKey(KeyEvent event) { return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER || event.getKeyCode() == KeyEvent.KEYCODE_ENTER || event.getKeyCode() == KeyEvent.KEYCODE_SPACE || event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_ENTER; } @@ -60,10 +56,9 @@ public class Utils { } public static boolean isVideoFormat(String url, Map headers) { - if (headers.containsKey("Range")) return true; - if (headers.containsKey("Accept") && Objects.requireNonNull(headers.get("Accept")).contains("image")) return false; + if (headers.containsKey("Accept") && headers.get("Accept").contains("image")) return false; if (url.contains(".js") || url.contains(".css")) return false; - return SNIFFER.matcher(url).find(); + return Sniffer.RULE.matcher(url).find(); } public static boolean isVip(String url) {