diff --git a/app/src/main/java/com/github/catvod/bean/alist/Item.java b/app/src/main/java/com/github/catvod/bean/alist/Item.java index 1f6b86d4..4ab77f90 100644 --- a/app/src/main/java/com/github/catvod/bean/alist/Item.java +++ b/app/src/main/java/com/github/catvod/bean/alist/Item.java @@ -44,14 +44,26 @@ public class Item { return TextUtils.isEmpty(name) ? "" : name; } + public void setName(String name) { + this.name = name; + } + public String getPath() { return TextUtils.isEmpty(path) ? "" : path; } + public void setPath(String path) { + this.path = path; + } + public int getType() { return type; } + public void setType(int type) { + this.type = type; + } + public long getSize() { return size; } 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 8bc5034f..e31ee492 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -17,6 +17,9 @@ import com.google.gson.JsonSyntaxException; import org.json.JSONArray; import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; import java.util.ArrayList; import java.util.Arrays; @@ -141,7 +144,10 @@ public class AList extends Spider { JSONObject params = new JSONObject(); params.put("path", "/"); params.put("keyword", keyword); - for (String key : ext.keySet()) list.addAll(getList(params.toString(), key)); + for (String key : ext.keySet()) { + if (v3(key)) list.addAll(getV3List(keyword, key)); + else list.addAll(getV2List(params.toString(), key)); + } return Result.string(list); } @@ -151,7 +157,26 @@ public class AList extends Spider { return Result.get().url(ids[0]).sub(getSub(ids)).string(); } - private List getList(String param, String key) { + private List getV3List(String param, String key) { + String url = ext.get(key) + "/search?box=" + param + "&url="; + Document doc = Jsoup.parse(OkHttpUtil.string(url)); + List items = new ArrayList<>(); + for (Element a : doc.select("ul > a")) { + String text = a.text(); + String[] splits = text.split("\\."); + boolean file = splits.length > 1 && splits[1].length() == 3; + Item item = new Item(); + int index = text.lastIndexOf("/"); + if (index == -1) continue; + item.setPath("/" + text.substring(0, index)); + item.setName(text.substring(index + 1, text.length())); + item.setType(file ? 0 : 1); + items.add(item.getVod(key)); + } + return items; + } + + private List getV2List(String param, String key) { try { if (v3(key)) return Collections.emptyList(); List list = new ArrayList<>(); @@ -159,7 +184,7 @@ public class AList extends Spider { String response = OkHttpUtil.postJson(url, param); String json = new JSONObject(response).getJSONArray("data").toString(); List items = Item.arrayFrom(json); - for (Item item : items) if (!item.isFolder() && !item.ignore(false)) list.add(item.getVod(key)); + for (Item item : items) if (!item.ignore(false)) list.add(item.getVod(key)); return list; } catch (Exception e) { return Collections.emptyList(); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 93baf520..247db50a 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 b29cd177..26eeb361 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -3d3e7fb44db5b51e1ba102d6253c3949 +684d7834b3f466775ea41c9befbb48f0