Update ali
This commit is contained in:
parent
deb2558313
commit
f53797467a
|
|
@ -18,6 +18,8 @@ public class Item {
|
||||||
|
|
||||||
@SerializedName("name")
|
@SerializedName("name")
|
||||||
private String name;
|
private String name;
|
||||||
|
@SerializedName("path")
|
||||||
|
private String path;
|
||||||
@SerializedName("type")
|
@SerializedName("type")
|
||||||
private int type;
|
private int type;
|
||||||
@SerializedName("size")
|
@SerializedName("size")
|
||||||
|
|
@ -39,7 +41,11 @@ public class Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return TextUtils.isEmpty(name) ? "" : name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPath() {
|
||||||
|
return TextUtils.isEmpty(path) ? "" : path;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getType() {
|
public int getType() {
|
||||||
|
|
@ -85,7 +91,7 @@ public class Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getVodId(String id) {
|
public String getVodId(String id) {
|
||||||
return id + "/" + getName();
|
return id + getPath() + "/" + getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPic() {
|
public String getPic() {
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ public class MainActivity extends Activity {
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
Init.init(getApplicationContext());
|
Init.init(getApplicationContext());
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
|
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -59,9 +59,9 @@ public class AList extends Spider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean v3(String name) {
|
private boolean v3(String key) {
|
||||||
if (!map.containsKey(name)) map.put(name, OkHttpUtil.string(ext.get(name) + "/api/public/settings").contains("v3.") ? "3" : "2");
|
if (!map.containsKey(key)) map.put(key, OkHttpUtil.string(ext.get(key) + "/api/public/settings").contains("v3.") ? "3" : "2");
|
||||||
return Objects.equals(map.get(name), "3");
|
return Objects.equals(map.get(key), "3");
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Filter> getFilter() {
|
private List<Filter> getFilter() {
|
||||||
|
|
@ -87,7 +87,7 @@ public class AList extends Spider {
|
||||||
public String homeContent(boolean filter) {
|
public String homeContent(boolean filter) {
|
||||||
List<Class> classes = new ArrayList<>();
|
List<Class> classes = new ArrayList<>();
|
||||||
LinkedHashMap<String, List<Filter>> filters = new LinkedHashMap<>();
|
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());
|
for (Class item : classes) filters.put(item.getTypeId(), getFilter());
|
||||||
return Result.string(classes, filters);
|
return Result.string(classes, filters);
|
||||||
}
|
}
|
||||||
|
|
@ -126,12 +126,37 @@ public class AList extends Spider {
|
||||||
return Result.string(vod);
|
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
|
@Override
|
||||||
public String playerContent(String flag, String id, List<String> vipFlags) {
|
public String playerContent(String flag, String id, List<String> vipFlags) {
|
||||||
String[] ids = id.split("\\+");
|
String[] ids = id.split("\\+");
|
||||||
return Result.get().url(ids[0]).sub(getSub(ids)).string();
|
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) {
|
private List<Item> getList(String id, boolean filter) {
|
||||||
try {
|
try {
|
||||||
String key = id.contains("/") ? id.substring(0, id.indexOf("/")) : id;
|
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.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
@ -45,6 +44,7 @@ public class Ali {
|
||||||
private static String accessToken;
|
private static String accessToken;
|
||||||
private String refreshToken;
|
private String refreshToken;
|
||||||
private ImageView view;
|
private ImageView view;
|
||||||
|
private int index;
|
||||||
|
|
||||||
public Ali(String token) {
|
public Ali(String token) {
|
||||||
if (TextUtils.isEmpty(token)) Init.show("尚未設定 Token");
|
if (TextUtils.isEmpty(token)) Init.show("尚未設定 Token");
|
||||||
|
|
@ -131,32 +131,32 @@ public class Ali {
|
||||||
listFiles(folder, name2id, subMap, shareId, shareToken, "");
|
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();
|
JSONObject body = new JSONObject();
|
||||||
body.put("limit", 200);
|
List<Item> folders = new ArrayList<>();
|
||||||
|
body.put("limit", 1000);
|
||||||
body.put("share_id", shareId);
|
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_by", "name");
|
||||||
body.put("order_direction", "ASC");
|
body.put("order_direction", "ASC");
|
||||||
if (marker.length() > 0) body.put("marker", marker);
|
if (marker.length() > 0) body.put("marker", marker);
|
||||||
Item item = Item.objectFrom(post("adrive/v3/file/list", body, shareToken));
|
Item item = Item.objectFrom(post("adrive/v3/file/list", body, shareToken));
|
||||||
for (Item file : item.getItems()) {
|
for (Item file : item.getItems()) {
|
||||||
if (file.getType().equals("folder")) {
|
if (file.getType().equals("folder")) {
|
||||||
listFiles(file, name2id, subMap, shareId, shareToken);
|
folders.add(file);
|
||||||
continue;
|
} else if (file.getCategory().equals("video") || file.getCategory().equals("audio")) {
|
||||||
}
|
name2id.put(parent.getDisplayName(file.getName()), shareId + "+" + shareToken + "+" + file.getFileId());
|
||||||
if (file.getCategory().equals("video")) {
|
} else if (Misc.isSub(file.getExt())) {
|
||||||
name2id.put(folder.getDisplayName(file.getName()), shareId + "+" + shareToken + "+" + file.getFileId());
|
String key = file.removeExt();
|
||||||
continue;
|
if (!subMap.containsKey(key)) subMap.put(key, new ArrayList<>());
|
||||||
}
|
subMap.get(key).add(key + "@" + file.getFileId() + "@" + file.getExt());
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (item.getNextMarker().length() > 0) {
|
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