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 b960cbd2..eaa59f86 100644 --- a/app/src/main/java/com/github/catvod/api/AliYun.java +++ b/app/src/main/java/com/github/catvod/api/AliYun.java @@ -475,6 +475,7 @@ public class AliYun { } public Object[] proxyVideo(Map params) throws Exception { + if (dialog != null && dialog.isShowing()) return null; String templateId = params.get("templateId"); String response = params.get("response"); String shareId = params.get("shareId"); diff --git a/app/src/main/java/com/github/catvod/bean/Result.java b/app/src/main/java/com/github/catvod/bean/Result.java index 5f114f09..96e3cf67 100644 --- a/app/src/main/java/com/github/catvod/bean/Result.java +++ b/app/src/main/java/com/github/catvod/bean/Result.java @@ -1,5 +1,6 @@ package com.github.catvod.bean; +import com.github.catvod.utils.Util; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; @@ -10,6 +11,7 @@ import org.json.JSONObject; import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -135,6 +137,13 @@ public class Result { return this; } + public Result chrome() { + Map header = new HashMap<>(); + header.put("User-Agent", Util.CHROME); + header(header); + return this; + } + public Result parse() { this.parse = 1; return this; diff --git a/app/src/main/java/com/github/catvod/spider/Cs1369.java b/app/src/main/java/com/github/catvod/spider/Cs1369.java index 0179c2c5..96724479 100644 --- a/app/src/main/java/com/github/catvod/spider/Cs1369.java +++ b/app/src/main/java/com/github/catvod/spider/Cs1369.java @@ -55,11 +55,11 @@ public class Cs1369 extends Spider { JSONObject filterConfig = new JSONObject(f); Document doc = Jsoup.parse(OkHttp.string(siteUrl, getHeader())); List list = new ArrayList<>(); - for (Element li : doc.select(".stui-vodlist.clearfix").eq(0).select(".stui-vodlist__box a")) { - String vid = siteUrl + li.attr("href"); - String name = li.attr("title"); - String pic = li.attr("data-original") + "@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"; - String remark = li.select(".pic-text.text-right").text(); + for (Element li : doc.select(".stui-vodlist.clearfix").eq(0).select(".stui-vodlist__box")) { + String vid = siteUrl + li.select("a").attr("href"); + String name = li.select("a").attr("title"); + String pic = li.select("a").attr("data-original") + "@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"; + String remark = li.select("a").select(".pic-text.text-right").text(); list.add(new Vod(vid, name, pic, remark)); } return Result.string(classes, list, filterConfig); diff --git a/app/src/main/java/com/github/catvod/spider/Push.java b/app/src/main/java/com/github/catvod/spider/Push.java index 935208cc..20a49ff5 100644 --- a/app/src/main/java/com/github/catvod/spider/Push.java +++ b/app/src/main/java/com/github/catvod/spider/Push.java @@ -37,8 +37,9 @@ public class Push extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) { + if (id.startsWith("http") && id.contains("***")) id = id.replace("***", "#"); if (flag.equals("直連")) return Result.get().url(id).subs(getSubs(id)).string(); - if (flag.equals("嗅探")) return Result.get().parse().url(id).string(); + if (flag.equals("嗅探")) return Result.get().parse().url(id).chrome().string(); if (flag.equals("解析")) return Result.get().parse().jx().url(id).string(); return ali.playerContent(flag, id, vipFlags); } @@ -48,6 +49,7 @@ public class Push extends Spider { vod.setVodId(url); vod.setTypeName("FongMi"); vod.setVodName(url.startsWith("file://") ? new File(url).getName() : url); + if (url.startsWith("http") && url.contains("#")) url = url.replace("#", "***"); vod.setVodPic("https://pic.rmb.bdstatic.com/bjh/1d0b02d0f57f0a42201f92caba5107ed.jpeg"); vod.setVodPlayFrom(TextUtils.join("$$$", Arrays.asList("直連", "嗅探", "解析"))); vod.setVodPlayUrl(TextUtils.join("$$$", Arrays.asList("播放$" + url, "播放$" + url, "播放$" + url))); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index b31437ea..3b4780fd 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 9d92789f..92218dd3 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -55c157414346e3ff571baad0a223bf15 +96a99e445d620353890869d95755b890 diff --git a/json/adult.json b/json/adult.json index 136f2be9..3a6aae50 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://fm.t4tv.hz.cz/jar/custom_spider.jar;md5;55c157414346e3ff571baad0a223bf15", + "spider": "https://fm.t4tv.hz.cz/jar/custom_spider.jar;md5;96a99e445d620353890869d95755b890", "wallpaper": "https://gao.chuqiuyu.workers.dev", "sites": [ { diff --git a/json/config.json b/json/config.json index d417bd61..8f4280be 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://fm.t4tv.hz.cz/jar/custom_spider.jar;md5;55c157414346e3ff571baad0a223bf15", + "spider": "https://fm.t4tv.hz.cz/jar/custom_spider.jar;md5;96a99e445d620353890869d95755b890", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { @@ -130,7 +130,8 @@ "type": 3, "api": "csp_Xb6v", "searchable": 1, - "changeable": 0 + "changeable": 0, + "timeout": 60 }, { "key": "看球", @@ -266,7 +267,7 @@ "name": "WebDAV", "type": 3, "api": "csp_WebDAV", - "searchable": 1, + "searchable": 0, "changeable": 0, "ext": "https://fm.t4tv.hz.cz/json/webdav.json" }, @@ -340,8 +341,9 @@ "name": "推送", "type": 3, "api": "csp_Push", - "searchable": 1, - "changeable": 0 + "searchable": 0, + "changeable": 0, + "timeout": 60 } ], "doh": [ @@ -498,6 +500,24 @@ "regex": [ "video/tos/cn" ] + }, + { + "name": "夜市", + "hosts": [ + "yeslivetv.com" + ], + "script": [ + "document.getElementsByClassName('vjs-big-play-button')[0].click()" + ] + }, + { + "name": "毛驢", + "hosts": [ + "www.maolvys.com" + ], + "script": [ + "document.getElementsByClassName('swal-button swal-button--confirm')[0].click()" + ] } ], "ads": [ diff --git a/json/test.json b/json/test.json deleted file mode 100644 index b52b90ae..00000000 --- a/json/test.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar", - "wallpaper": "http://饭太硬.top/深色壁纸/api.php", - "sites": [ - { - "key": "商店", - "name": "商店", - "type": 3, - "api": "csp_Market", - "searchable": 0, - "changeable": 0, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/market.json" - }, - { - "key": "泥巴", - "name": "泥巴", - "type": 3, - "api": "csp_NiNi", - "searchable": 1, - "changeable": 1 - }, - { - "key": "星星", - "name": "星星", - "type": 3, - "api": "csp_Star", - "searchable": 1, - "changeable": 1 - }, - { - "key": "玩偶", - "name": "玩偶", - "type": 3, - "api": "csp_Wogg", - "searchable": 1, - "changeable": 0, - "ext": { - "token": "影視天下第一", - "filter": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/wogg.json" - } - }, - { - "key": "賤賤", - "name": "賤賤", - "type": 3, - "api": "csp_Jianpian", - "searchable": 1, - "changeable": 1, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/jianpian.json" - }, - { - "key": "獨播", - "name": "獨播", - "type": 3, - "api": "csp_XPathMacFilter", - "searchable": 1, - "changeable": 1, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/duboku.json" - }, - { - "key": "haiwaikan", - "name": "海外看", - "type": 1, - "api": "https://haiwaikan.com/api.php/provide/vod", - "searchable": 1, - "changeable": 1, - "categories": [ - "日本动漫", - "国产动漫", - "欧美动漫", - "国产剧", - "韩剧", - "日剧", - "台剧", - "泰剧", - "港剧", - "欧美剧", - "动画电影", - "韩国综艺", - "国产综艺", - "日本综艺", - "欧美综艺", - "冒险片", - "剧情片", - "动作片", - "同性片", - "喜剧片", - "奇幻片", - "恐怖片", - "悬疑片", - "惊悚片", - "战争片", - "歌舞片", - "灾难片", - "爱情片", - "犯罪片", - "科幻片", - "纪录片", - "经典片" - ] - }, - { - "key": "豆瓣", - "name": "豆瓣", - "type": 3, - "api": "csp_Douban", - "searchable": 0, - "changeable": 1, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/douban.json" - }, - { - "key": "新6V", - "name": "新6V", - "type": 3, - "api": "csp_Xb6v", - "searchable": 1, - "changeable": 0 - }, - { - "key": "看球", - "name": "看球", - "type": 3, - "api": "csp_Kanqiu", - "searchable": 1, - "changeable": 0, - "style": { - "type": "list" - } - }, - { - "key": "暴風", - "name": "暴風", - "type": 1, - "api": "https://bfzyapi.com/api.php/provide/vod", - "searchable": 1, - "changeable": 1 - }, - { - "key": "索尼", - "name": "索尼 ", - "type": 1, - "api": "https://suoniapi.com/api.php/provide/vod", - "searchable": 1, - "changeable": 1 - }, - { - "key": "快帆", - "name": "快帆", - "type": 1, - "api": "https://api.kuaifan.tv/api.php/provide/vod", - "searchable": 1, - "changeable": 1 - }, - { - "key": "量子", - "name": "量子", - "type": 1, - "api": "https://cj.lziapi.com/api.php/provide/vod", - "searchable": 1, - "changeable": 1 - }, - { - "key": "非凡", - "name": "非凡", - "type": 1, - "api": "http://cj.ffzyapi.com/api.php/provide/vod", - "searchable": 1, - "changeable": 1 - }, - { - "key": "櫻花", - "name": "櫻花", - "type": 3, - "api": "csp_Ying", - "searchable": 1, - "changeable": 1 - }, - { - "key": "巴士", - "name": "巴士", - "type": 3, - "api": "csp_Dm84", - "searchable": 1, - "changeable": 1 - }, - { - "key": "異界", - "name": "異界", - "type": 3, - "api": "csp_Ysj", - "searchable": 1, - "changeable": 1 - }, - { - "key": "哔哩", - "name": "哔哩", - "type": 3, - "api": "csp_Bili", - "searchable": 1, - "changeable": 0, - "style": { - "type": "rect", - "ratio": 1.433 - }, - "ext": { - "json": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/bili.json", - "type": "帕梅拉#太极拳#广场舞#演唱会", - "cookie": "" - } - }, - { - "key": "bili_open", - "name": "哔哩貓", - "type": 3, - "api": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodOpen/main/open/bili_open.js", - "searchable": 1, - "changeable": 0, - "ext": { - "categories": "沙雕动画#沙雕穿越#沙雕", - "cookie": "" - } - }, - { - "key": "酷狗", - "name": "酷狗", - "type": 3, - "api": "csp_Kugou", - "searchable": 0, - "changeable": 0 - }, - { - "key": "本地", - "name": "本地", - "type": 3, - "api": "csp_Local", - "searchable": 0, - "changeable": 0 - }, - { - "key": "AList", - "name": "AList", - "type": 3, - "api": "csp_AList", - "searchable": 1, - "changeable": 0, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/alist.json" - }, - { - "key": "WebDAV", - "name": "WebDAV", - "type": 3, - "api": "csp_WebDAV", - "searchable": 1, - "changeable": 0, - "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/webdav.json" - }, - { - "key": "七夜", - "name": "七夜", - "type": 3, - "api": "csp_Dovx", - "searchable": 1, - "changeable": 0 - }, - { - "key": "易搜", - "name": "易搜", - "type": 3, - "api": "csp_YiSo", - "searchable": 1, - "changeable": 0 - }, - { - "key": "雲搜", - "name": "雲搜", - "type": 3, - "api": "csp_UpYun", - "searchable": 1, - "changeable": 0 - }, - { - "key": "盤搜", - "name": "盤搜", - "type": 3, - "api": "csp_PanSou", - "searchable": 1, - "changeable": 0 - }, - { - "key": "紙條搜", - "name": "紙條搜", - "type": 3, - "api": "csp_XiaoZhiTiao", - "searchable": 1, - "changeable": 0 - }, - { - "key": "盤搜索", - "name": "盤搜索", - "type": 3, - "api": "csp_PanSearch", - "searchable": 1, - "changeable": 0 - }, - { - "key": "找資源", - "name": "找資源", - "type": 3, - "api": "csp_Zhaozy", - "searchable": 1, - "changeable": 0, - "ext": "影視天下第一$$$test2$$$test2" - }, - { - "key": "push_agent", - "name": "推送", - "type": 3, - "api": "csp_Push", - "searchable": 1, - "changeable": 0 - } - ], - "doh": [ - { - "name": "Google", - "url": "https://dns.google/dns-query", - "ips": [ - "8.8.4.4", - "8.8.8.8" - ] - }, - { - "name": "Cloudflare", - "url": "https://cloudflare-dns.com/dns-query", - "ips": [ - "1.1.1.1", - "1.0.0.1", - "2606:4700:4700::1111", - "2606:4700:4700::1001" - ] - }, - { - "name": "AdGuard", - "url": "https://dns.adguard.com/dns-query", - "ips": [ - "94.140.14.140", - "94.140.14.141" - ] - }, - { - "name": "DNSWatch", - "url": "https://resolver2.dns.watch/dns-query", - "ips": [ - "84.200.69.80", - "84.200.70.40" - ] - }, - { - "name": "Quad9", - "url": "https://dns.quad9.net/dns-quer", - "ips": [ - "9.9.9.9", - "149.112.112.112" - ] - } - ], - "rules": [ - { - "name": "proxy", - "hosts": [ - "raw.githubusercontent.com", - "googlevideo.com", - "cdn.v82u1l.com", - "cdn.iz8qkg.com", - "cdn.kin6c1.com", - "c.biggggg.com", - "c.olddddd.com", - "haiwaikan.com", - "www.histar.tv", - "youtube.com", - "uhibo.com", - ".*boku.*", - ".*nivod.*", - ".*ulivetv.*" - ] - }, - { - "name": "海外看", - "hosts": [ - "haiwaikan" - ], - "regex": [ - "10.0099", - "10.3333", - "16.0599", - "8.1748", - "10.85" - ] - }, - { - "name": "索尼", - "hosts": [ - "suonizy" - ], - "regex": [ - "15.1666", - "15.2666" - ] - }, - { - "name": "暴風", - "hosts": [ - "bfzy" - ], - "regex": [ - "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY" - ] - }, - { - "name": "星星", - "hosts": [ - "aws.ulivetv.net" - ], - "regex": [ - "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY" - ] - }, - { - "name": "量子", - "hosts": [ - "vip.lz", - "hd.lz", - "v.cdnlz" - ], - "regex": [ - "18.5333" - ] - }, - { - "name": "非凡", - "hosts": [ - "vip.ffzy", - "hd.ffzy" - ], - "regex": [ - "25.0666" - ] - }, - { - "name": "火山嗅探", - "hosts": [ - "huoshan.com" - ], - "regex": [ - "item_id=" - ] - }, - { - "name": "抖音嗅探", - "hosts": [ - "douyin.com" - ], - "regex": [ - "is_play_url=" - ] - }, - { - "name": "農民嗅探", - "hosts": [ - "toutiaovod.com" - ], - "regex": [ - "video/tos/cn" - ] - } - ] -} \ No newline at end of file