From 4b85b35d4bb7d85dcbad19bdeaee5c8e119ae11d Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 14 Feb 2023 19:05:15 +0800 Subject: [PATCH] More better filter --- .../leanback/res/layout/adapter_filter.xml | 2 +- .../android/tv/player/parse/ParseJob.java | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/leanback/res/layout/adapter_filter.xml b/app/src/leanback/res/layout/adapter_filter.xml index f259d26ea..9227ec84e 100644 --- a/app/src/leanback/res/layout/adapter_filter.xml +++ b/app/src/leanback/res/layout/adapter_filter.xml @@ -7,6 +7,6 @@ android:background="@drawable/selector_item_round" android:focusable="true" android:focusableInTouchMode="true" - android:textColor="@color/white" + android:textColor="@color/text" android:textSize="16sp" tools:text="全部" /> \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java index 5c3bf2c12..e73fb5541 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/parse/ParseJob.java @@ -1,7 +1,5 @@ package com.fongmi.android.tv.player.parse; -import android.text.TextUtils; - import com.fongmi.android.tv.App; import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.api.ApiConfig; @@ -140,8 +138,11 @@ public class ParseJob implements ParseCallback { } private void checkResult(Map headers, String url, String from, boolean error) { - if (!TextUtils.isEmpty(url)) onParseSuccess(headers, url, from); - else if (error) onParseError(); + if (isPass(headers, url)) { + onParseSuccess(headers, url, from); + } else if (error) { + onParseError(); + } } private void checkResult(Result result) { @@ -150,6 +151,18 @@ public class ParseJob implements ParseCallback { else onParseSuccess(result.getHeaders(), result.getUrl(), result.getJxFrom()); } + private boolean isPass(Map headers, String url) { + try { + Response response = OkHttp.newCall(url, Headers.of(headers)).execute(); + Map> respHeader = response.headers().toMultimap(); + if (response.code() != 200 || url.length() < 40) return false; + if (respHeader.containsKey("content-length") && Integer.parseInt(respHeader.get("content-length").get(0)) < 10 * 1024 * 1024) return false; + return true; + } catch (Exception e) { + return false; + } + } + private void startWeb(Parse item, String webUrl) { startWeb("", item, webUrl); }