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 8684195..3835688 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -16,8 +16,8 @@ import org.json.JSONObject; import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -54,11 +54,13 @@ public class Ali { } private String post(String url, JSONObject body) { - return OkHttpUtil.postJson("https://api.aliyundrive.com/" + url, body.toString(), getHeaders()); + url = url.startsWith("https") ? url : "https://api.aliyundrive.com/" + url; + return OkHttpUtil.postJson(url, body.toString(), getHeaders()); } private static String post(String url, JSONObject body, String shareToken) { - return OkHttpUtil.postJson("https://api.aliyundrive.com/" + url, body.toString(), getHeaders(shareToken)); + url = url.startsWith("https") ? url : "https://api.aliyundrive.com/" + url; + return OkHttpUtil.postJson(url, body.toString(), getHeaders(shareToken)); } public String detailContent(List ids) throws Exception { @@ -91,12 +93,11 @@ public class Ali { body.put("share_id", shareId); String json = post("adrive/v3/share_link/get_share_by_anonymous", body); JSONObject object = new JSONObject(json); - Map name2id = new HashMap<>(); + LinkedHashMap name2id = new LinkedHashMap<>(); Map> subMap = new HashMap<>(); listFiles(new Item(getParentFileId(fileId, object)), name2id, subMap, shareId, shareToken); List playUrls = new ArrayList<>(); List names = new ArrayList<>(name2id.keySet()); - Collections.sort(names); for (String name : names) playUrls.add(Trans.get(name) + "$" + name2id.get(name) + findSubs(name, subMap)); List sourceUrls = new ArrayList<>(); sourceUrls.add(TextUtils.join("#", playUrls)); @@ -112,17 +113,12 @@ public class Ali { return vod; } - private void listFiles(Item folder, Map name2id, Map> subMap, String shareId, String shareToken) throws Exception { + private void listFiles(Item folder, LinkedHashMap name2id, Map> subMap, String shareId, String shareToken) throws Exception { JSONObject body = new JSONObject(); - body.put("marker", ""); - body.put("limit", 200); body.put("share_id", shareId); body.put("parent_file_id", folder.getId()); - body.put("order_by", "updated_at"); - body.put("order_direction", "DESC"); - body.put("image_url_process", "image/resize,w_1920/format,jpeg"); - body.put("image_thumbnail_process", "image/resize,w_160/format,jpeg"); - body.put("video_thumbnail_process", "video/snapshot,t_1000,f_jpg,ar_auto,w_300"); + body.put("order_by", "name"); + body.put("order_direction", "ASC"); String json = post("adrive/v3/file/list", body, shareToken); JSONArray items = new JSONObject(json).getJSONArray("items"); for (int j = 0; j < items.length(); ++j) { @@ -162,7 +158,8 @@ public class Ali { try { JSONObject body = new JSONObject(); body.put("refresh_token", refreshToken); - JSONObject object = new JSONObject(post("token/refresh", body)); + body.put("grant_type", "refresh_token"); + JSONObject object = new JSONObject(post("https://auth.aliyundrive.com/v2/account/token", body)); accessToken = object.getString("token_type") + " " + object.getString("access_token"); } catch (JSONException e) { Init.show("Token 已失效"); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 60adc19..8f4b3bd 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 e98feb5..d0420d0 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -386bb130dd0ff7c26addc113ce7e5434 +df0dabb326716ff4fcf608d067a8dd6f