diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 348368ee..ccb642b8 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -27,7 +27,9 @@ import com.github.tvbox.osc.picasso.RoundTransformation; import com.github.tvbox.osc.ui.adapter.SeriesAdapter; import com.github.tvbox.osc.ui.adapter.SeriesFlagAdapter; import com.github.tvbox.osc.ui.dialog.QuickSearchDialog; +import com.github.tvbox.osc.util.DefaultConfig; import com.github.tvbox.osc.util.FastClickCheckUtil; +import com.github.tvbox.osc.util.MD5; import com.github.tvbox.osc.viewmodel.SourceViewModel; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -302,8 +304,8 @@ public class DetailActivity extends BaseActivity { setTextShow(tvDes, "内容简介:", removeHtmlTag(mVideo.des)); if (!TextUtils.isEmpty(mVideo.pic)) { Picasso.get() - .load(mVideo.pic) - .transform(new RoundTransformation(mVideo.pic) + .load(DefaultConfig.checkReplaceProxy(mVideo.pic)) + .transform(new RoundTransformation(MD5.string2MD5(mVideo.pic + mVideo.name)) .centerCorp(true) .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) .roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL)) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index 7c4ef77b..d78f00c5 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -32,10 +32,12 @@ import androidx.annotation.Nullable; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.github.catvod.crawler.Spider; import com.github.tvbox.osc.R; import com.github.tvbox.osc.api.ApiConfig; import com.github.tvbox.osc.base.BaseActivity; import com.github.tvbox.osc.bean.ParseBean; +import com.github.tvbox.osc.bean.SourceBean; import com.github.tvbox.osc.bean.VodInfo; import com.github.tvbox.osc.cache.CacheManager; import com.github.tvbox.osc.event.RefreshEvent; @@ -284,6 +286,7 @@ public class PlayActivity extends BaseActivity { Bundle bundle = intent.getExtras(); mVodInfo = (VodInfo) bundle.getSerializable("VodInfo"); sourceKey = bundle.getString("sourceKey"); + sourceBean = ApiConfig.get().getSource(sourceKey); initPlayerCfg(); play(); } @@ -372,6 +375,7 @@ public class PlayActivity extends BaseActivity { private VodInfo mVodInfo; private JSONObject mVodPlayerCfg; private String sourceKey; + private SourceBean sourceBean; private void playNext() { boolean hasNext = true; @@ -510,7 +514,7 @@ public class PlayActivity extends BaseActivity { if (pb.getType() == 0) { setTip("正在嗅探播放地址", true, false); mHandler.removeMessages(100); - mHandler.sendEmptyMessageDelayed(100, 15 * 1000); + mHandler.sendEmptyMessageDelayed(100, 20 * 1000); loadWebView(pb.getUrl() + webUrl); } else if (pb.getType() == 1) { // json 解析 setTip("正在解析播放地址", true, false); @@ -526,7 +530,7 @@ public class PlayActivity extends BaseActivity { reqHeaders.put(key, headerJson.optString(key, "")); } } - } catch (JSONException e) { + } catch (Throwable e) { e.printStackTrace(); } OkGo.get(pb.getUrl() + webUrl) @@ -564,7 +568,7 @@ public class PlayActivity extends BaseActivity { } } playUrl(rs.getString("url"), headers); - } catch (JSONException e) { + } catch (Throwable e) { e.printStackTrace(); errorWithRetry("解析错误", false); } @@ -779,6 +783,15 @@ public class PlayActivity extends BaseActivity { }); } + boolean checkVideoFormat(String url) { + if (sourceBean.getType() == 3) { + Spider sp = ApiConfig.get().getCSP(sourceBean); + if (sp != null && sp.manualVideoCheck()) + return sp.isVideoFormat(url); + } + return DefaultConfig.isVideoFormat(url); + } + class MyWebView extends WebView { public MyWebView(@NonNull Context context) { super(context); @@ -900,7 +913,7 @@ public class PlayActivity extends BaseActivity { } if (!ad && !loadFound) { - if (DefaultConfig.isVideoFormat(url)) { + if (checkVideoFormat(url)) { mHandler.removeMessages(100); loadFound = true; if (headers != null && !headers.isEmpty()) { @@ -1056,7 +1069,7 @@ public class PlayActivity extends BaseActivity { ad = loadedUrls.get(url); } if (!ad && !loadFound) { - if (DefaultConfig.isVideoFormat(url)) { + if (checkVideoFormat(url)) { mHandler.removeMessages(100); loadFound = true; HashMap webHeaders = new HashMap<>(); diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java index d8990e5f..33ccd51d 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java @@ -8,6 +8,7 @@ import com.chad.library.adapter.base.BaseViewHolder; import com.github.tvbox.osc.R; import com.github.tvbox.osc.cache.VodCollect; import com.github.tvbox.osc.picasso.RoundTransformation; +import com.github.tvbox.osc.util.DefaultConfig; import com.github.tvbox.osc.util.MD5; import com.squareup.picasso.Picasso; @@ -31,7 +32,7 @@ public class CollectAdapter extends BaseQuickAdapter //由于部分电视机使用glide报错 if (!TextUtils.isEmpty(item.pic)) { Picasso.get() - .load(item.pic) + .load(DefaultConfig.checkReplaceProxy(item.pic)) .transform(new RoundTransformation(MD5.string2MD5(item.pic + item.name)) .centerCorp(true) .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java index cda4b804..317a9e9e 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java @@ -10,6 +10,7 @@ import com.chad.library.adapter.base.BaseViewHolder; import com.github.tvbox.osc.R; import com.github.tvbox.osc.bean.Movie; import com.github.tvbox.osc.picasso.RoundTransformation; +import com.github.tvbox.osc.util.DefaultConfig; import com.github.tvbox.osc.util.MD5; import com.squareup.picasso.Picasso; @@ -64,7 +65,7 @@ public class GridAdapter extends BaseQuickAdapter { //由于部分电视机使用glide报错 if (!TextUtils.isEmpty(item.pic)) { Picasso.get() - .load(item.pic) + .load(DefaultConfig.checkReplaceProxy(item.pic)) .transform(new RoundTransformation(MD5.string2MD5(item.pic + "position=" + helper.getLayoutPosition())) .centerCorp(true) .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java index 817896c6..869dffec 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java @@ -10,6 +10,7 @@ import com.github.tvbox.osc.R; import com.github.tvbox.osc.api.ApiConfig; import com.github.tvbox.osc.bean.VodInfo; import com.github.tvbox.osc.picasso.RoundTransformation; +import com.github.tvbox.osc.util.DefaultConfig; import com.github.tvbox.osc.util.MD5; import com.squareup.picasso.Picasso; @@ -68,8 +69,8 @@ public class HistoryAdapter extends BaseQuickAdapter { //由于部分电视机使用glide报错 if (!TextUtils.isEmpty(item.pic)) { Picasso.get() - .load(item.pic) - .transform(new RoundTransformation(MD5.string2MD5(item.pic + item.note)) + .load(DefaultConfig.checkReplaceProxy(item.pic)) + .transform(new RoundTransformation(MD5.string2MD5(item.pic + item.name)) .centerCorp(true) .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) .roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL)) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/HomeHotVodAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/HomeHotVodAdapter.java index 88f9633d..fa04f3b9 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/HomeHotVodAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/HomeHotVodAdapter.java @@ -9,6 +9,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.github.tvbox.osc.R; import com.github.tvbox.osc.picasso.RoundTransformation; +import com.github.tvbox.osc.util.DefaultConfig; import com.github.tvbox.osc.util.MD5; import com.squareup.picasso.Picasso; @@ -50,7 +51,7 @@ public class HomeHotVodAdapter extends BaseQuickAdapter