diff --git a/app/src/main/java/com/github/catvod/ali/API.java b/app/src/main/java/com/github/catvod/ali/API.java index 8973e2f2..8ecae8d8 100644 --- a/app/src/main/java/com/github/catvod/ali/API.java +++ b/app/src/main/java/com/github/catvod/ali/API.java @@ -47,7 +47,6 @@ import okhttp3.Response; public class API { - private final Map quality; private ScheduledExecutorService service; private final List tempIds; private AlertDialog dialog; @@ -84,13 +83,6 @@ public class API { oauth = OAuth.objectFrom(FileUtil.read(getOAuthCache())); user = User.objectFrom(FileUtil.read(getUserCache())); drive = Drive.objectFrom(FileUtil.read(getDriveCache())); - quality = new HashMap<>(); - quality.put("4K", "UHD"); - quality.put("2k", "QHD"); - quality.put("超清", "FHD"); - quality.put("高清", "HD"); - quality.put("標清", "SD"); - quality.put("流暢", "LD"); } public void setRefreshToken(String token) { @@ -287,7 +279,7 @@ public class API { List files = new ArrayList<>(); List subs = new ArrayList<>(); listFiles(new Item(getParentFileId(fileId, object)), files, subs); - List playFrom = Arrays.asList("原畫", "超清", "高清"); + List playFrom = Arrays.asList("原畫", "普畫"); List episode = new ArrayList<>(); List playUrl = new ArrayList<>(); for (Item file : files) episode.add(file.getDisplayName() + "$" + file.getFileId() + findSubs(file.getName(), subs)); @@ -411,14 +403,15 @@ public class API { } } - public String playerContent(String[] ids) { - return Result.get().url(getDownloadUrl(ids[0])).octet().subs(getSubs(ids)).header(getHeader()).string(); + public String playerContent(String[] ids, boolean original) { + if (original) return Result.get().url(getDownloadUrl(ids[0])).octet().subs(getSubs(ids)).header(getHeader()).string(); + else return getPreviewContent(ids); } - public String playerContent(String[] ids, String flag) { + private String getPreviewContent(String[] ids) { try { JSONObject playInfo = getVideoPreviewPlayInfo(ids[0]); - String url = getPreviewUrl(playInfo, flag); + String url = getPreviewUrl(playInfo); List subs = getSubs(ids); subs.addAll(getSubs(playInfo)); return Result.get().url(url).m3u8().subs(subs).header(getHeader()).string(); @@ -428,13 +421,16 @@ public class API { } } - private String getPreviewUrl(JSONObject playInfo, String flag) throws Exception { + private String getPreviewUrl(JSONObject playInfo) throws Exception { if (!playInfo.has("live_transcoding_task_list")) return ""; JSONArray taskList = playInfo.getJSONArray("live_transcoding_task_list"); - for (int i = 0; i < taskList.length(); ++i) { - JSONObject task = taskList.getJSONObject(i); - if (task.getString("template_id").equals(quality.get(flag))) { - return task.getString("url"); + List templates = Arrays.asList("UHD", "QHD", "FHD", "HD", "SD", "LD"); + for (String template : templates) { + for (int i = 0; i < taskList.length(); ++i) { + JSONObject task = taskList.getJSONObject(i); + if (task.getString("template_id").equals(template)) { + return task.getString("url"); + } } } return taskList.getJSONObject(0).getString("url"); diff --git a/app/src/main/java/com/github/catvod/spider/Ali.java b/app/src/main/java/com/github/catvod/spider/Ali.java index ff3ee578..2741d036 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -36,8 +36,7 @@ public class Ali extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) { - String[] ids = id.split("\\+"); - return flag.equals("原畫") ? API.get().playerContent(ids) : API.get().playerContent(ids, flag); + return API.get().playerContent(id.split("\\+"), flag.equals("原畫")); } public static Object[] proxy(Map params) throws Exception { diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index ccf0d8ad..008ef9d6 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 0b79a7cc..611cf801 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -a33b78297d1b0ba9b7b4063550447ca0 +12d5373a579b207be00c71f70f97f1a0