Update ali
This commit is contained in:
parent
deb2558313
commit
f53797467a
|
|
@ -18,6 +18,8 @@ public class Item {
|
|||
|
||||
@SerializedName("name")
|
||||
private String name;
|
||||
@SerializedName("path")
|
||||
private String path;
|
||||
@SerializedName("type")
|
||||
private int type;
|
||||
@SerializedName("size")
|
||||
|
|
@ -39,7 +41,11 @@ public class Item {
|
|||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
return TextUtils.isEmpty(name) ? "" : name;
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
return TextUtils.isEmpty(path) ? "" : path;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
|
|
@ -85,7 +91,7 @@ public class Item {
|
|||
}
|
||||
|
||||
public String getVodId(String id) {
|
||||
return id + "/" + getName();
|
||||
return id + getPath() + "/" + getName();
|
||||
}
|
||||
|
||||
public String getPic() {
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@ public class AList extends Spider {
|
|||
}
|
||||
}
|
||||
|
||||
private boolean v3(String name) {
|
||||
if (!map.containsKey(name)) map.put(name, OkHttpUtil.string(ext.get(name) + "/api/public/settings").contains("v3.") ? "3" : "2");
|
||||
return Objects.equals(map.get(name), "3");
|
||||
private boolean v3(String key) {
|
||||
if (!map.containsKey(key)) map.put(key, OkHttpUtil.string(ext.get(key) + "/api/public/settings").contains("v3.") ? "3" : "2");
|
||||
return Objects.equals(map.get(key), "3");
|
||||
}
|
||||
|
||||
private List<Filter> getFilter() {
|
||||
|
|
@ -87,7 +87,7 @@ public class AList extends Spider {
|
|||
public String homeContent(boolean filter) {
|
||||
List<Class> classes = new ArrayList<>();
|
||||
LinkedHashMap<String, List<Filter>> filters = new LinkedHashMap<>();
|
||||
for (String entry : ext.keySet()) classes.add(new Class(entry, entry, "1"));
|
||||
for (String key : ext.keySet()) classes.add(new Class(key, key, "1"));
|
||||
for (Class item : classes) filters.put(item.getTypeId(), getFilter());
|
||||
return Result.string(classes, filters);
|
||||
}
|
||||
|
|
@ -126,12 +126,37 @@ public class AList extends Spider {
|
|||
return Result.string(vod);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String searchContent(String keyword, boolean quick) throws Exception {
|
||||
List<Vod> list = new ArrayList<>();
|
||||
JSONObject params = new JSONObject();
|
||||
params.put("path", "/");
|
||||
params.put("keyword", keyword);
|
||||
for (String key : ext.keySet()) list.addAll(getList(params.toString(), key));
|
||||
return Result.string(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String playerContent(String flag, String id, List<String> vipFlags) {
|
||||
String[] ids = id.split("\\+");
|
||||
return Result.get().url(ids[0]).sub(getSub(ids)).string();
|
||||
}
|
||||
|
||||
private List<Vod> getList(String param, String key) {
|
||||
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.isFolder() && !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;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ import java.util.HashMap;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
|
@ -45,6 +44,7 @@ public class Ali {
|
|||
private static String accessToken;
|
||||
private String refreshToken;
|
||||
private ImageView view;
|
||||
private int index;
|
||||
|
||||
public Ali(String token) {
|
||||
if (TextUtils.isEmpty(token)) Init.show("尚未設定 Token");
|
||||
|
|
@ -131,32 +131,32 @@ public class Ali {
|
|||
listFiles(folder, name2id, subMap, shareId, shareToken, "");
|
||||
}
|
||||
|
||||
private void listFiles(Item folder, LinkedHashMap<String, String> name2id, Map<String, List<String>> subMap, String shareId, String shareToken, String marker) throws Exception {
|
||||
private void listFiles(Item parent, LinkedHashMap<String, String> name2id, Map<String, List<String>> subMap, String shareId, String shareToken, String marker) throws Exception {
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("limit", 200);
|
||||
List<Item> folders = new ArrayList<>();
|
||||
body.put("limit", 1000);
|
||||
body.put("share_id", shareId);
|
||||
body.put("parent_file_id", folder.getFileId());
|
||||
body.put("parent_file_id", parent.getFileId());
|
||||
body.put("order_by", "name");
|
||||
body.put("order_direction", "ASC");
|
||||
if (marker.length() > 0) body.put("marker", marker);
|
||||
Item item = Item.objectFrom(post("adrive/v3/file/list", body, shareToken));
|
||||
for (Item file : item.getItems()) {
|
||||
if (file.getType().equals("folder")) {
|
||||
listFiles(file, name2id, subMap, shareId, shareToken);
|
||||
continue;
|
||||
}
|
||||
if (file.getCategory().equals("video")) {
|
||||
name2id.put(folder.getDisplayName(file.getName()), shareId + "+" + shareToken + "+" + file.getFileId());
|
||||
continue;
|
||||
}
|
||||
if (Misc.isSub(file.getExt())) {
|
||||
String name = file.removeExt();
|
||||
if (!subMap.containsKey(name)) subMap.put(name, new ArrayList<>());
|
||||
Objects.requireNonNull(subMap.get(name)).add(name + "@" + file.getFileId() + "@" + file.getExt());
|
||||
folders.add(file);
|
||||
} else if (file.getCategory().equals("video") || file.getCategory().equals("audio")) {
|
||||
name2id.put(parent.getDisplayName(file.getName()), shareId + "+" + shareToken + "+" + file.getFileId());
|
||||
} else if (Misc.isSub(file.getExt())) {
|
||||
String key = file.removeExt();
|
||||
if (!subMap.containsKey(key)) subMap.put(key, new ArrayList<>());
|
||||
subMap.get(key).add(key + "@" + file.getFileId() + "@" + file.getExt());
|
||||
}
|
||||
}
|
||||
if (item.getNextMarker().length() > 0) {
|
||||
listFiles(folder, name2id, subMap, shareId, shareToken, item.getNextMarker());
|
||||
listFiles(parent, name2id, subMap, shareId, shareToken, item.getNextMarker());
|
||||
}
|
||||
for (Item folder : folders) {
|
||||
listFiles(folder, name2id, subMap, shareId, shareToken);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
e1ce4a638a2dbef8dd09c6ce07ba7da1
|
||||
cc6114eb6329d36b474f86b7c4830ff8
|
||||
|
|
|
|||
Loading…
Reference in New Issue