From cc5dc7fdcfd2313a07ba7085a1782b7aead482ec Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 8 Apr 2025 22:45:49 +0800 Subject: [PATCH] Update alist format --- .../com/github/catvod/bean/alist/Drive.java | 20 ++--- .../com/github/catvod/bean/alist/Item.java | 13 +-- .../java/com/github/catvod/spider/AList.java | 16 ++-- json/alist.json | 85 +++++++++---------- 4 files changed, 59 insertions(+), 75 deletions(-) diff --git a/app/src/main/java/com/github/catvod/bean/alist/Drive.java b/app/src/main/java/com/github/catvod/bean/alist/Drive.java index aedec77..3a3a4b9 100644 --- a/app/src/main/java/com/github/catvod/bean/alist/Drive.java +++ b/app/src/main/java/com/github/catvod/bean/alist/Drive.java @@ -5,11 +5,12 @@ import android.text.TextUtils; import com.github.catvod.bean.Class; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Image; import com.github.catvod.utils.Util; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -17,14 +18,10 @@ import java.util.Map; public class Drive { - @SerializedName("drives") - private List drives; @SerializedName("params") private List params; @SerializedName("login") private Login login; - @SerializedName("vodPic") - private String vodPic; @SerializedName("name") private String name; @SerializedName("server") @@ -40,12 +37,9 @@ public class Drive { @SerializedName("hidden") private Boolean hidden; - public static Drive objectFrom(String str) { - return new Gson().fromJson(str, Drive.class); - } - - public List getDrives() { - return drives == null ? new ArrayList<>() : drives; + public static List arrayFrom(String str) { + Type listType = new TypeToken>() {}.getType(); + return new Gson().fromJson(str, listType); } public List getParams() { @@ -60,10 +54,6 @@ public class Drive { this.name = name; } - public String getVodPic() { - return TextUtils.isEmpty(vodPic) ? Image.FOLDER : vodPic; - } - public String getName() { return TextUtils.isEmpty(name) ? "" : name; } 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 e4c9152..bc122c8 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 @@ -3,6 +3,7 @@ package com.github.catvod.bean.alist; import android.text.TextUtils; import com.github.catvod.bean.Vod; +import com.github.catvod.utils.Image; import com.github.catvod.utils.Util; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -117,19 +118,19 @@ public class Item { return id + getPath() + "/" + getName(); } - public String getPic(String pic) { - return getThumb().isEmpty() && isFolder() ? pic : getThumb(); + public String getPic() { + return getThumb().isEmpty() && isFolder() ? Image.FOLDER : getThumb(); } public String getRemark() { return Util.getSize(getSize()); } - public Vod getVod(String id, String pic) { - return new Vod(getVodId(id), getName(), getPic(pic), getRemark(), isFolder()); + public Vod getVod(String id) { + return new Vod(getVodId(id), getName(), getPic(), getRemark(), isFolder()); } - public Vod getVod(Drive drive, String pic) { - return new Vod(getVodId(drive.getName()), getName(), getPic(pic), drive.getName(), isFolder()); + public Vod getVod(Drive drive) { + return new Vod(getVodId(drive.getName()), getName(), getPic(), drive.getName(), isFolder()); } } 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 bd4c36f..9f735de 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -39,7 +39,6 @@ import java.util.concurrent.TimeUnit; public class AList extends Spider { private List drives; - private String vodPic; private String ext; private List getFilter() { @@ -52,9 +51,7 @@ public class AList extends Spider { private void fetchRule() { if (drives != null && !drives.isEmpty()) return; if (ext.startsWith("http")) ext = OkHttp.string(ext); - Drive drive = Drive.objectFrom(ext); - drives = drive.getDrives(); - vodPic = drive.getVodPic(); + drives = Drive.arrayFrom(ext); } private Drive getDrive(String name) { @@ -109,8 +106,8 @@ public class AList extends Spider { Sorter.sort(type, order, files); } - for (Item item : folders) list.add(item.getVod(tid, vodPic)); - for (Item item : files) list.add(item.getVod(tid, vodPic)); + for (Item item : folders) list.add(item.getVod(tid)); + for (Item item : files) list.add(item.getVod(tid)); return Result.get().vod(list).page().string(); } @@ -126,7 +123,6 @@ public class AList extends Spider { vod.setVodPlayFrom(key); vod.setVodId(id); vod.setVodName(name); - vod.setVodPic(vodPic); List playUrls = new ArrayList<>(); List parents = getList(path, false); for (Item item : parents) if (item.isMedia(drive.isNew())) playUrls.add(item.getName() + "$" + encodeVodId(item.getVodId(path) + findSubs(path, parents))); @@ -279,7 +275,7 @@ public class AList extends Spider { @Override public List call() { List alist = alist(); - return alist.size() > 0 ? alist : xiaoya(); + return !alist.isEmpty() ? alist : xiaoya(); } private List xiaoya() { @@ -295,7 +291,7 @@ public class AList extends Spider { item.setThumb(splits.length > 3 ? splits[4] : ""); item.setPath("/" + splits[0].substring(0, index)); item.setName(splits[0].substring(index + 1)); - list.add(item.getVod(drive, vodPic)); + list.add(item.getVod(drive)); } return list; } @@ -305,7 +301,7 @@ public class AList extends Spider { List list = new ArrayList<>(); String response = post(drive, drive.searchApi(), drive.params(keyword)); List items = Item.arrayFrom(getSearchJson(drive.isNew(), response)); - for (Item item : items) if (!item.ignore(drive.isNew())) list.add(item.getVod(drive, vodPic)); + for (Item item : items) if (!item.ignore(drive.isNew())) list.add(item.getVod(drive)); return list; } catch (Exception e) { return Collections.emptyList(); diff --git a/json/alist.json b/json/alist.json index ba3f758..f2fc1bb 100644 --- a/json/alist.json +++ b/json/alist.json @@ -1,45 +1,42 @@ -{ - "vodPic": "https://x.imgs.ovh/x/2023/09/05/64f680bb030b4.png", - "drives": [ - { - "name": "小雅", - "server": "http://alist.xiaoya.pro" +[ + { + "name": "小雅", + "server": "http://alist.xiaoya.pro" + }, + { + "name": "觸光", + "server": "https://pan.ichuguang.com" + }, + { + "name": "一只魚", + "server": "https://vtok.pp.ua/" + }, + { + "name": "七米藍", + "server": "https://al.chirmyram.com" + }, + { + "name": "神族九帝", + "server": "https://alist.shenzjd.com" + }, + { + "name": "梓澪", + "server": "https://zi0.cc" + }, + { + "name": "範本", + "server": "https://one.fongmi.com", + "search": true, + "hidden": false, + "login": { + "username": "fongmi", + "password": "fongmi" }, - { - "name": "觸光", - "server": "https://pan.ichuguang.com" - }, - { - "name": "一只魚", - "server": "https://vtok.pp.ua/" - }, - { - "name": "七米藍", - "server": "https://al.chirmyram.com" - }, - { - "name": "神族九帝", - "server": "https://alist.shenzjd.com" - }, - { - "name": "梓澪", - "server": "https://zi0.cc" - }, - { - "name": "範本", - "server": "https://one.fongmi.com", - "search": true, - "hidden": false, - "login": { - "username": "fongmi", - "password": "fongmi" - }, - "params": [ - { - "path": "/安齋拉拉", - "pass": "18181818" - } - ] - } - ] -} + "params": [ + { + "path": "/安齋拉拉", + "pass": "18181818" + } + ] + } +]