pull/362/head
FongMi 2 years ago
parent c5f3634fa6
commit 1373b5323c
  1. 8
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  2. 16
      app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java

@ -109,7 +109,7 @@ public class CustomWebView extends WebView {
if (TextUtils.isEmpty(host) || VodConfig.get().getAds().contains(host)) return empty;
if (url.contains("challenges.cloudflare.com/cdn-cgi")) App.post(() -> showDialog());
if (detect && url.contains("player/?url=")) onParseAdd(headers, url);
else if (isVideoFormat(headers, url)) interrupt(headers, url);
else if (isVideoFormat(url)) interrupt(headers, url);
return super.shouldInterceptRequest(view, request);
}
@ -166,15 +166,15 @@ public class CustomWebView extends WebView {
}
}
private boolean isVideoFormat(Map<String, String> headers, String url) {
private boolean isVideoFormat(String url) {
try {
Logger.t(TAG).d(url);
Site site = VodConfig.get().getSite(key);
Spider spider = VodConfig.get().getSpider(site);
if (spider.manualVideoCheck()) return spider.isVideoFormat(url);
return Sniffer.isVideoFormat(url, headers);
return Sniffer.isVideoFormat(url);
} catch (Exception ignored) {
return Sniffer.isVideoFormat(url, headers);
return Sniffer.isVideoFormat(url);
}
}

@ -9,9 +9,7 @@ import com.github.catvod.utils.Json;
import com.github.catvod.utils.Util;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -39,23 +37,13 @@ public class Sniffer {
}
public static boolean isVideoFormat(String url) {
return isVideoFormat(url, new HashMap<>());
}
public static boolean isVideoFormat(String url, Map<String, String> headers) {
if (containOrMatch(url)) return true;
if (headers.containsKey("Accept") && headers.get("Accept").startsWith("image")) return false;
if (url.contains("url=http") || url.contains("v=http") || url.contains(".css") || url.contains(".html")) return false;
return SNIFFER.matcher(url).find();
}
private static boolean containOrMatch(String url) {
Rule rule = getRule(UrlUtil.uri(url));
for (String exclude : rule.getExclude()) if (url.contains(exclude)) return false;
for (String exclude : rule.getExclude()) if (Pattern.compile(exclude).matcher(url).find()) return false;
for (String regex : rule.getRegex()) if (url.contains(regex)) return true;
for (String regex : rule.getRegex()) if (Pattern.compile(regex).matcher(url).find()) return true;
return false;
if (url.contains("url=http") || url.contains("v=http") || url.contains(".css") || url.contains(".html")) return false;
return SNIFFER.matcher(url).find();
}
public static Rule getRule(Uri uri) {

Loading…
Cancel
Save