This commit is contained in:
GH Action - Upstream Sync 2023-10-19 12:31:53 +00:00
commit f242492096
11 changed files with 294 additions and 78 deletions

View File

@ -72,15 +72,15 @@ public class AliYun {
} }
public File getUserCache() { public File getUserCache() {
return FileUtil.getCacheFile("aliyundrive_user"); return FileUtil.cache("aliyundrive_user");
} }
public File getOAuthCache() { public File getOAuthCache() {
return FileUtil.getCacheFile("aliyundrive_oauth"); return FileUtil.cache("aliyundrive_oauth");
} }
public File getDriveCache() { public File getDriveCache() {
return FileUtil.getCacheFile("aliyundrive_drive"); return FileUtil.cache("aliyundrive_drive");
} }
private AliYun() { private AliYun() {

View File

@ -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<Item> list;
public static List<Data> arrayFrom(String str) {
Type listType = new TypeToken<ArrayList<Data>>() {}.getType();
return new Gson().fromJson(str, listType);
}
public String getName() {
return TextUtils.isEmpty(name) ? "" : name;
}
public List<Item> getList() {
return list == null ? Collections.emptyList() : list;
}
public List<Vod> getVod() {
List<Vod> vodList = new ArrayList<>();
for (Item item : getList()) vodList.add(item.vod());
return vodList;
}
public Class type() {
return new Class(getName(), getName());
}
}

View File

@ -3,13 +3,7 @@ package com.github.catvod.bean.market;
import android.text.TextUtils; import android.text.TextUtils;
import com.github.catvod.bean.Vod; import com.github.catvod.bean.Vod;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName; 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 { public class Item {
@ -19,11 +13,8 @@ public class Item {
private String url; private String url;
@SerializedName("icon") @SerializedName("icon")
private String icon; private String icon;
@SerializedName("version")
public static List<Item> arrayFrom(String str) { private String version;
Type listType = new TypeToken<ArrayList<Item>>() {}.getType();
return new Gson().fromJson(str, listType);
}
public String getName() { public String getName() {
return TextUtils.isEmpty(name) ? "" : name; return TextUtils.isEmpty(name) ? "" : name;
@ -37,7 +28,11 @@ public class Item {
return TextUtils.isEmpty(icon) ? "" : icon; return TextUtils.isEmpty(icon) ? "" : icon;
} }
public String getVersion() {
return TextUtils.isEmpty(version) ? "" : version;
}
public Vod vod() { public Vod vod() {
return new Vod(getUrl(), getName(), getIcon()); return new Vod(getUrl(), getName(), getIcon(), getVersion(), Vod.Style.rect(1.0f));
} }
} }

View File

@ -78,7 +78,7 @@ public class Bili extends Spider {
} }
private File getUserCache() { private File getUserCache() {
return FileUtil.getCacheFile("bilibili_user"); return FileUtil.cache("bilibili_user");
} }
@Override @Override

View File

@ -5,9 +5,10 @@ import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import com.github.catvod.bean.Class;
import com.github.catvod.bean.Result; import com.github.catvod.bean.Result;
import com.github.catvod.bean.Vod; 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.crawler.Spider;
import com.github.catvod.net.OkHttp; import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.FileUtil; import com.github.catvod.utils.FileUtil;
@ -18,6 +19,7 @@ import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import okhttp3.Response; import okhttp3.Response;
@ -25,7 +27,7 @@ import okhttp3.Response;
public class Market extends Spider { public class Market extends Spider {
private ProgressDialog dialog; private ProgressDialog dialog;
private List<Item> items; private List<Data> datas;
private boolean busy; private boolean busy;
public boolean isBusy() { public boolean isBusy() {
@ -38,14 +40,21 @@ public class Market extends Spider {
@Override @Override
public void init(Context context, String extend) throws Exception { 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 @Override
public String homeVideoContent() { public String homeContent(boolean filter) throws Exception {
List<Vod> list = new ArrayList<>(); List<Class> classes = new ArrayList<>();
for (Item item : items) list.add(item.vod()); if (datas.size() > 1) for (int i = 1; i < datas.size(); i++) classes.add(datas.get(i).type());
return Result.string(list); return Result.string(classes, datas.get(0).getVod());
}
@Override
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> 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 @Override
@ -73,9 +82,10 @@ public class Market extends Spider {
setBusy(true); setBusy(true);
Init.run(this::setDialog, 500); Init.run(this::setDialog, 500);
Response response = OkHttp.newCall(url); 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"))); 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(); dismiss();
} catch (Exception e) { } catch (Exception e) {
Utils.notify(e.getMessage()); Utils.notify(e.getMessage());

View File

@ -3,6 +3,7 @@ package com.github.catvod.utils;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import com.github.catvod.spider.Init; import com.github.catvod.spider.Init;
@ -16,12 +17,16 @@ import java.net.URLConnection;
public class FileUtil { public class FileUtil {
public static File getCacheDir() { public static File cache() {
return Init.context().getCacheDir(); return Init.context().getCacheDir();
} }
public static File getCacheFile(String fileName) { public static File cache(String name) {
return new File(getCacheDir(), fileName); return new File(cache(), name);
}
public static File download() {
return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
} }
public static void write(File file, String data) { public static void write(File file, String data) {

Binary file not shown.

View File

@ -1 +1 @@
e7ecd94c00583729f5ee1a87370573ef 3945e4e685f85a2f3f3ef3ea1f852799

View File

@ -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", "wallpaper": "https://gao.chuqiuyu.tk",
"sites": [ "sites": [
{ {

View File

@ -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", "wallpaper": "http://饭太硬.top/深色壁纸/api.php",
"sites": [ "sites": [
{ {
@ -281,53 +281,7 @@
"api": "csp_Market", "api": "csp_Market",
"searchable": 0, "searchable": 0,
"changeable": 0, "changeable": 0,
"ext": [ "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/market.json"
{
"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"
}
]
} }
], ],
"doh": [ "doh": [

207
json/market.json Normal file
View File

@ -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"
}
]
}
]