diff --git a/app/src/main/java/com/github/catvod/api/AliYun.java b/app/src/main/java/com/github/catvod/api/AliYun.java index 9a69c7a5..768d8d62 100644 --- a/app/src/main/java/com/github/catvod/api/AliYun.java +++ b/app/src/main/java/com/github/catvod/api/AliYun.java @@ -72,15 +72,15 @@ public class AliYun { } public File getUserCache() { - return FileUtil.getCacheFile("aliyundrive_user"); + return FileUtil.cache("aliyundrive_user"); } public File getOAuthCache() { - return FileUtil.getCacheFile("aliyundrive_oauth"); + return FileUtil.cache("aliyundrive_oauth"); } public File getDriveCache() { - return FileUtil.getCacheFile("aliyundrive_drive"); + return FileUtil.cache("aliyundrive_drive"); } private AliYun() { diff --git a/app/src/main/java/com/github/catvod/bean/market/Data.java b/app/src/main/java/com/github/catvod/bean/market/Data.java new file mode 100644 index 00000000..6abf0f55 --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/market/Data.java @@ -0,0 +1,45 @@ +package com.github.catvod.bean.market; + +import android.text.TextUtils; + +import com.github.catvod.bean.Class; +import com.github.catvod.bean.Vod; +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.Collections; +import java.util.List; + +public class Data { + + @SerializedName("name") + private String name; + @SerializedName("list") + private List list; + + public static List arrayFrom(String str) { + Type listType = new TypeToken>() {}.getType(); + return new Gson().fromJson(str, listType); + } + + public String getName() { + return TextUtils.isEmpty(name) ? "" : name; + } + + public List getList() { + return list == null ? Collections.emptyList() : list; + } + + public List getVod() { + List vodList = new ArrayList<>(); + for (Item item : getList()) vodList.add(item.vod()); + return vodList; + } + + public Class type() { + return new Class(getName(), getName()); + } +} diff --git a/app/src/main/java/com/github/catvod/bean/market/Item.java b/app/src/main/java/com/github/catvod/bean/market/Item.java index 11e392a6..9f92c5d7 100644 --- a/app/src/main/java/com/github/catvod/bean/market/Item.java +++ b/app/src/main/java/com/github/catvod/bean/market/Item.java @@ -3,13 +3,7 @@ package com.github.catvod.bean.market; import android.text.TextUtils; import com.github.catvod.bean.Vod; -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.List; public class Item { @@ -19,11 +13,8 @@ public class Item { private String url; @SerializedName("icon") private String icon; - - public static List arrayFrom(String str) { - Type listType = new TypeToken>() {}.getType(); - return new Gson().fromJson(str, listType); - } + @SerializedName("version") + private String version; public String getName() { return TextUtils.isEmpty(name) ? "" : name; @@ -37,7 +28,11 @@ public class Item { return TextUtils.isEmpty(icon) ? "" : icon; } + public String getVersion() { + return TextUtils.isEmpty(version) ? "" : version; + } + public Vod vod() { - return new Vod(getUrl(), getName(), getIcon()); + return new Vod(getUrl(), getName(), getIcon(), getVersion(), Vod.Style.rect(1.0f)); } } diff --git a/app/src/main/java/com/github/catvod/spider/Bili.java b/app/src/main/java/com/github/catvod/spider/Bili.java index 2bf365c8..69e3c827 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili.java +++ b/app/src/main/java/com/github/catvod/spider/Bili.java @@ -78,7 +78,7 @@ public class Bili extends Spider { } private File getUserCache() { - return FileUtil.getCacheFile("bilibili_user"); + return FileUtil.cache("bilibili_user"); } @Override diff --git a/app/src/main/java/com/github/catvod/spider/Market.java b/app/src/main/java/com/github/catvod/spider/Market.java index 14d98d6d..027646a4 100644 --- a/app/src/main/java/com/github/catvod/spider/Market.java +++ b/app/src/main/java/com/github/catvod/spider/Market.java @@ -5,9 +5,10 @@ import android.app.ProgressDialog; import android.content.Context; import android.net.Uri; +import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; -import com.github.catvod.bean.market.Item; +import com.github.catvod.bean.market.Data; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.FileUtil; @@ -18,6 +19,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import okhttp3.Response; @@ -25,7 +27,7 @@ import okhttp3.Response; public class Market extends Spider { private ProgressDialog dialog; - private List items; + private List datas; private boolean busy; public boolean isBusy() { @@ -38,14 +40,21 @@ public class Market extends Spider { @Override public void init(Context context, String extend) throws Exception { - items = Item.arrayFrom(extend); + if (extend.startsWith("http")) extend = OkHttp.string(extend); + datas = Data.arrayFrom(extend); } @Override - public String homeVideoContent() { - List list = new ArrayList<>(); - for (Item item : items) list.add(item.vod()); - return Result.string(list); + public String homeContent(boolean filter) throws Exception { + List classes = new ArrayList<>(); + if (datas.size() > 1) for (int i = 1; i < datas.size(); i++) classes.add(datas.get(i).type()); + return Result.string(classes, datas.get(0).getVod()); + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { + for (Data data : datas) if (data.getName().equals(tid)) return Result.get().page().vod(data.getVod()).string(); + return super.categoryContent(tid, pg, filter, extend); } @Override @@ -73,9 +82,10 @@ public class Market extends Spider { setBusy(true); Init.run(this::setDialog, 500); Response response = OkHttp.newCall(url); - File file = FileUtil.getCacheFile(Uri.parse(url).getLastPathSegment()); + File file = new File(FileUtil.download(), Uri.parse(url).getLastPathSegment()); download(file, response.body().byteStream(), Double.parseDouble(response.header("Content-Length", "1"))); - FileUtil.openFile(FileUtil.chmod(file)); + if (file.getName().endsWith(".apk")) FileUtil.openFile(FileUtil.chmod(file)); + else Utils.notify("下載完成"); dismiss(); } catch (Exception e) { Utils.notify(e.getMessage()); diff --git a/app/src/main/java/com/github/catvod/utils/FileUtil.java b/app/src/main/java/com/github/catvod/utils/FileUtil.java index 79e3c77f..eecd02c9 100644 --- a/app/src/main/java/com/github/catvod/utils/FileUtil.java +++ b/app/src/main/java/com/github/catvod/utils/FileUtil.java @@ -3,6 +3,7 @@ package com.github.catvod.utils; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.os.Environment; import android.text.TextUtils; import com.github.catvod.spider.Init; @@ -16,12 +17,16 @@ import java.net.URLConnection; public class FileUtil { - public static File getCacheDir() { + public static File cache() { return Init.context().getCacheDir(); } - public static File getCacheFile(String fileName) { - return new File(getCacheDir(), fileName); + public static File cache(String name) { + return new File(cache(), name); + } + + public static File download() { + return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); } public static void write(File file, String data) { diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index a4c54701..0d8ff199 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 9234582d..55f853d0 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -e7ecd94c00583729f5ee1a87370573ef +3945e4e685f85a2f3f3ef3ea1f852799 diff --git a/json/adult.json b/json/adult.json index c49f7a3e..6053873b 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e7ecd94c00583729f5ee1a87370573ef", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;3945e4e685f85a2f3f3ef3ea1f852799", "wallpaper": "https://gao.chuqiuyu.tk", "sites": [ { diff --git a/json/config.json b/json/config.json index cd0ad7fd..ab08c5f3 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e7ecd94c00583729f5ee1a87370573ef", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;3945e4e685f85a2f3f3ef3ea1f852799", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { @@ -281,53 +281,7 @@ "api": "csp_Market", "searchable": 0, "changeable": 0, - "ext": [ - { - "name": "電視-java-v7", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-armeabi_v7a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" - }, - { - "name": "電視-java-v8", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-arm64_v8a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" - }, - { - "name": "電視-py-v7", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-armeabi_v7a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" - }, - { - "name": "電視-py-v8", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-arm64_v8a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" - }, - { - "name": "Android-4.x", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/kitkat/leanback.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" - }, - { - "name": "手機-java-v7", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-armeabi_v7a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png" - }, - { - "name": "手機-java-v8", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-arm64_v8a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png" - }, - { - "name": "手機-py-v7", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-armeabi_v7a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png" - }, - { - "name": "手機-py-v8", - "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-arm64_v8a.apk", - "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png" - } - ] + "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/market.json" } ], "doh": [ diff --git a/json/market.json b/json/market.json new file mode 100644 index 00000000..211954c6 --- /dev/null +++ b/json/market.json @@ -0,0 +1,207 @@ +[ + { + "name": "推薦", + "list": [ + { + "url": "https://i.imgs.ovh/2023/10/19/2mfxN.jpeg", + "icon": "https://i.imgs.ovh/2023/10/19/2mfxN.jpeg" + } + ] + }, + { + "name": "正式版", + "list": [ + { + "name": "電視-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v7a" + }, + { + "name": "電視-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v8a" + }, + { + "name": "電視-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v7a" + }, + { + "name": "電視-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v8a" + }, + { + "name": "Android-4.x", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/kitkat/leanback.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "手機-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v7a" + }, + { + "name": "手機-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v8a" + }, + { + "name": "手機-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v7a" + }, + { + "name": "手機-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v8a" + } + ] + }, + { + "name": "內測版", + "list": [ + { + "name": "電視-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-java-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v7a" + }, + { + "name": "電視-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-java-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v8a" + }, + { + "name": "電視-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-python-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v7a" + }, + { + "name": "電視-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-python-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png", + "version": "v8a" + }, + { + "name": "手機-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-java-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v7a" + }, + { + "name": "手機-java", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-java-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v8a" + }, + { + "name": "手機-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-python-armeabi_v7a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v7a" + }, + { + "name": "手機-py", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-python-arm64_v8a.apk", + "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png", + "version": "v8a" + } + ] + }, + { + "name": "v7a", + "list": [ + { + "name": "荐片", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libjpa_armeabi_v7a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "磁力-1", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_stat_armeabi_v7a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "磁力-2", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_thunder_sdk_armeabi_v7a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "晴天", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libmitv.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P2P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp2p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P3P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp3p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P4P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp4p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P5P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp5p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P6P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp6p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P7P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp7p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P8P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp8p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "P9P", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp9p.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + } + ] + }, + { + "name": "v8a", + "list": [ + { + "name": "荐片", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libjpa_arm64_v8a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "磁力-1", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_stat_arm64_v8a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + }, + { + "name": "磁力-2", + "url": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_thunder_sdk_arm64_v8a.so", + "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png" + } + ] + } +] \ No newline at end of file