package com.github.catvod.spider; import android.content.Context; import android.net.Uri; import android.text.TextUtils; import com.github.catvod.bean.Result; import com.github.catvod.bean.Sub; import com.github.catvod.bean.Vod; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Utils; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; public class Push extends Ali { @Override public void init(Context context, String extend) { super.init(context, extend); } @Override public String detailContent(List ids) throws Exception { String url = ids.get(0).trim(); if (url.contains("aliyundrive")) return super.detailContent(ids); return Result.string(vod(url)); } @Override public String playerContent(String flag, String id, List vipFlags) { if (id.contains("youtube.com")) return Result.get().url(Youtube.fetch(id)).string(); if (flag.equals("直連")) return Result.get().url(id).subs(getSubs(id)).string(); if (flag.equals("嗅探")) return Result.get().parse().url(id).string(); if (flag.equals("解析")) return Result.get().parse().jx().url(id).string(); return super.playerContent(flag, id, vipFlags); } private Vod vod(String url) { Vod vod = new Vod(); vod.setVodId(url); vod.setTypeName("FongMi"); vod.setVodName(url.startsWith("file://") ? new File(url).getName() : url); vod.setVodPic("https://pic.rmb.bdstatic.com/bjh/1d0b02d0f57f0a42201f92caba5107ed.jpeg"); vod.setVodPlayFrom(TextUtils.join("$$$", Arrays.asList("直連", "嗅探", "解析"))); vod.setVodPlayUrl(TextUtils.join("$$$", Arrays.asList("播放$" + url, "播放$" + url, "播放$" + url))); return vod; } private List getSubs(String url) { List subs = new ArrayList<>(); if (url.startsWith("file://")) setFileSub(url, subs); if (url.startsWith("http://")) setHttpSub(url, subs); return subs; } private void setHttpSub(String url, List subs) { try { String ext = url.substring(url.lastIndexOf(".") + 1); if (!ext.equals("mp4") && !ext.equals("mkv")) return; String srt = Utils.removeExt(url).concat(".srt"); String ass = Utils.removeExt(url).concat(".ass"); if (OkHttp.newCall(srt).code() == 200) subs.add(Sub.create().name(Uri.parse(srt).getLastPathSegment()).ext("srt").url(srt)); if (OkHttp.newCall(ass).code() == 200) subs.add(Sub.create().name(Uri.parse(ass).getLastPathSegment()).ext("ass").url(ass)); } catch (Exception e) { e.printStackTrace(); } } private void setFileSub(String url, List subs) { File file = new File(url.replace("file://", "")); if (file.getParentFile() == null) return; for (File f : Objects.requireNonNull(file.getParentFile().listFiles())) { String ext = Utils.getExt(f.getName()); if (Utils.isSub(ext)) subs.add(Sub.create().name(Utils.removeExt(f.getName())).ext(ext).url("file://" + f.getAbsolutePath())); } } }