package com.github.catvod.spider; import android.content.Context; import com.github.catvod.ali.API; import com.github.catvod.bean.Result; import com.github.catvod.crawler.Spider; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author ColaMint & Adam & FongMi */ public class Ali extends Spider { public static final Pattern pattern = Pattern.compile("www.aliyundrive.com/s/([^/]+)(/folder/([^/]+))?"); @Override public void init(Context context, String extend) { API.get().setRefreshToken(extend); } @Override public String detailContent(List ids) throws Exception { String url = ids.get(0).trim(); Matcher matcher = pattern.matcher(url); if (!matcher.find()) return ""; String shareId = matcher.group(1); String fileId = matcher.groupCount() == 3 ? matcher.group(3) : ""; API.get().setShareId(shareId); return Result.string(API.get().getVod(url, fileId)); } @Override public String playerContent(String flag, String id, List vipFlags) { API.get().checkAccessToken(); String[] ids = id.split("\\+"); String url = flag.equals("原畫") ? API.get().getDownloadUrl(ids[0]) : API.get().getPreviewUrl(ids[0], flag); return Result.get().url(url).subs(API.get().getSub(ids)).header(API.get().getHeader()).parse(0).string(); } public static Object[] vod(Map params) { String type = params.get("type"); if (type.equals("sub")) return API.get().proxySub(params); return null; } }