diff --git a/app/src/main/java/com/github/catvod/bean/webdav/Drive.java b/app/src/main/java/com/github/catvod/bean/webdav/Drive.java index 8da1a4c6..edac8059 100644 --- a/app/src/main/java/com/github/catvod/bean/webdav/Drive.java +++ b/app/src/main/java/com/github/catvod/bean/webdav/Drive.java @@ -79,6 +79,7 @@ public class Drive { } public Sardine getWebdav() { + if (webdav == null) init(); return webdav; } @@ -86,11 +87,10 @@ public class Drive { return new Class(getName(), getName(), "1"); } - public Drive init() { + private void init() { webdav = new OkHttpSardine(); webdav.setCredentials(getUser(), getPass()); setPath(Uri.parse(getServer()).getPath()); - return this; } public Vod vod(DavResource item, String vodPic) { diff --git a/app/src/main/java/com/github/catvod/spider/WebDAV.java b/app/src/main/java/com/github/catvod/spider/WebDAV.java index 2516d040..9bb0805d 100644 --- a/app/src/main/java/com/github/catvod/spider/WebDAV.java +++ b/app/src/main/java/com/github/catvod/spider/WebDAV.java @@ -73,7 +73,7 @@ public class WebDAV extends Spider { fetchRule(); List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - for (Drive drive : drives) classes.add(drive.init().toType()); + for (Drive drive : drives) classes.add(drive.toType()); for (Class item : classes) filters.put(item.getTypeId(), getFilter()); return Result.string(classes, filters); } @@ -130,8 +130,7 @@ public class WebDAV extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) throws Exception { String[] ids = id.split("~~~"); - String key = ids[0].contains("/") ? ids[0].substring(0, ids[0].indexOf("/")) : ids[0]; - return Result.get().url(getProxyUrl(key, ids[0])).subs(getSub(ids)).string(); + return Result.get().url(getProxyUrl(ids[0])).subs(getSub(ids)).string(); } private List getList(Drive drive, String path, List ext) throws Exception { @@ -172,25 +171,25 @@ public class WebDAV extends Spider { String[] split = text.split("@@@"); String name = split[0]; String ext = split[1]; - String key = split[2].contains("/") ? split[2].substring(0, split[2].indexOf("/")) : split[2]; - String url = getProxyUrl(key, split[2]); + String url = getProxyUrl(split[2]); sub.add(Sub.create().name(name).ext(ext).url(url)); } return sub; } - private String getProxyUrl(String key, String path) { - return Proxy.getUrl() + "?do=webdav" + "&key=" + key + "&url=" + getDrive(key).getHost() + path.replace(key, ""); + private String getProxyUrl(String url) { + return Proxy.getUrl() + "?do=webdav&url=" + url; } public static Object[] vod(Map params) throws IOException { - String key = params.get("key"); String url = params.get("url"); + String key = url.contains("/") ? url.substring(0, url.indexOf("/")) : url; + url = url.substring(key.length()); Drive drive = getDrive(key); Object[] result = new Object[3]; result[0] = 200; result[1] = "application/octet-stream"; - result[2] = drive.getWebdav().get(url); + result[2] = drive.getWebdav().get(drive.getHost() + url); return result; } } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index fc1604f3..a43ee49f 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 c65c271b..e83d6dc9 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -962a1af0469ede7b575046c69c1f52d3 +be7bb5c4900ed56f8cc189aeabf0a989