diff --git a/app/src/main/java/com/github/catvod/bean/alist/Drive.java b/app/src/main/java/com/github/catvod/bean/alist/Drive.java index cdcdb4c4..06f402b8 100644 --- a/app/src/main/java/com/github/catvod/bean/alist/Drive.java +++ b/app/src/main/java/com/github/catvod/bean/alist/Drive.java @@ -20,7 +20,7 @@ public class Drive { @SerializedName("drives") private List drives; @SerializedName("params") - private Map params; + private List params; @SerializedName("login") private Login login; @SerializedName("vodPic") @@ -44,8 +44,8 @@ public class Drive { return drives == null ? new ArrayList<>() : drives; } - public Map getParams() { - return params == null ? new HashMap<>() : params; + public List getParams() { + return params == null ? new ArrayList<>() : params; } public Login getLogin() { @@ -153,6 +153,11 @@ public class Drive { return headers; } + public String findPass(String path) { + for (Param param : getParams()) if (path.startsWith(param.getPath())) return param.getPass(); + return ""; + } + @Override public boolean equals(Object obj) { if (this == obj) return true; diff --git a/app/src/main/java/com/github/catvod/bean/alist/Param.java b/app/src/main/java/com/github/catvod/bean/alist/Param.java new file mode 100644 index 00000000..9caafd21 --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/alist/Param.java @@ -0,0 +1,21 @@ +package com.github.catvod.bean.alist; + +import android.text.TextUtils; + +import com.google.gson.annotations.SerializedName; + +public class Param { + + @SerializedName("path") + private String path; + @SerializedName("pass") + private String pass; + + public String getPath() { + return TextUtils.isEmpty(path) ? "" : path; + } + + public String getPass() { + return TextUtils.isEmpty(pass) ? "" : pass; + } +} diff --git a/app/src/main/java/com/github/catvod/spider/AList.java b/app/src/main/java/com/github/catvod/spider/AList.java index cbbd73af..3898e923 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -166,7 +166,7 @@ public class AList extends Spider { path = path.startsWith(drive.getPath()) ? path : drive.getPath() + path; JSONObject params = new JSONObject(); params.put("path", path); - params.put("password", drive.getParams().get(path)); + params.put("password", drive.findPass(path)); String response = post(drive, drive.getApi(), params.toString()); return Item.objectFrom(getDetailJson(drive.isNew(), response)); } catch (Exception e) { @@ -182,7 +182,7 @@ public class AList extends Spider { path = path.startsWith(drive.getPath()) ? path : drive.getPath() + path; JSONObject params = new JSONObject(); params.put("path", path); - params.put("password", drive.getParams().get(path)); + params.put("password", drive.findPass(path)); String response = post(drive, drive.listApi(), params.toString()); List items = Item.arrayFrom(getListJson(drive.isNew(), response)); Iterator iterator = items.iterator(); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 2ddcb8b0..fa86b11d 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 f95986e8..123c3b0c 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -9eeae00749e17517c5041546a98418cd +4556ab64060bfdf40d0e6dcc0145862e