Update alist

pull/69/head
FongMi 3 years ago
parent 3631b093ac
commit a58b71ec06
  1. 107
      app/src/main/java/com/github/catvod/spider/AList.java
  2. BIN
      jar/custom_spider.jar
  3. 2
      jar/custom_spider.jar.md5

@ -30,6 +30,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CountDownLatch;
public class AList extends Spider {
@ -140,17 +141,46 @@ public class AList extends Spider {
return Result.string(vod);
}
private Item getDetail(String id) {
try {
String key = id.contains("/") ? id.substring(0, id.indexOf("/")) : id;
String path = id.contains("/") ? id.substring(id.indexOf("/") + 1) : "";
String url = ext.get(key) + (v3(key) ? "/api/fs/get" : "/api/public/path");
JSONObject params = new JSONObject();
params.put("path", path);
String response = OkHttpUtil.postJson(url, params.toString());
String json = v3(key) ? new JSONObject(response).getJSONObject("data").toString() : new JSONObject(response).getJSONObject("data").getJSONArray("files").getJSONObject(0).toString();
return Item.objectFrom(json);
} catch (Exception e) {
return new Item();
}
}
private List<Item> getList(String id, boolean filter) {
try {
String key = id.contains("/") ? id.substring(0, id.indexOf("/")) : id;
String path = id.contains("/") ? id.substring(id.indexOf("/") + 1) : "";
String url = ext.get(key) + (v3(key) ? "/api/fs/list" : "/api/public/path");
JSONObject params = new JSONObject();
params.put("path", path);
String response = OkHttpUtil.postJson(url, params.toString());
String json = new JSONObject(response).getJSONObject("data").getJSONArray(v3(key) ? "content" : "files").toString();
List<Item> items = Item.arrayFrom(json);
Iterator<Item> iterator = items.iterator();
if (filter) while (iterator.hasNext()) if (iterator.next().ignore(v3(key))) iterator.remove();
return items;
} catch (Exception e) {
return Collections.emptyList();
}
}
@Override
public String searchContent(String keyword, boolean quick) throws Exception {
fetchRule();
List<Vod> list = new ArrayList<>();
JSONObject params = new JSONObject();
params.put("path", "/");
params.put("keyword", keyword);
for (String key : ext.keySet()) {
if (v3(key)) list.addAll(getV3List(keyword, key));
else list.addAll(getV2List(params.toString(), key));
}
CountDownLatch cd = new CountDownLatch(ext.size());
for (String key : ext.keySet()) new Thread(() -> search(cd, list, key, keyword)).start();
cd.await();
return Result.string(list);
}
@ -160,10 +190,26 @@ public class AList extends Spider {
return Result.get().url(ids[0]).sub(getSub(ids)).string();
}
private List<Vod> getV3List(String param, String key) {
private String getParams(String keyword) {
try {
JSONObject params = new JSONObject();
params.put("path", "/");
params.put("keyword", keyword);
return params.toString();
} catch (Exception e) {
return "";
}
}
private void search(CountDownLatch cd, List<Vod> list, String key, String keyword) {
if (v3(key)) searchV3(list, key, keyword);
else searchV2(list, key, getParams(keyword));
cd.countDown();
}
private void searchV3(List<Vod> list, String key, String param) {
String url = ext.get(key) + "/search?box=" + param + "&url=";
Document doc = Jsoup.parse(OkHttpUtil.string(url));
List<Vod> items = new ArrayList<>();
for (Element a : doc.select("ul > a")) {
String text = a.text();
String[] splits = text.split("\\.");
@ -174,56 +220,19 @@ public class AList extends Spider {
item.setPath("/" + text.substring(0, index));
item.setName(text.substring(index + 1));
item.setType(file ? 0 : 1);
items.add(item.getVod(key));
list.add(item.getVod(key));
}
return items;
}
private List<Vod> getV2List(String param, String key) {
private void searchV2(List<Vod> list, String key, String param) {
try {
if (v3(key)) return Collections.emptyList();
List<Vod> list = new ArrayList<>();
String url = ext.get(key) + "/api/public/search";
String response = OkHttpUtil.postJson(url, param);
String json = new JSONObject(response).getJSONArray("data").toString();
List<Item> items = Item.arrayFrom(json);
for (Item item : items) if (!item.ignore(false)) list.add(item.getVod(key));
return list;
} catch (Exception e) {
return Collections.emptyList();
}
}
private List<Item> getList(String id, boolean filter) {
try {
String key = id.contains("/") ? id.substring(0, id.indexOf("/")) : id;
String path = id.contains("/") ? id.substring(id.indexOf("/") + 1) : "";
String url = ext.get(key) + (v3(key) ? "/api/fs/list" : "/api/public/path");
JSONObject params = new JSONObject();
params.put("path", path);
String response = OkHttpUtil.postJson(url, params.toString());
String json = new JSONObject(response).getJSONObject("data").getJSONArray(v3(key) ? "content" : "files").toString();
List<Item> items = Item.arrayFrom(json);
Iterator<Item> iterator = items.iterator();
if (filter) while (iterator.hasNext()) if (iterator.next().ignore(v3(key))) iterator.remove();
return items;
} catch (Exception e) {
return Collections.emptyList();
}
}
private Item getDetail(String id) {
try {
String key = id.contains("/") ? id.substring(0, id.indexOf("/")) : id;
String path = id.contains("/") ? id.substring(id.indexOf("/") + 1) : "";
String url = ext.get(key) + (v3(key) ? "/api/fs/get" : "/api/public/path");
JSONObject params = new JSONObject();
params.put("path", path);
String response = OkHttpUtil.postJson(url, params.toString());
String json = v3(key) ? new JSONObject(response).getJSONObject("data").toString() : new JSONObject(response).getJSONObject("data").getJSONArray("files").getJSONObject(0).toString();
return Item.objectFrom(json);
} catch (Exception e) {
return new Item();
e.printStackTrace();
}
}

Binary file not shown.

@ -1 +1 @@
1c966cffc8bda2bc28ede2c65a230f06
ad5e07a700c8b50e0eb03e20422c788d

Loading…
Cancel
Save