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 b35be04..392da8f 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 @@ -1,5 +1,6 @@ package com.github.catvod.bean.alist; +import android.net.Uri; import android.text.TextUtils; import com.github.catvod.bean.Class; @@ -24,6 +25,8 @@ public class Drive { private String password; @SerializedName("version") private int version; + @SerializedName("path") + private String path; public static Drive objectFrom(String str) { return new Gson().fromJson(str, Drive.class); @@ -57,6 +60,14 @@ public class Drive { this.version = version; } + public String getPath() { + return TextUtils.isEmpty(path) ? "" : path; + } + + public void setPath(String path) { + this.path = TextUtils.isEmpty(path) ? "" : path; + } + public boolean isNew() { return getVersion() == 3; } @@ -65,24 +76,29 @@ public class Drive { return new Class(getName(), getName(), "1"); } + public String getHost() { + return getServer().replace(getPath(), ""); + } + public String settingsApi() { - return getServer() + "/api/public/settings"; + return getHost() + "/api/public/settings"; } public String listApi() { - return getServer() + (isNew() ? "/api/fs/list" : "/api/public/path"); + return getHost() + (isNew() ? "/api/fs/list" : "/api/public/path"); } public String getApi() { - return getServer() + (isNew() ? "/api/fs/get" : "/api/public/path"); + return getHost() + (isNew() ? "/api/fs/get" : "/api/public/path"); } public String searchApi() { - return getServer() + (isNew() ? "/api/fs/search" : "/api/public/search"); + return getHost() + (isNew() ? "/api/fs/search" : "/api/public/search"); } public Drive check() { - if (getVersion() == 0) setVersion(OkHttp.string(settingsApi()).contains("v2.") ? 2 : 3); + if (path == null) setPath(Uri.parse(getServer()).getPath()); + if (version == 0) setVersion(OkHttp.string(settingsApi()).contains("v2.") ? 2 : 3); return this; } 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 60af51f..402349f 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -13,8 +13,8 @@ import com.github.catvod.bean.alist.Item; import com.github.catvod.bean.alist.Sorter; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; +import com.github.catvod.utils.Utils; import org.json.JSONObject; @@ -136,7 +136,7 @@ public class AList extends Spider { String path = id.contains("/") ? id.substring(id.indexOf("/")) : ""; Drive drive = getDrive(key); JSONObject params = new JSONObject(); - params.put("path", path); + params.put("path", drive.getPath() + path); params.put("password", drive.getPassword()); String response = OkHttp.postJson(drive.getApi(), params.toString()); return Item.objectFrom(getDetailJson(drive.isNew(), response)); @@ -151,7 +151,7 @@ public class AList extends Spider { String path = id.contains("/") ? id.substring(id.indexOf("/")) : ""; Drive drive = getDrive(key); JSONObject params = new JSONObject(); - params.put("path", path); + params.put("path", drive.getPath() + path); params.put("password", drive.getPassword()); String response = OkHttp.postJson(drive.listApi(), params.toString()); List items = Item.arrayFrom(getListJson(drive.isNew(), response)); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 75381a8..8e096f6 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 703ae18..33473c9 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -13c054ce951b3560b9495b2ed5983074 +3473c6feb44308efdb18ef8ea90ed6eb