补齐爬虫jar嗅探扩展接口调用 & BugFix.

pull/1/head
DreamDSTR 4 years ago
parent 345b205667
commit 72a43055e5
  1. 6
      app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java
  2. 23
      app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java
  3. 3
      app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java
  4. 3
      app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java
  5. 5
      app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java
  6. 3
      app/src/main/java/com/github/tvbox/osc/ui/adapter/HomeHotVodAdapter.java
  7. 2
      app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.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))

@ -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.<String>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<String, String> webHeaders = new HashMap<>();

@ -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<VodCollect, BaseViewHolder>
//由于部分电视机使用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))

@ -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<Movie.Video, BaseViewHolder> {
//由于部分电视机使用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))

@ -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<VodInfo, BaseViewHolder> {
//由于部分电视机使用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))

@ -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<HomeHotVodAdapter.HotVod
//由于部分电视机使用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))

@ -130,7 +130,7 @@ public class OkGoHelper {
OkHttpClient okHttpClient = builder.build();
OkGo.getInstance().setOkHttpClient(okHttpClient);
OkGo.getInstance().setRetryCount(2);
initExoOkHttpClient();
}

Loading…
Cancel
Save