diff --git a/OK/api.json b/OK/api.json index 6c8b0a8..6254276 100644 --- a/OK/api.json +++ b/OK/api.json @@ -227,6 +227,20 @@ }, "timeout": 25 }, + { + "key": "4K指南", + "name": "⭐指南┃4K原盘", + "type": 3, + "api": "csp_AweSomeGuard", + "searchable": 1, + "quickSearch": 0, + "changeable": 0, + "filterable": 0, + "ext": { + "sp": "Zn4k" + }, + "timeout": 30 + }, { "key": "盘他", "name": "🎸盘他┃4K", @@ -1497,25 +1511,7 @@ ] } ], - "proxy": [ - "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.*", - "188766.xyz", - "4gtv.tv", - "iill.top" - ], + "proxy": [], "rules": [ { "name": "cl", diff --git a/README.md b/README.md index 90812f5..8e79994 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # qqctg -更新修改于奇奇本地包20260313 \ No newline at end of file +更新修改于奇奇本地包20260316 \ No newline at end of file diff --git a/南风/api.json b/南风/api.json index 3c2cbf0..6c0ad19 100644 --- a/南风/api.json +++ b/南风/api.json @@ -26,6 +26,13 @@ "quickSearch": 1, "filterable": 1 }, + { + "key": "弹幕", + "name": "🅿弹幕┃刷新自动启动", + "type": 3, + "api": "csp_GoConfigAmnsr", + "jar": "./jars/弹幕.jar" + }, { "key": "ConfigCenter", "name": "🅿网盘配置中心", @@ -86,6 +93,13 @@ "playerType": 2, "ext": "7lj763gg402i7942412h849jg1558j9jl8g19213il86316k465719lik158491h179312hk935886ig2l05g9" }, + { + "key": "仓鼠", + "name": "🐹仓鼠", + "type": 3, + "api": "csp_Xdai", + "ext": "7lj763gg402i79425239jk86k05j9i82l1g5j913il9g682g1i5514k3k5147l590igi0ghkg10482gg680k88j2kik01hi3g7774k09kj8h9jkj08j62ki63kh75113ggg5" + }, { "key": "橘子", "name": "🍊橘子", @@ -107,7 +121,7 @@ "type": 3, "api": "csp_Qiji", "playerType": 2, - "ext": "7lj763gg402i794245238hjjg45j8295khg7jl51j9i73332410i18ljh4155k07119l53h0j6539l8j2208h380k5h21hk8lj2l7551l0h7i6lj28ih29kh7hh14150g9l396h6g3243h218h173857igkk546g62k2lk3g33h39jh5ji9l7ig56g470g73329575" + "ext": "7lj763gg402i794245238hjjg45j8295k5hji64882862l321l4215hkkg1l5g001i9k5ihkj6539l8j2208h380k5h21hk8lj2l6i57kgh8i2lj28ih29kh7hh14615kkg5i4h2g57l7h7iij17345hihkk546j27g5g86837h5i6l581j97ig966460g73329575" }, { "key": "王子", @@ -148,7 +162,7 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "jar": "./jars/弹幕.jar" }, { "key": "csp_Jianpian", @@ -251,7 +265,7 @@ "searchable": 1, "quickSearch": 1, "filterable": 1, - "ext": "7lj763gg402i7942463j9j9jgg449698khhh845ki38473" + "ext": "7lj763gg402i7942463j9j9jgg449698lggi845ki38473" }, { "key": "低端", @@ -379,30 +393,7 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" - }, - { - "name": "🍉找短剧", - "key": "找短剧", - "type": 3, - "api": "csp_HgggAmns", - "indexs": 1, - "searchable": 0, - "filterable": 0, - "quickSearch": 0, - "changeable": 0, - "jar": "./jars/厂长.jar" - }, - { - "name": "🍩甜圈短剧", - "key": "甜圈短剧", - "type": 3, - "api": "csp_TQdjAmns", - "searchable": 1, - "filterable": 1, - "quickSearch": 1, - "changeable": 1, - "jar": "./jars/厂长.jar" + "jar": "./jars/弹幕.jar" }, { "name": "🎦豪堪短剧", @@ -413,7 +404,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "📺盒马短剧", @@ -424,7 +416,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "🎞️拜拜短剧", @@ -435,7 +428,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "🐠锦鲤短剧", @@ -446,7 +440,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "🐱喵喵短剧", @@ -457,7 +452,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "⭐星星短剧", @@ -468,7 +464,8 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "name": "🎂岁岁短剧", @@ -479,7 +476,20 @@ "filterable": 1, "quickSearch": 1, "changeable": 1, - "jar": "./jars/厂长.jar" + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" + }, + { + "name": "🍩甜圈短剧", + "key": "甜圈短剧", + "type": 3, + "api": "csp_TQdjAmns", + "searchable": 1, + "filterable": 1, + "quickSearch": 1, + "changeable": 1, + "genre": "shortdrama", + "jar": "./jars/弹幕.jar" }, { "key": "豆瓣", diff --git a/南风/jars/厂长.jar b/南风/jars/厂长.jar deleted file mode 100644 index e61f651..0000000 Binary files a/南风/jars/厂长.jar and /dev/null differ diff --git a/南风/jars/弹幕.jar b/南风/jars/弹幕.jar new file mode 100644 index 0000000..0a65031 Binary files /dev/null and b/南风/jars/弹幕.jar differ diff --git a/小米/api.json b/小米/api.json index 664ddc7..02c996d 100644 --- a/小米/api.json +++ b/小米/api.json @@ -4,24 +4,28 @@ "sites": [ { "key": "豆豆", - "name": "🎬热播|公众号:搬运分享屋 修复影视仓弹幕", + "name": "🎬热播|公众号:搬运分享屋 ", "type": 3, "quickSearch": 0, "filterable": 0, "changeable": 0, "api": "csp_Douban", + "style": { + "type": "rect", + "ratio": 1.333 + }, "searchable": 0 }, { "key": "config", - "name": "⚙️网盘|Cookie配置", + "name": "⚙️网盘|Cookie配置 加群:1023808147", "type": 3, "api": "csp_Config", "searchable": 0 }, { "key": "csp_Netfixtv", - "name": "✨☁️至臻4K|网盘", + "name": "🚀✈️至臻4K|网盘", "type": 3, "changeable": "0", "quickSearch": 1, @@ -71,7 +75,7 @@ }, { "key": "csp_Wogg", - "name": "✨☁️玩偶4K|网盘", + "name": "🧁🧀玩偶4K|网盘", "type": 3, "api": "csp_Wogg", "timeout": 15, @@ -127,6 +131,10 @@ "quickSearch": 0, "timeout": 12, "searchable": 0, + "style": { + "type": "rect", + "ratio": 1.333 + }, "ext": "" }, { @@ -134,6 +142,10 @@ "name": "🏀看球|直播", "type": 3, "api": "csp_Kanqiu", + "style": { + "type": "rect", + "ratio": 1.333 + }, "searchable": 0, "quickSearch": 0, "filterable": 1, @@ -150,7 +162,7 @@ "timeout": 12, "searchable": 1, "ext": { - "json": "https://pan-1.vma.cc/pan/down.php/699148f919c79be3493e53c780d8e2a8.txt", + "json": "https://cik07-cos.7moor-fs2.com/im/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/50e4430df0b5644f/bilibil.json", "cookie": "" }, "style": { @@ -159,22 +171,23 @@ } }, { - "key": "csp_XBPQ", - "name": "📦米口|测试", + "key": "秒看", + "name": "🌅秒看|1080P", "type": 3, - "api": "csp_XBPQ", - "timeout": 12, - "jar": "./jars/csp_XBPQ.jar", - "ext": "{\"模板\":\"https://gitee.com/smallmi1007/mimi/raw/master/nox.json\",\"域名-c\":\"http://111.170.7.114:8081\",\"xas\":\"3D:D7:7B:07:B0:81:49:AF:90:5E:39:2B:B8:59:A9:99:89:EB:D5:35:6E:06:C0:A4:BE:44:B6:16:43:33:C4:C3\",\"xavn\":\"0.1.5\",\"xap\":\"com.muyuesg.app\",\"xavc\":\"15\"}" - }, - { - "key": "csp_XBPQ2", - "name": "📦独家|测试", - "type": 3, - "api": "csp_XBPQ", - "timeout": 12, - "jar": "./jars/csp_XBPQ.jar", - "ext": "{\"模板\":\"https://gitee.com/smallmi1007/mimi/raw/master/nox.json\",\"域名-c\":\"https://xdsj.xywla.com\",\"xas\":\"7D:69:AF:92:9A:9F:A6:88:65:07:B2:DB:50:FC:CD:DD:2D:C2:9A:E4:01:9C:ED:56:12:2C:50:6D:E3:CD:38:F6\",\"xavn\":\"1.0.6\",\"xap\":\"com.xiaodoshijie.app\",\"xavc\":\"16\"}" + "timeout": 15, + "api": "./api/getapp.py", + "changeable": "1", + "quickSearch": 0, + "filterable": 1, + "ext": { + "host": "https://mk1080.top/get.txt", + "指定域名": "1", + "数据密钥": "c60d88b2eep53za8", + "数据向量": "c60d88b2eep53za8", + "接口版本": "/api.php/getappapi", + "登录类型": "token", + "认证令牌": "4181e508e7a17657d6a6246e70b1b13553e5ae9d8d287dc47000fb2df638dffa" + } }, { "key": "爱影视", @@ -182,11 +195,11 @@ "type": 3, "timeout": 15, "api": "csp_AppGet", - "ext": "https://aysappto.oss-cn-chengdu.aliyuncs.com/q19.txt|fff32466kkfff616|122" + "ext": "https://aysappto.oss-cn-chengdu.aliyuncs.com/q20.txt|ada211sdfsff3261|122" }, { "key": "段友", - "name": "♨️段友|1080P", + "name": "🎪段友|1080P", "type": 3, "searchable": 1, "changeable": 1, @@ -237,25 +250,6 @@ "filterable": 1, "ext": "https://guwozj-1319364746.cos.ap-guangzhou.myqcloud.com/gw7.txt|ca94b06ca3c7d80e|122" }, - { - "key": "秒看", - "name": "🌅秒看|1080P", - "type": 3, - "timeout": 15, - "api": "./api/getapp.py", - "changeable": "1", - "quickSearch": 0, - "filterable": 1, - "ext": { - "host": "https://mk1080.top/get.txt", - "指定域名": "1", - "数据密钥": "c60d88b2eep53za8", - "数据向量": "c60d88b2eep53za8", - "接口版本": "/api.php/getappapi", - "登录类型": "token", - "认证令牌": "4181e508e7a17657d6a6246e70b1b13553e5ae9d8d287dc47000fb2df638dffa" - } - }, { "key": "3QQQ", "name": "🍅小米|大鹅", @@ -272,12 +266,22 @@ "ext": "https://www.jqqzx.top/" }, { - "key": "追忆", - "name": "📜小米|追忆", + "key": "csp_XBPQ", + "name": "📦米口|测试", "type": 3, - "timeout": 15, - "api": "csp_AppNox", - "ext": "WQvB2Qw4Lp6LvWZcoDzAgWcdOv1mVLeY0zsSUm7bMIsicAsgOHNIjC8Yu9jjcHqnMDGY+94VxdIFzQm2fN7mCdhyQreUnNyGkNwiluieESzk83LDnj0Nwx0dwt1VZDTzYrWoXL55vf7YY1yjMID/C5SZN8uNA08bwHQzDwY8xEtGACOAb6Z/0z9n1NN1qApbyxoouOKKEsekOhSlAhE+czjC+tU+78MSRpA3l+n2+gA=" + "api": "csp_XBPQ", + "timeout": 12, + "jar": "./jars/csp_XBPQ.jar", + "ext": "{\"模板\":\"https://gitee.com/smallmi1007/mimi/raw/master/nox.json\",\"域名-c\":\"http://111.170.7.114:8081\",\"xas\":\"3D:D7:7B:07:B0:81:49:AF:90:5E:39:2B:B8:59:A9:99:89:EB:D5:35:6E:06:C0:A4:BE:44:B6:16:43:33:C4:C3\",\"xavn\":\"0.1.5\",\"xap\":\"com.muyuesg.app\",\"xavc\":\"15\"}" + }, + { + "key": "csp_XBPQ2", + "name": "📦独家|测试", + "type": 3, + "api": "csp_XBPQ", + "timeout": 12, + "jar": "./jars/csp_XBPQ.jar", + "ext": "{\"模板\":\"https://gitee.com/smallmi1007/mimi/raw/master/nox.json\",\"域名-c\":\"https://xdsj.xywla.com\",\"xas\":\"7D:69:AF:92:9A:9F:A6:88:65:07:B2:DB:50:FC:CD:DD:2D:C2:9A:E4:01:9C:ED:56:12:2C:50:6D:E3:CD:38:F6\",\"xavn\":\"1.0.6\",\"xap\":\"com.xiaodoshijie.app\",\"xavc\":\"16\"}" }, { "key": "荐片", @@ -296,7 +300,7 @@ }, { "key": "番剧2", - "name": "💥米口|动漫", + "name": "🧇米口|番剧", "type": 3, "searchable": 1, "changeable": 1, diff --git a/小虎斑/api.json b/小虎斑/api.json index 0a2a517..21e4d51 100644 --- a/小虎斑/api.json +++ b/小虎斑/api.json @@ -418,12 +418,6 @@ "分类": "电影$0#电视剧$1" } }, - { - "key": "苹果", - "name": "苹果|弹幕", - "type": 3, - "api": "csp_HBPguo" - }, { "key": "天天", "name": "天天|弹幕", diff --git a/小虎斑/json/host.json b/小虎斑/json/host.json index 2a364c2..b808cc8 100644 --- a/小虎斑/json/host.json +++ b/小虎斑/json/host.json @@ -1,3 +1,3 @@ { - "apiDomain": "http://64.64.252.93:12005" + "apiDomain": "http://38.47.239.20:12005" } \ No newline at end of file diff --git a/小虎斑/spider.jar b/小虎斑/spider.jar index b9d9f7f..6f00ddb 100644 Binary files a/小虎斑/spider.jar and b/小虎斑/spider.jar differ diff --git a/摸鱼儿/api.json b/摸鱼儿/api.json index 1341779..e9ebe7a 100644 --- a/摸鱼儿/api.json +++ b/摸鱼儿/api.json @@ -141,15 +141,6 @@ "changeable": 1, "ext": "AS489lHIPXXnFM64nq+j83AKsZBAWHJxiolcdAQhVx+XVHnaLVj3OiTSytruFyLqxsmm1AhgdalU+scPnz4hkUu01Ppy9Ttysn+LieUGod/lwmSMJ4CVW/EDO33YUhidr+lqJcnx7APcA2mG4Y+5AmEYH2Wol6qcFUo1sogtH+iYZ/YXtoPKCywF1JMyBjfj7Pn83+MTjKTUrb53bT4gJlw=" }, - { - "key": "明玦", - "name": "明玦|APP", - "type": 3, - "api": "csp_AppGet", - "searchable": 1, - "changeable": 1, - "ext": "AaIkDkIeL0bF5foLGJpX+cbUjv1IbY05okz9VBt5znOYXxZtodjbPHHdcEg6FdVbb9WW7sl623Wj49ZNOxTIHR9cruqS3Rcl5VJPgjC/JLvofUwvzUraVUMLTIxvs2j5L4vg/hN1o5TDRbWkq8SrCRxY2QopBTqPw75C/ECyvBQlV3NZjWlbu5YUr8jGhJJfdJ7o1gh6Xeg0pGMngVpBeDuQDhdUmkvCl658cEP/Oics" - }, { "key": "厌离", "name": "厌离|APP", @@ -220,23 +211,6 @@ "filterable": 1, "ext": "AcQgxCZJh0zfuqWhi3EWO0lHZHvcxjcjkSwh/L0j5HEY9Fq3+o2hdqQXb/2viRHayRmBY64JuCWIkKKgRdpy650qa/qp5Yx5LMXbHLNBOw7Y2ZGmPIKIXZw4s07EI1OuOTxg5Jj1a2VvZaGGrWPO5Zx84C6LNBDniS3O/XXNtDexGf7mP03SjlVcLkS00BSjgZJIy7PZA3fuP0lUeIdK+T0JzxKFrX5IxrgxOGYTCb4UUXOKaASBFqPcbpdj1SMNkCxWhqz9lcA8n+r81dRn4TMOKoyFaxJmX3DfKc1UzGgH" }, - { - "key": "景仪", - "name": "景仪|APP", - "type": 3, - "api": "csp_AppQi", - "searchable": 1, - "changeable": 1, - "ext": "AXBlmIaXssBpd3Fa+kwjwLQb1/iS17U9n98QF7PrEQQBsrDqGYa/UHvP9eMSQFc7xxy63YaGklVEc+zsxq7CHCQEnNfRoaZdDnwsUwKmWxnYn4lRh3CRnB6gOvpRkamwTzo6Ytzy0enTk/xpedKn+Z8DUSn7CsdzN51bXQA8I2K32X7yAnnIKXwZfslGY5H8Y0eMEYSLh/Ny+xy2UQO2jT7GrWI9Ih8uT6wSdIXGXAnpjySRe5YMMXwVltzCkBw0Ow==" - }, - { - "key": "麒麟", - "name": "麒麟|APP", - "type": 3, - "changeable": 0, - "api": "csp_AppFox", - "ext": "Ac9bpM2BcSDtRFXJIKv7cKam+MagzI4MRN9VkD0cdbZYR2sdZMY+KrFlbb/4YNndRu8tZ6ryTJc7jJekLp6O4gnnRwzqwP3+4rp/r5A5u/Qt" - }, { "key": "Libvio", "name": "立播|4K", diff --git a/摸鱼儿/json/douban.json b/摸鱼儿/json/douban.json index 3523da7..7726cb4 100644 --- a/摸鱼儿/json/douban.json +++ b/摸鱼儿/json/douban.json @@ -45,46 +45,6 @@ ] } ], - "tv_hot": [ - { - "key": "type", - "name": "分类", - "value": [ - { - "n": "综合", - "v": "tv_hot" - }, - { - "n": "国产剧", - "v": "tv_domestic" - }, - { - "n": "欧美剧", - "v": "tv_american" - }, - { - "n": "日剧", - "v": "tv_japanese" - }, - { - "n": "韩剧", - "v": "tv_korean" - }, - { - "n": "动画", - "v": "tv_animation" - }, - { - "n": "综艺", - "v": "tv_variety_show" - }, - { - "n": "泰剧", - "v": "tv_thai" - } - ] - } - ], "anime": [ { "key": "类型", @@ -238,14 +198,14 @@ "key": "sort", "name": "排序", "value": [ - { - "n": "近期热度", - "v": "T" - }, { "n": "首播时间", "v": "R" }, + { + "n": "近期热度", + "v": "T" + }, { "n": "高分优先", "v": "S" @@ -311,26 +271,6 @@ ] } ], - "show_hot": [ - { - "key": "type", - "name": "分类", - "value": [ - { - "n": "综合", - "v": "show_hot" - }, - { - "n": "国内", - "v": "show_domestic" - }, - { - "n": "国外", - "v": "show_foreign" - } - ] - } - ], "movie": [ { "key": "类型", @@ -1296,14 +1236,6 @@ "n": "实时热门电影", "v": "movie_real_time_hotest" }, - { - "n": "一周口碑电影榜", - "v": "movie_weekly_best" - }, - { - "n": "豆瓣电影Top250", - "v": "movie_top250" - }, { "n": "正在热映", "v": "movie_showing" @@ -1311,6 +1243,30 @@ { "n": "即将上映", "v": "movie_soon" + }, + { + "n": "经典电影", + "v": "movie_classic" + }, + { + "n": "最新电影", + "v": "movie_latest" + }, + { + "n": "科幻佳片", + "v": "movie_scifi" + }, + { + "n": "喜剧佳片", + "v": "movie_comedy" + }, + { + "n": "动作佳片", + "v": "movie_action" + }, + { + "n": "爱情佳片", + "v": "movie_love" } ] } @@ -1320,10 +1276,6 @@ "key": "榜单", "name": "榜单", "value": [ - { - "n": "实时热门电视", - "v": "tv_real_time_hotest" - }, { "n": "华语口碑剧集榜", "v": "tv_chinese_best_weekly" @@ -1339,10 +1291,6 @@ { "n": "国外口碑综艺榜", "v": "show_global_best_weekly" - }, - { - "n": "国产剧集榜", - "v": "tv_domestic_best_weekly" } ] } diff --git a/摸鱼儿/spider.jar b/摸鱼儿/spider.jar index 0f43986..073ddf0 100644 Binary files a/摸鱼儿/spider.jar and b/摸鱼儿/spider.jar differ diff --git a/欧歌/api.json b/欧歌/api.json index d6cc935..d98e4a9 100644 --- a/欧歌/api.json +++ b/欧歌/api.json @@ -12,7 +12,7 @@ }, { "key": "豆瓣1", - "name": "📢公告❤更新03.07❤", + "name": "📢公告❤更新03.16❤", "type": 3, "api": "csp_Notice", "searchable": 1, @@ -57,7 +57,7 @@ ], "url_key": "wogg1", "threadinfo": { - "chunksize": 490, + "chunksize": 452, "threads": 16 } } @@ -80,7 +80,7 @@ ], "url_key": "woog2", "threadinfo": { - "chunksize": 447, + "chunksize": 496, "threads": 16 } } @@ -102,6 +102,12 @@ ] } }, + { + "key": "荐片", + "name": "💡荐片|影视", + "api": "csp_JianPian", + "type": 3 + }, { "key": "热播影视", "name": "💡热播|影视", @@ -122,10 +128,11 @@ "ext": "https://vip.wwgz.cn:5200" }, { - "key": "三秋影视", - "name": "💡三秋|影视", + "key": "韩圈", + "name": "💡韩圈|影视", "type": 3, - "api": "csp_App3Q" + "api": "csp_Hxq", + "ext": "https://fishapi.wya6.com/fish/fishhxq.php" }, { "key": "坚果影视", @@ -133,14 +140,23 @@ "type": 3, "api": "csp_AppJg" }, + { + "key": "三秋影视", + "name": "💡三秋|影视", + "type": 3, + "api": "csp_App3Q" + }, + { + "key": "三六零", + "name": "💡三六|视频", + "type": 3, + "api": "csp_SP360" + }, { "key": "瓜子影视", "name": "💡瓜子|影视", "type": 3, - "api": "csp_Gz360", - "searchable": 1, - "quickSearch": 1, - "filterable": 1 + "api": "csp_Gz360" }, { "key": "爱看机器人", @@ -172,6 +188,19 @@ "api": "csp_Jpys", "ext": "https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn" }, + { + "key": "云播影视", + "name": "💡云播|影视", + "type": 3, + "api": "csp_Tvyb", + "ext": "http://www.tvyb03.com" + }, + { + "key": "饺子影视", + "name": "💡饺子|影视", + "type": 3, + "api": "csp_Jiaozi" + }, { "key": "1905", "name": "💡1905|影视", @@ -207,15 +236,6 @@ "jar": "./jars/橘皮.jar", "ext": "7lj763gg402i7942503g839jg74h8h88highi40799jh6i6k454419l0l5184k0g549h0kg2i01i838i2h42g891lgg1" }, - { - "key": "趣看", - "name": "💡趣看┃影视", - "type": 3, - "api": "csp_Qiji", - "playerType": 2, - "jar": "./jars/橘皮.jar", - "ext": "7lj763gg402i794245238hjjg45j8295k5hji64882862l321l4215hkkg1l5g001i9k5ihkj6539l8j2208h380k5h21hk8lj2l6k56l1g8i3k93k8i3ihj7hh5595il0glj1h0g0737h2h8652680i96l51h766khhg27j35h0igl5j69239l5311h113i71j974g8k1" - }, { "key": "剧评", "name": "💡剧评┃影视", @@ -243,18 +263,6 @@ "jar": "./jars/橘皮.jar", "ext": "7lj763gg402i7942412h849jg1558j9jl8g19213il86316k465719lik158491h179312hk935886ig2l05g9" }, - { - "key": "茉莉", - "name": "👑茉莉|影视", - "type": 3, - "searchable": 1, - "api": "csp_AppGet", - "ext": { - "site": "https://gitee.com/wmmoliill/wimg/raw/master/img/bk/9.txt", - "dataKey": "88689667dce61725", - "dataIv": "88689667dce61725" - } - }, { "key": "驿站", "name": "👑驿站|影视", @@ -308,13 +316,6 @@ "ua": "okhttp/3.10.0" } }, - { - "key": "韩圈", - "name": "👑韩圈|影视", - "type": 3, - "api": "csp_Hxq", - "ext": "https://fishapi.wya6.com/fish/fishhxq.php" - }, { "key": "奇奇", "name": "👑奇奇|影视", @@ -417,21 +418,14 @@ } }, { - "key": "小羊", - "name": "👑小羊|影视", + "key": "奴娜", + "name": "👑奴娜|影视", "type": 3, - "api": "csp_AppGet", - "ext": { - "site": "https://xy4k.com/url.txt", - "dataKey": "7SDWjknU34zqFbVr", - "dataIv": "7SDWjknU34zqFbVr" - } - }, - { - "key": "荐片", - "name": "🥇荐片|影视", - "api": "csp_JianPian", - "type": 3 + "api": "csp_AppYsV2", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "ext": "https://www.nntv.in/api.php/v1.vod" }, { "key": "永乐", @@ -481,14 +475,6 @@ "type": 3, "api": "./api/耐看.js" }, - { - "key": "久久影视", - "name": "🥇久久┃影视", - "type": 3, - "api": "csp_AppYsV2", - "playerType": 2, - "ext": "http://99cms.jj99.icu:8199/api.php/app/" - }, { "key": "New6v", "name": "🎃New6V┃磁力", @@ -570,20 +556,6 @@ "quickSearch": 1, "filterable": 1 }, - { - "key": "咕咕动漫", - "name": "🤣咕咕|动漫", - "type": 3, - "quickSearch": 1, - "api": "csp_AppGet", - "ext": { - "url": "https://www.gugu3.com", - "dataKey": "nKfZ8KX6JTNWRzTD", - "dataIv": "nKfZ8KX6JTNWRzTD", - "deviceId": "", - "version": "" - } - }, { "key": "漫国动漫", "name": "🤣漫国丨动漫", @@ -596,18 +568,6 @@ "parsesKey": "aassddwwxxllsx1x" } }, - { - "key": "元咲动漫", - "name": "🤣元咲丨动漫", - "type": 3, - "quickSearch": 1, - "api": "csp_AppGet", - "ext": { - "url": "http://cic.aicg.fun", - "dataKey": "2c4h36abd96se10u", - "dataIv": "2c4h36abd96se10u" - } - }, { "key": "番薯动漫", "name": "🤣番薯丨动漫", @@ -620,30 +580,6 @@ "dataIv": "N4yj7l7xKxHF4*gz" } }, - { - "key": "米饭", - "name": "🤣米饭|动漫", - "type": 3, - "quickSearch": 1, - "api": "csp_AppGet", - "ext": { - "url": "https://get.mymifun.com", - "dataKey": "GETMIFUNGEIMIFUN", - "dataIv": "GETMIFUNGEIMIFUN" - } - }, - { - "key": "方舟动漫", - "name": "🤣方舟丨动漫", - "type": 3, - "searchable": 1, - "api": "csp_AppGet", - "ext": { - "url": "https://www.cyfz.vip", - "dataKey": "e72cdfd629e8895d", - "dataIv": "e72cdfd629e8895d" - } - }, { "key": "玩偶", "name": "❤玩偶|4K", @@ -873,14 +809,6 @@ "分类url": "https://www.ylys.tv/;;!H" } }, - { - "key": "韩国", - "name": "🧿韩国|影视", - "type": 3, - "api": "csp_XBPQ", - "jar": "./jars/养生堂.jar", - "ext": "./json/韩剧看看.json" - }, { "key": "农民", "name": "🧿农民|影视", @@ -915,12 +843,6 @@ "ext": "./json/啊哈DJ.json", "jar": "./jars/养生堂.jar" }, - { - "key": "本地", - "name": "🚤本地|视频", - "type": 3, - "api": "csp_LocalFile" - }, { "key": "哔️软件", "name": "🅰️软件┃哔哩", @@ -1344,11 +1266,10 @@ "gridview": "0-0-4.1" }, { - "key": "采集之王", - "name": "🐢采集|合集", + "key": "本地", + "name": "🚤本地|视频", "type": 3, - "api": "./api/drpy2.min.js", - "ext": "./js/采集之王.js?type=url¶ms=https://cdn.jsdmirror.com/gh/ouhaibo1980/tvbox@main/json/采集静态.json" + "api": "csp_LocalFile" }, { "key": "呦呦DJ", @@ -1387,6 +1308,22 @@ "changeable": 1, "api": "./api/preview" }, + { + "key": "919体育", + "name": "⚽919|体育", + "type": 3, + "api": "csp_919Tiyu", + "style": { + "type": "list" + } + }, + { + "key": "采集之王", + "name": "🐢采集|合集", + "type": 3, + "api": "./api/drpy2.min.js", + "ext": "./js/采集之王.js?type=url¶ms=https://cdn.jsdmirror.com/gh/ouhaibo1980/tvbox@main/json/采集静态.json" + }, { "key": "push_agent", "name": "📢手机|推送", @@ -1429,7 +1366,7 @@ { "name": "失败手动换", "type": "1", - "url": "https://by1.nxog.eu.org/jx.php?ou=139&mz=0&url=", + "url": "https://by1.nxog.eu.org/jx.php?ou=13c&mz=0&url=", "ext": { "header": { "user-agent": "Mozilla/5.0(Linux;Android13;V2049ABuild/TP1A.220624.014;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/116.0.0.0MobileSafari/537.36" @@ -1439,17 +1376,17 @@ { "name": "-关注-", "type": 1, - "url": "https://by1.nxog.eu.org/jx.php?ou=139&mz=1&url=" + "url": "https://by1.nxog.eu.org/jx.php?ou=13c&mz=1&url=" }, { "name": "-装歌API-", "type": 1, - "url": "https://by1.nxog.eu.org/jx.php?ou=139&mz=2&url=" + "url": "https://by1.nxog.eu.org/jx.php?ou=13c&mz=2&url=" }, { "name": "-公众号-", "type": 1, - "url": "https://by1.nxog.eu.org/jx.php?ou=139&mz=3&url=" + "url": "https://by1.nxog.eu.org/jx.php?ou=13c&mz=3&url=" }, { "name": "装歌APP", diff --git a/欧歌/api/preview b/欧歌/api/preview new file mode 100644 index 0000000..f1f3536 --- /dev/null +++ b/欧歌/api/preview @@ -0,0 +1,475 @@ +import 'assets://lib/crypto-js.js'; +const UA = 'Mozilla/5.0 (Linux; Android 9; V2196A Build/PQ3A.190705.08211809; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:416;packageName:com.jp3.xg3'; +const aggConfig = { + keys: 'd3dGiJc651gSQ8w1', + charMap: { + '+': 'P', '/': 'X', '0': 'M', '1': 'U', '2': 'l', '3': 'E', '4': 'r', '5': 'Y', '6': 'W', '7': 'b', '8': 'd', '9': 'J', + 'A': '9', 'B': 's', 'C': 'a', 'D': 'I', 'E': '0', 'F': 'o', 'G': 'y', 'H': '_', 'I': 'H', 'J': 'G', 'K': 'i', 'L': 't', + 'M': 'g', 'N': 'N', 'O': 'A', 'P': '8', 'Q': 'F', 'R': 'k', 'S': '3', 'T': 'h', 'U': 'f', 'V': 'R', 'W': 'q', 'X': 'C', + 'Y': '4', 'Z': 'p', 'a': 'm', 'b': 'B', 'c': 'O', 'd': 'u', 'e': 'c', 'f': '6', 'g': 'K', 'h': 'x', 'i': '5', 'j': 'T', + 'k': '-', 'l': '2', 'm': 'z', 'n': 'S', 'o': 'Z', 'p': '1', 'q': 'V', 'r': 'v', 's': 'j', 't': 'Q', 'u': '7', 'v': 'D', + 'w': 'w', 'x': 'n', 'y': 'L', 'z': 'e' + }, + headers: { + default: { 'User-Agent': 'okhttp/3.12.11', 'content-type': 'application/json; charset=utf-8' } + }, + platform: { + 百度: { host: 'https://api.jkyai.top', url1: '/API/bddjss.php?name=fyclass&page=fypage', url2: '/API/bddjss.php?id=fyid', search: '/API/bddjss.php?name=**&page=fypage' }, + 锦鲤: { host: 'https://api.jinlidj.com', search: '/api/search', url2: '/api/detail' }, + 番茄: { host: 'https://reading.snssdk.com', url1: '/reading/bookapi/bookmall/cell/change/v', url2: 'https://fqgo.52dns.cc/catalog', search: 'https://fqgo.52dns.cc/search' }, + 星芽: { host: 'https://app.whjzjx.cn', url1: '/cloud/v2/theater/home_page?theater_class_id', url2: '/v2/theater_parent/detail', search: '/v3/search', loginUrl: 'https://u.shytkjgs.com/user/v1/account/login' }, + 西饭: { host: 'https://xifan-api-cn.youlishipin.com', url1: '/xifan/drama/portalPage', url2: '/xifan/drama/getDuanjuInfo', search: '/xifan/search/getSearchList' }, + 软鸭: { host: 'https://api.xingzhige.com', url1: '/API/playlet', search: '/API/playlet' }, + 七猫: { host: 'https://api-store.qmplaylet.com', url1: '/api/v1/playlet/index', url2: 'https://api-read.qmplaylet.com/player/api/v1/playlet/info', search: '/api/v1/playlet/search' }, + 围观: { host: 'https://api.drama.9ddm.com', url1: '/drama/home/shortVideoTags', url2: '/drama/home/shortVideoDetail', search: '/drama/home/search' }, + 甜圈: { host: 'https://mov.cenguigui.cn', url1: '/duanju/api.php?classname', url2: '/duanju/api.php?book_id', search: '/duanju/api.php?name' } + }, + platformList: [ + { name: '甜圈短剧', id: '甜圈' }, { name: '七猫短剧', id: '七猫' }, { name: '锦鲤短剧', id: '锦鲤' }, + { name: '番茄短剧', id: '番茄' }, { name: '星芽短剧', id: '星芽' }, { name: '西饭短剧', id: '西饭' }, + { name: '软鸭短剧', id: '软鸭' }, { name: '百度短剧', id: '百度' }, { name: '围观短剧', id: '围观' } + ], + search: { limit: 30, timeout: 6000 } +}; + +const ruleFilterDef = { + 百度: { area: '逆袭' }, + 锦鲤: { area: '' }, + 番茄: { area: 'videoseries_hot' }, + 星芽: { area: '1' }, + 西饭: { area: '' }, + 软鸭: { area: '战神' }, + 七猫: { area: '0' }, + 围观: { area: '' }, + 甜圈: { area: '推荐榜' } +}; + +const filterOptionsB64 = "eyLnlJzlnIgiOlt7ImtleSI6ImFyZWEiLCJuYW1lIjoi5Ymn5oOFIiwidmFsdWUiOlt7Im4iOiLlhajpg6giLCJ2IjoiIn0seyJuIjoi5o6o6I2Q5qacIiwidiI6IuaOqOiNkOamnCJ9LHsibiI6IueDreaSreamnCIsInYiOiLng63mkq3mppwifSx7Im4iOiLmlrDkuabmppwiLCJ2Ijoi5paw5Lmm5qacIn0seyJuIjoi5a6M57uT5qacIiwidiI6IuWujOe7k+amnCJ9LHsibiI6Iui/nui9veamnCIsInYiOiLov57ovb3mppwifSx7Im4iOiLlhY3otLnmppwiLCJ2Ijoi5YWN6LS55qacIn0seyJuIjoi5paw5YmnIiwidiI6IuaWsOWJpyJ9LHsibiI6IumAhuiirSIsInYiOiLpgIbooq0ifSx7Im4iOiLpnLjmgLsiLCJ2Ijoi6Zy45oC7In0seyJuIjoi546w5Luj6KiA5oOFIiwidiI6IueOsOS7o+iogOaDhSJ9LHsibiI6IuaJk+iEuOiZkOa4oyIsInYiOiLmiZPohLjomZDmuKMifSx7Im4iOiLosarpl6jmganmgKgiLCJ2Ijoi6LGq6Zeo5oGp5oCoIn0seyJuIjoi56We6LGqIiwidiI6IuelnuixqiJ9LHsibiI6IumprOeUsiIsInYiOiLpqaznlLIifSx7Im4iOiLpg73luILml6XluLgiLCJ2Ijoi6YO95biC5pel5bi4In0seyJuIjoi5oiY56We5b2S5p2lIiwidiI6IuaImOelnuW9kuadpSJ9LHsibiI6IuWwj+S6uueJqSIsInYiOiLlsI/kurrniakifSx7Im4iOiLlpbPmgKfmiJDplb8iLCJ2Ijoi5aWz5oCn5oiQ6ZW/In0seyJuIjoi5aSn5aWz5Li7IiwidiI6IuWkp+Wls+S4uyJ9LHsibiI6Iuepv+i2iiIsInYiOiLnqb/otooifSx7Im4iOiLpg73luILkv67ku5kiLCJ2Ijoi6YO95biC5L+u5LuZIn0seyJuIjoi5by66ICF5Zue5b2SIiwidiI6IuW8uuiAheWbnuW9kiJ9LHsibiI6IuS6suaDhSIsInYiOiLkurLmg4UifSx7Im4iOiLlj6Too4UiLCJ2Ijoi5Y+k6KOFIn0seyJuIjoi6YeN55SfIiwidiI6IumHjeeUnyJ9LHsibiI6IumXquWpmiIsInYiOiLpl6rlqZoifSx7Im4iOiLotZjlqb/pgIbooq0iLCJ2Ijoi6LWY5am/6YCG6KKtIn0seyJuIjoi6JmQ5oGLIiwidiI6IuiZkOaBiyJ9LHsibiI6Iui/veWmuyIsInYiOiLov73lprsifSx7Im4iOiLlpKnkuIvml6DmlYwiLCJ2Ijoi5aSp5LiL5peg5pWMIn0seyJuIjoi5a625bqt5Lym55CGIiwidiI6IuWutuW6reS8pueQhiJ9LHsibiI6IuiQjOWunSIsInYiOiLokIzlrp0ifSx7Im4iOiLlj6Tpo47mnYPosIsiLCJ2Ijoi5Y+k6aOO5p2D6LCLIn0seyJuIjoi6IGM5Zy6IiwidiI6IuiBjOWcuiJ9LHsibiI6IuWlh+W5u+iEkea0niIsInYiOiLlpYflubvohJHmtJ4ifSx7Im4iOiLlvILog70iLCJ2Ijoi5byC6IO9In0seyJuIjoi5peg5pWM56We5Yy7IiwidiI6IuaXoOaVjOelnuWMuyJ9LHsibiI6IuWPpOmjjuiogOaDhSIsInYiOiLlj6Tpo47oqIDmg4UifSx7Im4iOiLkvKDmib/op4nphpIiLCJ2Ijoi5Lyg5om/6KeJ6YaSIn0seyJuIjoi546w6KiA55Sc5a6gIiwidiI6IueOsOiogOeUnOWuoCJ9LHsibiI6IuWlh+W5u+eIseaDhSIsInYiOiLlpYflubvniLHmg4UifSx7Im4iOiLkuaHmnZEiLCJ2Ijoi5Lmh5p2RIn0seyJuIjoi5Y6G5Y+y5Y+k5LujIiwidiI6IuWOhuWPsuWPpOS7oyJ9LHsibiI6IueOi+WmgyIsInYiOiLnjovlpoMifSx7Im4iOiLpq5jmiYvkuIvlsbEiLCJ2Ijoi6auY5omL5LiL5bGxIn0seyJuIjoi5aix5LmQ5ZyIIiwidiI6IuWoseS5kOWciCJ9XX1dLCLplKbpsqQiOlt7ImtleSI6ImFyZWEiLCJuYW1lIjoi5YiG57G7IiwidmFsdWUiOlt7Im4iOiLlhajpg6giLCJ2IjoiIn0seyJuIjoi5oOF5oSf5YWz57O7IiwidiI6IjEifSx7Im4iOiLmiJDplb/pgIbooq0iLCJ2IjoiMiJ9LHsibiI6IuWlh+W5u+W8guiDvSIsInYiOiIzIn0seyJuIjoi5oiY5paX54Ot6KGAIiwidiI6IjQifSx7Im4iOiLkvKbnkIbnjrDlrp4iLCJ2IjoiNSJ9LHsibiI6IuaXtuepuuepv+i2iiIsInYiOiI2In0seyJuIjoi5p2D6LCL6Lqr5Lu9IiwidiI6IjcifV19XSwi55Wq6IyEIjpbeyJrZXkiOiJhcmVhIiwibmFtZSI6IuWIhuexuyIsInZhbHVlIjpbeyJuIjoi54Ot5YmnIiwidiI6InZpZGVvc2VyaWVzX2hvdCJ9LHsibiI6IuaWsOWJpyIsInYiOiJmaXJzdG9ubGluZXRpbWVfbmV3In0seyJuIjoi6YCG6KKtIiwidiI6ImNhdGVfNzM5In0seyJuIjoi5oC76KOBIiwidiI6ImNhdGVfMjkifSx7Im4iOiLnjrDoqIAiLCJ2IjoiY2F0ZV8zIn0seyJuIjoi5omT6IS4IiwidiI6ImNhdGVfMTA1MSJ9LHsibiI6IumprOeUsiIsInYiOiJjYXRlXzI2NiJ9LHsibiI6IuixqumXqCIsInYiOiJjYXRlXzEwNTMifSx7Im4iOiLpg73luIIiLCJ2IjoiY2F0ZV8yNjEifSx7Im4iOiLnpZ7osaoiLCJ2IjoiY2F0ZV8yMCJ9XX1dLCLmmJ/oir0iOlt7ImtleSI6ImFyZWEiLCJuYW1lIjoi5YiG57G7IiwidmFsdWUiOlt7Im4iOiLliaflnLoiLCJ2IjoiMSJ9LHsibiI6IueDreaSreWJpyIsInYiOiIyIn0seyJuIjoi5Lya5ZGY5LiT5LqrIiwidiI6IjgifSx7Im4iOiLmmJ/pgInlpb3liaciLCJ2IjoiNyJ9LHsibiI6IuaWsOWJpyIsInYiOiIzIn0seyJuIjoi6Ziz5YWJ5Ymn5Zy6IiwidiI6IjUifV19XSwi6KW/6aWtIjpbeyJrZXkiOiJhcmVhIiwibmFtZSI6IuWIhuexuyIsInZhbHVlIjpbeyJuIjoi5YWo6YOoIiwidiI6IiJ9LHsibiI6IumDveW4giIsInYiOiI2OEDpg73luIIifSx7Im4iOiLpnZLmmKUiLCJ2IjoiNjhA6Z2S5pilIn0seyJuIjoi546w5Luj6KiA5oOFIiwidiI6IjgxQOeOsOS7o+iogOaDhSJ9LHsibiI6IuixqumXqCIsInYiOiI4MUDosarpl6gifSx7Im4iOiLlpKflpbPkuLsiLCJ2IjoiODBA5aSn5aWz5Li7In0seyJuIjoi6YCG6KKtIiwidiI6Ijc5QOmAhuiirSJ9LHsibiI6IuaJk+iEuOiZkOa4oyIsInYiOiI3OUDmiZPohLjomZDmuKMifSx7Im4iOiLnqb/otooiLCJ2IjoiODFA56m/6LaKIn1dfV0sIui9r+m4rSI6W3sia2V5IjoiYXJlYSIsIm5hbWUiOiLliIbnsbsiLCJ2YWx1ZSI6W3sibiI6IuWFqOmDqCIsInYiOiIifSx7Im4iOiLmiJjnpZ4iLCJ2Ijoi5oiY56WeIn0seyJuIjoi6YCG6KKtIiwidiI6IumAhuiirSJ9LHsibiI6IumcuOaAuyIsInYiOiLpnLjmgLsifSx7Im4iOiLnpZ7osaoiLCJ2Ijoi56We6LGqIn0seyJuIjoi6YO95biCIiwidiI6IumDveW4giJ9LHsibiI6IueOhOW5uyIsInYiOiLnjoTlubsifSx7Im4iOiLoqIDmg4UiLCJ2Ijoi6KiA5oOFIn1dfV0sIuS4g+eMqyI6W3sia2V5IjoiYXJlYSIsIm5hbWUiOiLliIbnsbsiLCJ2YWx1ZSI6W3sibiI6IuWFqOmDqCIsInYiOiIifSx7Im4iOiLmjqjojZAiLCJ2IjoiMCJ9LHsibiI6IuaWsOWJpyIsInYiOiItMSJ9LHsibiI6IumDveW4guaDheaEnyIsInYiOiIxMjczIn0seyJuIjoi5Y+k6KOFIiwidiI6IjEyNzIifSx7Im4iOiLpg73luIIiLCJ2IjoiNTcxIn0seyJuIjoi546E5bm75LuZ5L6gIiwidiI6IjEyODYifSx7Im4iOiLlpYflubsiLCJ2IjoiNTcwIn0seyJuIjoi5Lmh5p2RIiwidiI6IjU5MCJ9LHsibiI6IuawkeWbvSIsInYiOiI1NzMifSx7Im4iOiLlubTku6MiLCJ2IjoiNTcyIn0seyJuIjoi6Z2S5pil5qCh5ZutIiwidiI6IjEyODgifSx7Im4iOiLmrabkvqAiLCJ2IjoiMzcxIn0seyJuIjoi56eR5bm7IiwidiI6IjU5NCJ9LHsibiI6Iuacq+S4liIsInYiOiI1NTYifSx7Im4iOiLkuozmrKHlhYMiLCJ2IjoiMTI4OSJ9LHsibiI6IumAhuiirSIsInYiOiI0MDAifSx7Im4iOiLnqb/otooiLCJ2IjoiMzczIn0seyJuIjoi5aSN5LuHIiwidiI6Ijc5NSJ9LHsibiI6Iuezu+e7nyIsInYiOiI3ODcifSx7Im4iOiLmnYPosIsiLCJ2IjoiNzkwIn0seyJuIjoi6YeN55SfIiwidiI6Ijc4NCJ9LHsibiI6IuWls+aAp+aIkOmVvyIsInYiOiIxMjk0In0seyJuIjoi5omT6IS46JmQ5rijIiwidiI6IjcxNiJ9LHsibiI6IumXquWpmiIsInYiOiI0ODAifSx7Im4iOiLlvLrogIXlm57lvZIiLCJ2IjoiNDAyIn0seyJuIjoi6L+95aa754Gr6JGs5Zy6IiwidiI6IjcxNSJ9LHsibiI6IuWutuW6rSIsInYiOiI2NzAifSx7Im4iOiLpqaznlLIiLCJ2IjoiNTU4In0seyJuIjoi6IGM5Zy6IiwidiI6IjcyNCJ9LHsibiI6IuWuq+aWlyIsInYiOiIzNDMifSx7Im4iOiLpq5jmiYvkuIvlsbEiLCJ2IjoiMTI5OSJ9LHsibiI6IuWoseS5kOaYjuaYnyIsInYiOiIxMjk1In0seyJuIjoi5byC6IO9IiwidiI6IjcyNyJ9LHsibiI6IuWuheaWlyIsInYiOiIzNDIifSx7Im4iOiLmm7/ouqsiLCJ2IjoiNzEyIn0seyJuIjoi56m/5LmmIiwidiI6IjMzOCJ9LHsibiI6IuWVhuaImCIsInYiOiI3MjMifSx7Im4iOiLnp43nlLDnu4/llYYiLCJ2IjoiMTI5MSJ9LHsibiI6IuS8pueQhiIsInYiOiIxMjkzIn0seyJuIjoi56S+5Lya6K+d6aKYIiwidiI6IjEyOTAifSx7Im4iOiLoh7Tlr4wiLCJ2IjoiNDkyIn0seyJuIjoi5YG35ZCs5b+D5aOwIiwidiI6IjEyNTgifSx7Im4iOiLohJHmtJ4iLCJ2IjoiNTI2In0seyJuIjoi6LGq6Zeo5oC76KOBIiwidiI6IjYyNCJ9LHsibiI6IuiQjOWunSIsInYiOiIzNTYifSx7Im4iOiLmiJjnpZ4iLCJ2IjoiNTI3In0seyJuIjoi55yf5YGH5Y2D6YeRIiwidiI6IjgxMiJ9LHsibiI6Iui1mOWpvyIsInYiOiIzNiJ9LHsibiI6IuelnuWMuyIsInYiOiIxMjY5In0seyJuIjoi56We6LGqIiwidiI6IjM3In0seyJuIjoi5bCP5Lq654mpIiwidiI6IjEyOTYifSx7Im4iOiLlm6LlrqAiLCJ2IjoiNTQ1In0seyJuIjoi5qyi5Zac5Yak5a62IiwidiI6IjQ2NCJ9LHsibiI6IuWls+W4nSIsInYiOiI2MTcifSx7Im4iOiLpk7blj5EiLCJ2IjoiMTI5NyJ9LHsibiI6IuWFteeOiyIsInYiOiIyOCJ9LHsibiI6IuiZkOaBiyIsInYiOiIxNiJ9LHsibiI6IueUnOWuoCIsInYiOiIyMSJ9LHsibiI6IuaCrOeWkSIsInYiOiIyNyJ9LHsibiI6IuaQnueskSIsInYiOiI3OTMifSx7Im4iOiLngbXlvIIiLCJ2IjoiMTI4NyJ9XX1dLCLnmb7luqYiOlt7ImtleSI6ImFyZWEiLCJuYW1lIjoi5YiG57G7IiwidmFsdWUiOlt7Im4iOiLpgIbooq0iLCJ2Ijoi6YCG6KKtIn0seyJuIjoi5oiY56WeIiwidiI6IuaImOelniJ9LHsibiI6IumDveW4giIsInYiOiLpg73luIIifSx7Im4iOiLnqb/otooiLCJ2Ijoi56m/6LaKIn0seyJuIjoi6YeN55SfIiwidiI6IumHjeeUnyJ9LHsibiI6IuWPpOijhSIsInYiOiLlj6Too4UifSx7Im4iOiLoqIDmg4UiLCJ2Ijoi6KiA5oOFIn0seyJuIjoi6JmQ5oGLIiwidiI6IuiZkOaBiyJ9LHsibiI6IueUnOWuoCIsInYiOiLnlJzlrqAifSx7Im4iOiLnpZ7ljLsiLCJ2Ijoi56We5Yy7In0seyJuIjoi6JCM5a6dIiwidiI6IuiQjOWunSJ9XX1dfQ=="; + +let xingya_headers = {}; +function base64Encode(text) { + return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text)); +} +function base64Decode(text) { + return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text)); +} +async function request(url, options = {}) { + const { method = 'GET', headers = {}, body, timeout = 5000 } = options; + const isPost = method.toUpperCase() === 'POST'; + let requestBody = body && typeof body === 'object' ? JSON.stringify(body) : body; + if (typeof req !== 'undefined') { + return (await req(url, { + method, + headers: { ...aggConfig.headers.default, ...headers }, + body: isPost ? requestBody : null, + timeout + })).content; + } +} +async function md5(str) { + return CryptoJS.MD5(str).toString(CryptoJS.enc.Hex).toLowerCase(); +} +function guid() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + const r = Math.random() * 16 | 0; + return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); + }); +} +function getFilterOptions() { + try { + return JSON.parse(base64Decode(filterOptionsB64)); + } catch (e) { + console.error('filterOptions 解码失败', e); + return {}; + } +} +async function getQmParamsAndSign() { + const sessionId = Date.now().toString(); + const data = { + "static_score": "0.8", + "uuid": "00000000-7fc7-08dc-0000-000000000000", + "device-id": "20250220125449b9b8cac84c2dd3d035c9052a2572f7dd0122edde3cc42a70", + "sourceuid": "aa7de295aad621a6", + "refresh-type": "0", + "model": "22021211RC", + "client-id": "aa7de295aad621a6", + "brand": "Redmi", + "sys-ver": "12", + "phone-level": "H", + "wlb-uid": "aa7de295aad621a6", + "session-id": sessionId + }; + const jsonStr = JSON.stringify(data); + const base64Str = base64Encode(unescape(encodeURIComponent(jsonStr))); + let qmParams = ''; + for (const c of base64Str) { + qmParams += aggConfig.charMap[c] || c; + } + const paramsStr = `AUTHORIZATION=app-version=10001application-id=com.duoduo.readchannel=unknownis-white=net-env=5platform=androidqm-params=${qmParams}reg=${aggConfig.keys}`; + const sign = await md5(paramsStr); + return { qmParams, sign }; +} +async function getHeaderX() { + const { qmParams, sign } = await getQmParamsAndSign(); + return { + 'net-env': '5', + 'reg': '', + 'channel': 'unknown', + 'is-white': '', + 'platform': 'android', + 'application-id': 'com.duoduo.read', + 'authorization': '', + 'app-version': '10001', + 'user-agent': 'webviewversion/0', + 'qm-params': qmParams, + 'sign': sign + }; +} +async function init(cfg) { + try { + const res = JSON.parse(await request(aggConfig.platform.星芽.loginUrl, { + method: 'POST', + headers: { 'User-Agent': 'okhttp/4.10.0', platform: '1', 'Content-Type': 'application/json' }, + body: JSON.stringify({ device: '24250683a3bdb3f118dff25ba4b1cba1a' }) + })); + const token = res?.data?.token || res?.token; + xingya_headers = token ? { ...aggConfig.headers.default, authorization: token } : aggConfig.headers.default; + } catch (e) { + xingya_headers = aggConfig.headers.default; + } + return true; +} +async function getXingyaHeaders() { + return xingya_headers.authorization ? xingya_headers : aggConfig.headers.default; +} +async function home(filter) { + const classes = aggConfig.platformList.map(p => ({ type_name: p.name, type_id: p.id })); + const filters = {}; + const filterOptions = getFilterOptions(); + aggConfig.platformList.forEach(item => { + const platformId = item.id; + if (filterOptions[platformId]) { + filters[platformId] = filterOptions[platformId]; + } + }); + return JSON.stringify({ class: classes, filters }); +} +async function homeVod() { return await recommend(); } +async function recommend() { + const randomPlat = aggConfig.platformList[Math.floor(Math.random() * aggConfig.platformList.length)]; + const platId = randomPlat.id; + const area = ruleFilterDef[platId]?.area || ''; + const videos = await category(platId, 1, false, { area }); + const list = JSON.parse(videos).list.slice(0, 10).map(v => ({ ...v, vod_content: `${randomPlat.name} | ${v.vod_remarks}` })); + return JSON.stringify({ list }); +} +async function category(tid, pg, filter, extend) { + const plat = aggConfig.platform[tid]; + const area = (extend?.area !== undefined ? extend.area : ruleFilterDef[tid]?.area) || ''; + const page = parseInt(pg) || 1; + const videos = []; + if (!plat) return JSON.stringify({ list: videos, page, pagecount: 1, limit: 0, total: 0 }); + try { + if (tid === '七猫') { + const sign = await md5(`operation=1playlet_privacy=1tag_id=${area}${aggConfig.keys}`); + const url = `${plat.host}${plat.url1}?tag_id=${area}&playlet_privacy=1&operation=1&sign=${sign}`; + const res = JSON.parse(await request(url, { headers: { ...await getHeaderX(), ...aggConfig.headers.default } })); + (res?.data?.list || []).forEach(i => videos.push({ + vod_id: `七猫@${encodeURIComponent(i.playlet_id)}`, + vod_name: i.title, + vod_pic: i.image_link, + vod_remarks: `${i.total_episode_num}集` + })); + } else if (tid === '百度') { + const url = `${plat.host}${plat.url1.replace('fyclass', area).replace('fypage', page)}`; + const res = JSON.parse(await request(url)); + if (res?.data) videos.push(...res.data.map(i => ({ + vod_id: `百度@${i.id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `更新至${i.totalChapterNum}集` + }))); + } else if (tid === '锦鲤') { + const res = JSON.parse(await request(plat.host + plat.search, { method: 'POST', body: JSON.stringify({ page, limit: 24, type_id: area, keyword: '' }) })); + if (res?.data?.list) videos.push(...res.data.list.map(i => ({ + vod_id: `锦鲤@${i.vod_id}`, vod_name: i.vod_name, vod_pic: i.vod_pic, vod_remarks: `${i.vod_total}集` + }))); + } else if (tid === '番茄') { + const sessionId = new Date().toISOString().slice(0, 16).replace(/-|T:/g, ''); + let url = `${plat.host}${plat.url1}?change_type=0&selected_items=${area}&tab_type=8&cell_id=6952850996422770718&version_tag=video_feed_refactor&device_id=1423244030195267&aid=1967&app_name=novelapp&ssmix=a&session_id=${sessionId}`; + if (page > 1) url += `&offset=${(page - 1) * 12}`; + const res = JSON.parse(await request(url)); + const items = res?.data?.cell_view?.cell_data || (Array.isArray(res?.data) ? res.data : []); + items.forEach(i => { + const v = i.video_data?.[0] || i; + videos.push({ vod_id: `番茄@${v.series_id || v.book_id || ''}`, vod_name: v.title, vod_pic: v.cover || v.horiz_cover, vod_remarks: v.sub_title || '' }); + }); + } else if (tid === '星芽') { + const headers = await getXingyaHeaders(); + const url = `${plat.host}${plat.url1}=${area}&type=1&class2_ids=0&page_num=${page}&page_size=24`; + const res = JSON.parse(await request(url, { headers })); + if (res?.data?.list) videos.push(...res.data.list.map(i => ({ + vod_id: `星芽@${plat.host}${plat.url2}?theater_parent_id=${i.theater.id}`, + vod_name: i.theater.title, vod_pic: i.theater.cover_url, vod_remarks: `${i.theater.total}集` + }))); + } else if (tid === '西饭') { + const [typeId, typeName] = area.split('@'); + const ts = Math.floor(Date.now() / 1000); + const url = `${plat.host}${plat.url1}?reqType=aggregationPage&offset=${(page - 1) * 30}&categoryId=${typeId}&quickEngineVersion=-1&scene=&categoryNames=${encodeURIComponent(typeName || '')}&categoryVersion=1&density=1.5&pageID=page_theater&version=2001001&androidVersionCode=28&requestId=${ts}aa498144140ef297&appId=drama&teenMode=false&userBaseMode=false&session=eyJpbmZvIjp7InVpZCI6IiIsInJ0IjoiMTc0MDY1ODI5NCIsInVuIjoiT1BHXzFlZGQ5OTZhNjQ3ZTQ1MjU4Nzc1MTE2YzFkNzViN2QwIiwiZnQiOiIxNzQwNjU4Mjk0In19&feedssession=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dHlwIjowLCJidWlkIjoxNjMzOTY4MTI2MTQ4NjQxNTM2LCJhdWQiOiJkcmFtYSIsInZlciI6MiwicmF0IjoxNzQwNjU4Mjk0LCJ1bm0iOiJPUEdfMWVkZDk5NmE2NDdlNDUyNTg3NzUxMTZjMWQ3NWI3ZDAiLCJpZCI6IjNiMzViZmYzYWE0OTgxNDQxNDBlZjI5N2JkMDY5NGNhIiwiZXhwIjoxNzQxMjYzMDk0LCJkYyI6Imd6cXkifQ.JS3QY6ER0P2cQSxAE_OGKSMIWNAMsYUZ3mJTnEpf-Rc`; + const res = JSON.parse(await request(url, { headers: aggConfig.headers.default })); + const elements = res?.result?.elements || []; + elements.forEach(s => (s.contents || []).forEach(v => { + const d = v.duanjuVo; + if (d) { + videos.push({ vod_id: `西饭@${d.duanjuId}#${d.source}`, vod_name: d.title, vod_pic: d.coverImageUrl, vod_remarks: `${d.total}集` }); + } + })); + } else if (tid === '软鸭') { + const url = `${plat.host}${plat.url1}/?keyword=${encodeURIComponent(area)}&page=${page}`; + const res = JSON.parse(await request(url)); + if (res?.data) videos.push(...res.data.map(i => { + const purl = `${i.title}@${i.cover}@${i.author}@${i.type}@${i.desc}@${i.book_id}`; + return { vod_id: `软鸭@${encodeURIComponent(purl)}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: i.type }; + })); + } else if (tid === '围观') { + const res = JSON.parse(await request(`${plat.host}${plat.search}`, { + method: 'POST', body: JSON.stringify({ audience: "全部受众", page, pageSize: 30, searchWord: "", subject: "全部主题" }) + })); + if (res?.data) videos.push(...res.data.map(i => ({ + vod_id: `围观@${i.oneId}`, vod_name: i.title, vod_pic: i.vertPoster, vod_remarks: `集数:${i.episodeCount} 播放:${i.viewCount}` + }))); + } else if (tid === '甜圈') { + const url = `${plat.host}${plat.url1}=${encodeURIComponent(area)}&offset=${page}`; + const res = JSON.parse(await request(url)); + if (res?.data) { + videos.push(...res.data.map(i => ({ + vod_id: `甜圈@${i.book_id}`, + vod_name: i.title, + vod_pic: i.cover, + vod_remarks: `${i.sub_title || ''}` + }))); + } + } + } catch (e) { } + return JSON.stringify({ list: videos, page, pagecount: page + 1, limit: videos.length, total: videos.length * (page + 1) }); +} +async function detail(id) { + const [platId, ...rest] = id.split('@'); + const did = rest.join('@'); + const plat = aggConfig.platform[platId]; + if (!plat) return JSON.stringify({ list: [{ vod_id: id, vod_name: '平台不支持', vod_play_url: '' }] }); + let vod = { vod_id: id, vod_name: '未知', vod_pic: '', vod_remarks: '', vod_content: '', vod_play_from: '', vod_play_url: '' }; + try { + if (platId === '七猫') { + const didDecoded = decodeURIComponent(did); + const sign = await md5(`playlet_id=${didDecoded}${aggConfig.keys}`); + const url = `${plat.url2}?playlet_id=${didDecoded}&sign=${sign}`; + const res = JSON.parse(await request(url, { headers: { ...await getHeaderX(), ...aggConfig.headers.default } })); + if (res?.data) { + const d = res.data; + vod = { + ...vod, + vod_name: d.title, + vod_pic: d.image_link, + vod_remarks: `${d.total_episode_num}集`, + vod_content: d.intro, + vod_play_from: '七猫短剧', + vod_play_url: (d.play_list || []).map(i => `${i.sort}$${i.video_url}`).join('#') + }; + } + } else if (platId === '百度') { + const res = JSON.parse(await request(`${plat.host}${plat.url2.replace('fyid', did)}`)); + if (res) vod = { ...vod, vod_name: res.title, vod_pic: res.data?.[0]?.cover, vod_remarks: `更新至:${res.total || 0}集`, vod_play_from: '百度短剧', vod_play_url: (res.data || []).map(i => `${i.title}$${i.video_id}`).join('#') }; + } else if (platId === '锦鲤') { + const res = JSON.parse(await request(`${plat.host}${plat.url2}/${did}`)); + if (res?.data) { + const list = res.data; + const urls = list.player ? Object.keys(list.player).map(k => `${k}$${list.player[k]}`) : []; + vod = { ...vod, vod_name: list.vod_name, vod_pic: list.vod_pic, vod_remarks: list.vod_remarks, vod_play_from: '锦鲤短剧', vod_play_url: urls.join('#') }; + } + } else if (platId === '番茄') { + const res = JSON.parse(await request(`${plat.url2}?book_id=${did}`)); + if (res?.data) { + const b = res.data.book_info; + const u = (res.data.item_data_list || []).map(i => `${i.title}$${i.item_id}`).join('#'); + vod = { ...vod, vod_name: b.book_name, vod_pic: b.thumb_url, vod_remarks: `更新至${res.data.item_data_list?.length}集`, vod_play_from: '番茄短剧', vod_play_url: u }; + } + } else if (platId === '星芽') { + const headers = await getXingyaHeaders(); + const res = JSON.parse(await request(did, { headers })); + if (res?.data) { + const d = res.data; + const u = (d.theaters || []).map(i => `${i.num}$${i.son_video_url}`).join('#'); + vod = { ...vod, vod_name: d.title, vod_pic: d.cover_url, vod_remarks: d.desc_tags + '', vod_play_from: '星芽短剧', vod_play_url: u }; + } + } else if (platId === '西饭') { + const [duanjuId, source] = did.split('#'); + const url = `${plat.host}${plat.url2}?duanjuId=${duanjuId}&source=${source}`; + const res = JSON.parse(await request(url)); + if (res?.result) { + const d = res.result; + const u = (d.episodeList || []).map(e => `${e.index}$${e.playUrl}`).join('#'); + vod = { ...vod, vod_name: d.title, vod_pic: d.coverImageUrl, vod_remarks: d.updateStatus === 'over' ? `${d.total}集 已完结` : `更新${d.total}集`, vod_play_from: '西饭短剧', vod_play_url: u }; + } + } else if (platId === '甜圈') { + const url = `${plat.host}${plat.url2}=${did}`; + const res = JSON.parse(await request(url)); + if (res) { + const u = (res.data || []).map(item => `${item.title}$${item.video_id}`).join('#'); + vod = { ...vod, vod_name: res.book_name, vod_pic: res.book_pic, vod_remarks: `${res.duration || ''}`, vod_content: res.desc || '', vod_play_from: '甜圈短剧', vod_play_url: u }; + } + } else if (platId === '软鸭') { + const didDecoded = decodeURIComponent(did); + const [title, img, author, type, desc, book_id] = didDecoded.split('@'); + const detailUrl = `${plat.host}${plat.url1}/?book_id=${book_id || did.split('@')[5]}`; + const res = JSON.parse(await request(detailUrl, { headers: aggConfig.headers.default })); + const u = (res.data?.video_list || []).map(e => `${e.title}$${e.video_id}`).join('#'); + vod = { ...vod, vod_name: title, vod_pic: img, vod_remarks: type, vod_content: desc, vod_play_from: '软鸭短剧', vod_play_url: u }; + } else if (platId === '围观') { + const res = JSON.parse(await request(`${plat.host}${plat.url2}?oneId=${did}&page=1&pageSize=1000`)); + if (res?.data?.length) { + const d = res.data; + vod = { ...vod, vod_name: d[0].title, vod_pic: d[0].vertPoster, vod_remarks: `共${d.length}集`, vod_play_from: '围观短剧', vod_play_url: d.map(e => `${e.title}第${e.playOrder}集$${e.playSetting}`).join('#') }; + } + } + + } catch (e) { vod.vod_name = '加载失败'; } + return JSON.stringify({ list: [vod] }); +} +async function play(flag, id) { + if (/七猫/.test(flag)) { + return JSON.stringify({ parse: 0, url: id }); + } + if (/百度/.test(flag)) { + const res = JSON.parse(await request(`https://api.jkyai.top/API/bddjss.php?video_id=${id}`)); + if (res?.data?.qualities) { + const order = ["1080p", "sc", "sd"]; + const qMap = { "1080p": "蓝光", "sc": "超清", "sd": "标清" }; + const urls = []; + order.forEach(k => { + const q = res.data.qualities.find(x => x.quality === k); + if (q) urls.push(qMap[k], q.download_url); + }); + return JSON.stringify({ parse: 0, url: urls }); + } + } + if (/甜圈/.test(flag)) { + return JSON.stringify({ parse: 0, url: `https://mov.cenguigui.cn/duanju/api.php?video_id=${id}&type=mp4` }); + } + if (/锦鲤/.test(flag)) { + try { + const html = await request(`${id}&auto=1`, { headers: { referer: 'https://www.jinlidj.com/' } }); + const match = html.match(/let data\s*=\s*({[^;]*});/); + if (match) { + const data = JSON.parse(match[1]); + if (data.url) return JSON.stringify({ parse: 0, url: data.url }); + } + } catch {} + } + if (/番茄/.test(flag)) { + try { + const res = JSON.parse(await request(`https://fqgo.52dns.cc/video?item_ids=${id}`)); + if (res?.data?.[id]?.video_model) { + const model = JSON.parse(res.data[id].video_model); + const mainUrl = model?.video_list?.video_1?.main_url; + if (mainUrl) return JSON.stringify({ parse: 0, url: base64Decode(mainUrl) }); + } + } catch {} + } + if (/软鸭/.test(flag)) { + const response = await request(`${aggConfig.platform.软鸭.host}/API/playlet/?video_id=${id}&quality=1080p`, { headers: aggConfig.headers.default }); + const res = JSON.parse(response); + return JSON.stringify({ parse: 0, url: res.data?.video?.url || '' }); + } + if (/围观/.test(flag)) { + try { + const ps = typeof id === 'string' ? JSON.parse(id) : id; + const urls = []; + if (ps?.super) urls.push("超清", ps.super); + if (ps?.high) urls.push("高清", ps.high); + if (ps?.normal) urls.push("流畅", ps.normal); + return JSON.stringify({ parse: 0, url: urls }); + } catch { return JSON.stringify({ parse: 0, url: id }); } + } + return JSON.stringify({ parse: 0, url: id }); +} +async function search(wd, quick, pg) { + const page = parseInt(pg) || 1; + const videos = []; + try { + const sign = await md5(`operation=2playlet_privacy=1search_word=${wd}${aggConfig.keys}`); + const url = `${aggConfig.platform.七猫.host}${aggConfig.platform.七猫.search}?search_word=${encodeURIComponent(wd)}&playlet_privacy=1&operation=2&sign=${sign}`; + const res = JSON.parse(await request(url, { + headers: { ...await getHeaderX(), ...aggConfig.headers.default }, + timeout: aggConfig.search.timeout + })); + (res?.data?.list || []).forEach(i => { + if (i.title.toLowerCase().includes(wd.toLowerCase())) { + videos.push({ + vod_id: `七猫@${encodeURIComponent(i.playlet_id)}`, + vod_name: i.title, + vod_pic: i.image_link, + vod_remarks: `七猫短剧|${i.total_episode_num}集` + }); + } + }); + } catch {} + const platforms = ['百度', '锦鲤', '番茄', '星芽', '西饭', '软鸭', '围观', '甜圈']; + for (const tid of platforms) { + const plat = aggConfig.platform[tid]; + try { + let res, data; + if (tid === '百度') { + res = await request(`${plat.host}${plat.search.replace('**', encodeURIComponent(wd)).replace('fypage', page)}`); + data = (JSON.parse(res)?.data || []).map(i => ({ vod_id: `百度@${i.id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `百度短剧|更新至${i.totalChapterNum}集` })); + } else if (tid === '锦鲤') { + res = await request(plat.host + plat.search, { method: 'POST', body: JSON.stringify({ page, limit: 30, keyword: wd }) }); + data = (JSON.parse(res)?.data?.list || []).map(i => ({ vod_id: `锦鲤@${i.vod_id}`, vod_name: i.vod_name, vod_pic: i.vod_pic, vod_remarks: `锦鲤短剧|${i.vod_total}集` })); + } else if (tid === '番茄') { + res = await request(`${plat.search}?keyword=${encodeURIComponent(wd)}&page=${page}`); + data = (JSON.parse(res)?.data || []).map(i => ({ vod_id: `番茄@${i.series_id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `番茄短剧|${i.sub_title}` })); + } else if (tid === '星芽') { + const headers = await getXingyaHeaders(); + res = await request(plat.host + plat.search, { method: 'POST', headers, body: JSON.stringify({ text: wd }) }); + data = (JSON.parse(res)?.data?.theater?.search_data || []).map(i => ({ vod_id: `星芽@${plat.host}${plat.url2}?theater_parent_id=${i.id}`, vod_name: i.title, vod_pic: i.cover_url, vod_remarks: `星芽短剧|${i.total}集 播放:${i.play_amount_str}` })); + } else if (tid === '西饭') { + const ts = Math.floor(Date.now() / 1000); + const url = `${plat.host}${plat.search}?reqType=search&offset=${(page - 1) * 30}&keyword=${encodeURIComponent(wd)}&quickEngineVersion=-1&scene=`; + res = await request(url); + data = (JSON.parse(res)?.result?.elements || []).map(vod => { + const dj = vod.duanjuVo || {}; + return { vod_id: `西饭@${dj.duanjuId}#${dj.source}`, vod_name: dj.title, vod_pic: dj.coverImageUrl, vod_remarks: `西饭短剧|${dj.total}集` }; + }); + } else if (tid === '软鸭') { + res = await request(`${plat.host}${plat.search}/?keyword=${encodeURIComponent(wd)}&page=${page}`); + data = (JSON.parse(res)?.data || []).map(i => { + const purl = `${i.title}@${i.cover}@${i.author}@${i.type}@${i.desc}@${i.book_id}`; + return { vod_id: `软鸭@${encodeURIComponent(purl)}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `软鸭短剧|${i.type}` }; + }); + } else if (tid === '围观') { + res = await request(`${plat.host}${plat.search}`, { + method: 'POST', + body: JSON.stringify({ audience: "", page, pageSize: 30, searchWord: wd, subject: "" }) + }); + data = (JSON.parse(res)?.data || []).map(i => ({ vod_id: `围观@${i.oneId}`, vod_name: i.title, vod_pic: i.vertPoster, vod_remarks: `围观短剧|集数:${i.episodeCount} 播放:${i.viewCount}` })); + } else if (tid === '甜圈') { + const url = `${plat.host}${plat.search}=${encodeURIComponent(wd)}&offset=${page}`; + res = await request(url); + data = (JSON.parse(res)?.data || []).map(i => ({ + vod_id: `甜圈@${i.book_id}`, + vod_name: i.title, + vod_pic: i.cover, + vod_remarks: `甜圈短剧|${i.sub_title || '无简介'}` + })); + } + if (data) videos.push(...data.filter(v => v.vod_name?.toLowerCase().includes(wd.toLowerCase()))); + } catch {} + } + return JSON.stringify({ + list: videos, + page, + pagecount: page + 1, + limit: videos.length, + total: videos.length * (page + 1) + }); +} +export function __jsEvalReturn() { + return { init, home, homeVod, category, detail, play, proxy: null, search }; +} diff --git a/欧歌/json/韩剧看看.json b/欧歌/json/韩剧看看.json deleted file mode 100644 index d1bc4dd..0000000 --- a/欧歌/json/韩剧看看.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "作者": "摄氏零度", - "站名": "XBPQ影视", - "请求头": "User-Agent$MOBILE_UA", - "编码": "UTF-8", - "嗅探词": ".mp4#.m3u8#.flv", - "过滤词": "", - "主页url": "https://www.hanjukankan.com/", - "首页": "120", - "起始页": "1", - "分类url": "https://www.hanjukankan.com/xvs{cateId}xat{area}xbt{by}xct{class}xdt{lang}xet{letter}xftxgtxht{catePg}atbtct{year}.html;;mrc", - "分类": "韩国剧集$1#韩国电影$2#韩国综艺$3", - "数组": "/xvd&&", - "标题": "title=\"&&\"", - "图片": "data-original=\"&&\"", - "副标题": "module-item-note\">&&", - "线路标题": ">&&", - "影片年代": ".html\">&&", - "影片地区": "*xbtxctxdtxetxftxgtxhtatbtct.html\">&&", - "影片类型": "*xdtxetxftxgtxhtatbtct.html\">&&", - "导演": "导演:&&", - "主演": "主演:&&", - "简介": "请勿相信影片中的广告👉+

&&

", - "倒序": "0", - "播放列表": "", - "播放标题": ">&&", - "搜索标题": "title=\"&&\"", - "搜索图片": "data-original=\"&&\"", - "搜索副标题": "module-item-note\">&&200){for(let i=2;i200){for(let i=2;i