Compare commits

...

39 Commits

Author SHA1 Message Date
lianes777 5848102e3e 上传文件至 'js' 2025-05-05 01:09:51 +00:00
lianes777 2929a73c57 更新 'js/config' 2025-05-05 01:07:46 +00:00
lianes777 a766b0b15b 上传文件至 'js' 2025-05-05 01:06:51 +00:00
lianes777 15c77e5ff0 上传文件至 'js' 2025-05-05 01:06:32 +00:00
lianes777 366cc6a996 上传文件至 'js' 2025-05-05 01:06:09 +00:00
lianes777 3cf5f76446 上传文件至 'js' 2025-05-05 01:05:30 +00:00
lianes777 3798e4fd6d 上传文件至 'js' 2025-05-05 01:04:59 +00:00
lianes777 0f2fec6490 上传文件至 'js' 2025-05-05 01:04:38 +00:00
lianes777 a0a595cbf5 上传文件至 'js' 2025-05-05 01:04:19 +00:00
lianes777 978319694b 上传文件至 'js' 2025-05-05 01:03:59 +00:00
lianes777 0dc48394a6 更新 'jity' 2025-05-05 01:02:26 +00:00
lianes777 d8be7bafc5 更新 'test0' 2025-05-05 00:58:56 +00:00
lianes777 4beefe3fa0 上传文件至 '' 2025-05-05 00:55:26 +00:00
lianes777 54c173306a 上传文件至 '' 2025-05-04 10:28:30 +00:00
lianes777 e468165c1b 上传文件至 '' 2025-05-04 10:18:08 +00:00
lianes777 3544ef3d83 上传文件至 'lib' 2025-05-04 03:40:03 +00:00
lianes777 0a86d7051e 更新 'jity' 2025-05-04 03:38:45 +00:00
lianes777 bfddf5e2c7 上传文件至 'lib' 2025-05-04 03:35:41 +00:00
lianes777 842114cee1 上传文件至 '' 2025-05-03 13:21:04 +00:00
lianes777 e64927142e 更新 'jity' 2025-05-02 23:54:33 +00:00
lianes777 dafa659bcd 更新 'jity' 2025-05-02 19:41:33 +00:00
lianes777 8579b2839c 上传文件至 'lib' 2025-05-02 10:56:25 +00:00
lianes777 8e77da5c66 更新 'jity' 2025-05-02 05:29:18 +00:00
lianes777 b2256f0629 更新 'jity' 2025-05-02 05:25:21 +00:00
lianes777 e8b5ad3ee0 更新 'js/tx4k.js' 2025-05-02 05:13:56 +00:00
lianes777 bd1c0866d5 更新 'js/tx.js' 2025-05-02 05:12:50 +00:00
lianes777 05af5667a4 上传文件至 'js' 2025-05-02 05:11:55 +00:00
lianes777 9a9b980b27 上传文件至 'js' 2025-05-02 05:11:32 +00:00
lianes777 438ba332d2 上传文件至 'lib' 2025-05-02 05:10:16 +00:00
lianes777 daf5cff1d0 更新 'lib/tx.js' 2025-05-02 04:49:21 +00:00
lianes777 cd9c541453 更新 'jity' 2025-05-02 04:43:27 +00:00
lianes777 d8d2e1bdf9 上传文件至 'js' 2025-05-01 07:42:58 +00:00
lianes777 0879d7e981 上传文件至 'lib' 2025-05-01 06:32:09 +00:00
lianes777 e0fbc6174d 更新 'laji' 2025-05-01 06:28:32 +00:00
lianes777 d357da9ca4 更新 'jity' 2025-05-01 06:20:08 +00:00
lianes777 dbee32afaf 上传文件至 '' 2025-05-01 06:11:43 +00:00
lianes777 e3286f5910 上传文件至 'lib' 2025-05-01 02:28:40 +00:00
lianes777 2cf2c1ca85 上传文件至 'lib' 2025-05-01 02:00:47 +00:00
lianes777 7c36bf2733 上传文件至 '' 2025-04-30 04:19:04 +00:00
87 changed files with 54077 additions and 2008 deletions

BIN
250501.jar Normal file

Binary file not shown.

BIN
XBPQ.jar

Binary file not shown.

76
drpy2.js Normal file

File diff suppressed because one or more lines are too long

3108
drpy3.js Normal file

File diff suppressed because it is too large Load Diff

BIN
duo.jar Normal file

Binary file not shown.

BIN
feimao0422.jar Normal file

Binary file not shown.

BIN
fty0504.jar Normal file

Binary file not shown.

886
jity
View File

@ -1,582 +1,424 @@
{
"spider": "./0318.jar",
"sites":[
{
"spider": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1745288510700/feimao0422.jar;md5;b40f328ddc5becefbfca81db7bdca250",
//"spider": "./feimao0422.jar;md5;b40f328ddc5becefbfca81db7bdca250",
//"spider": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar",
//"wallpaper": "https://git.acwing.com/lianes777/la/-/raw/main/fu.jpg",
"wallpaper": "https://gitee.com/arthroscopic-eye/jgy/raw/master/zw.png",
//"wallpaper": "https://gitee.com/arthroscopic-eye/jgy/raw/master/caise.png",
//"wallpaper": "https://d.kstore.dev/download/6670/huaibiao.png",
//"wallpaper": "https://bing.img.run/rand.php",
//"wallpaper": "https://深色壁纸.xxooo.cf/",
//"wallpaper": "./szxc.png",
"warningText": "欢迎使用,长按主页 “🏠云.影.库” 可刷新更新后的节目源",
{"key":"T4-caiji","name":"🐭 影视┃聚合","type":4,"api":"https://catbox.n13.club/t9/caiji.php"},
{"key": "🔥热","name": "🔥 天天┃蓝光","type": 3,"api": "csp_TTian","jar": "./yunqj250217.jar","playerType": 1,"ext": "caHR0cDovL3YucmJvdHYuY24="},
{"key": "文才","name": "☀ 四季┃影界","type": 3,"api": "csp_JpysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key":"csp_Tvyb","name":"🌈 四季┃快播","type":3,"api":"csp_Tvyb","playerType":2,"searchable":1,"quickSearch":1,"filterable":1,"ext":"http://www.tvyun01.com/","jar": "./202501.jar"},
{"key": "csp_SuBaiBai","name": "👌 四季┃素秒","type": 3,"api": "csp_SuBaiBai","ext": "http://subaibai.com","jar": "./PandaQ250212.jar"},
{"key": "来看","name": "🏔️ 四季┃来看","type": 3,"api": "csp_Lkdy","jar": "./PandaQ250227c.jar"},
{"key": "csp_Lkdy","name": "📣 四季┃影源","type": 3,"api": "csp_Lkdy","jar": "./Feimao250104.jar"},
{"key": "瓜子","name": "🍉 四季┃瓜子","type": 3,"api": "csp_Gz360","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "./202501.jar"},
//{"key": "瓜子","name": "🍉 四季┃瓜子","type": 3,"api": "csp_GuaziGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "素白白","name": "🔰 四季┃黑白","type": 3,"api": "csp_SubaibaiGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "糯米","name": "🍓 四季┃草莓","type": 3,"api": "csp_NmysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "小苹果","name": "🍎 四季┃果果","type": 3,"api": "csp_XpgGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "时常","name": "🐥 四季┃时尚","type": 3,"api": "csp_ShiChangGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "浪酷版","name": "👑 四季┃浪酷","type": 3,"api": "csp_TianTianGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"site": 2},"timeout": 10,"jar": "./ok0425.jar"},
{"key": "爱看Bot","name": "⛅️ 四季┃阳光","type": 3,"api": "csp_IkanbotGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "热播","name": "👌 四季┃精品","type": 3,"api": "csp_TianTianGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"site": 0},"timeout": 10,"jar": "./ok0425.jar"},
{"key": "天天","name": "📅 四季┃天时","type": 3,"api": "csp_TianTianGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"site": 1},"timeout": 10,"jar": "./ok0425.jar"},
{"key": "星芽短剧","name": "💖星芽┃短剧","type": 3,"api": "csp_AppXYGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "甜圈短剧","name": "🌸甜圈┃短剧","type": 3,"api": "csp_TianQuanGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key": "韩圈","name": "🦄 四季┃韩.剧","type": 3,"api": "csp_HanXiaoQuanGuard","playerType": 2,"searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 10,"jar": "./ok0425.jar"},
{"key":"csp_Kuaikan","name":"👀 四季┃快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1,"jar": "./202501.jar"},
{"key": "nk","name": "️🌈 四季┃耐看","type": 3,"api": "csp_WebNK","jar": "./nk.jar","searchable": 0,"changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKewpvDncOpw57Cp8OnwphXXFDCoMOnw6PDqcKhbVBXwovlh77phZvmkJ/lkZzCpuWGn+S9h+WQp2rlv6roqLnotr7mvInnrZPCkFdcUMKgw5fDn8Ocw6zCrMKgwqR7w57DrMKhwrPCmlrCp2VlwqrCo8Kswq3CslrCrQ=="
},
{"key": "海纳TV","name": "🌺 四季┃海纳","type": 3,"api": "csp_XBPQ","jar": "./haina.jar",
"ext": {"主页url": "https://hainatv.net/",
"分类url": "https://hainatv.net/index.php/vod/show/area/{area}/by/{by}/id/{cateId}/lang/{lang}/letter/{letter}/page/{catePg}/year/{year}.html",
"分类": "电影$1#剧集$2#综艺$3#动漫$4#短剧$59#解说$64"
}
},
{"key": "ffzy","name": "🍄 四季┃平凡","type": 1,"api": "http://cj.ffzyapi.com/api.php/provide/vod/","searchable": 1,"quickSearch": 1,"filterable": 1,
"playurl": "json:http://110.42.3.99:880/rmm.php/?url=",
"jar": "./meow.php",
"categories": [
"国产动漫","国产剧","欧美剧","香港剧","韩国剧","台湾剧","日本剧","海外剧","泰国剧",
"动作片","喜剧片","科幻片","恐怖片","爱情片","剧情片","战争片","记录片",
"日韩动漫","欧美动漫","港台动漫","海外动漫",
"大陆综艺","港台综艺","日韩综艺","欧美综艺"
]
},
{"key":"csp_DouDou","name":"🔍 豆瓣┃热播","type":3,"api":"csp_DouDou","searchable":0,"quickSearch":0,"filterable":1,"jar": "./202501.jar"},
//{"key":"T4-douban","name":"影视-豆瓣","type":4,"api":"https://catbox.n13.club/t9/douban.php"},
{"key": "YGP","name": "💥 新影┃预告","type": 3,"api": "csp_YGP","searchable": 0,"quickSearch": 0,"changeable": 0,"jar": "./202501.jar"},
//{"key":"T4-yugaopian","name":"影视-预告片","type":4,"api":"https://catbox.n13.club/t9/yugaopian.php"},
{"key":"T4-2024热门","name":"🎧 音乐┃MV","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=2024"},
{"key":"T4-xiaogou","name":"🎧 音乐┃酷狗","type":4,"api":"https://catbox.n13.club/t9/xiaogou.php"},
{"key": "lziapi","name": " 💎 四季┃钻石","type": 1,"api": "http://cj.lziapi.com/api.php/provide/vod/","searchable": 1,"quickSearch": 1,"filterable": 0,"playurl": "json:https://lziplayer.com/?url=",
"categories": ["欧美剧","韩国剧","国产剧","国产动漫","泰国剧","台湾剧","香港剧","日本剧","动漫","体育","剧情片","动作片","爱情片","喜剧片"]
},
{"key": "zjys","name": "🏡 四季┃追剧","type": 3,"api": "csp_TTian","searchable": 1,"quickSearch": 1,"changeable": 1,"playerType": 1,
"ext": "daHR0cDovL3YubGt1eXMuY24=",
"jar": "http://m1839732.ca.caoni.ru/8/meow.php;md5;CC57F10CB80E1BC9DF179A6129BD07B3"
},
{"key": "糯米","name": "🍓糯米┃秒播","type": 3,"api": "csp_Nmyswv","searchable": 1,"quickSearch": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"changeable": 1
},
{"key": "tvys","name": "🏡 四季┃影视","type": 3,"api": "csp_XBPQ","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "./meow.php",
"ext": "http://www.meowtv.cn/xp/meow.php?file=tvyb"
},
{"key": "bfzy","name": "🌀 四季┃暴风","type": 1,"api": "https://bfzyapi.com/api.php/provide/vod/?ac=list",
"searchable": 1,"quickSearch": 1,"filterable": 1,
"jar": "./meow.php",
"categories": [
"国产剧","欧美剧","国产动漫","香港剧","台湾剧","日本剧","泰国剧","日本动漫","日本综艺",
"综艺频道","大陆综艺","港台综艺","新马泰综艺",
"纪录片","科幻片","喜剧片","战争片"
]
},
{"key": "csp_TianTian","name": "🦉 四季┃天天","type": 3,"api": "csp_AppRJ",
"jar": "./PandaQ250227c.jar",
"ext": "sHR2rlsfjI4L3t4RXQMknxhunFUlA4159TKiKvIPpfcM1xianxebcSLajBbwFymqC+z9WoGzQYbh7FSvh8KdiC0BKF0CalaPaCEMOZm+ClGEeNzXAaR0FnrV04SiB2NK"
},
{"key": "潮流","name": "🏜 四季┃经典","type": 3,"api": "csp_AppRJ",
"jar": "./PandaQ250227c.jar",
"ext": "sHR2rlsfjI4L3t4RXQMkn9mmg6Ofmy66+wcs9waIyn4hKqT9jG9s4kO6qzcu2OSqWS1/T+wfkqe+UwoipekwvcM11PTDrQqKYI8lmMXUc1vBHxp/2uWIw5HUoscBNWEb"
},
{"key": "梦回","name": "🌠 四季┃妞妞","type": 3,"api": "csp_AppRJ",
"ext": "sHR2rlsfjI4L3t4RXQMkn9NPgTvCXvJVoUvXJHT6PqBNTg88Q5I4mc95m2RizprWhdAIQNMU/HShly4WRNzUsfhvqzHXHhHD57G7QagNV0Cx+WDSBgm0uZMAbZVHmzjM",
"jar": "./PandaQ250227c.jar"
},
{"key": "csp_Siren","name": "🎉️ 四季┃影城","type": 3,"api": "csp_Siren","jar": "./PandaQ250227c.jar"},
{"key": "csp_Kanke","name": "👨 四季┃看客","type": 3,"api": "csp_Kanke","ext": "http://www.guaziys.com","jar": "./PandaQ250227c.jar"},
{"key":"csp_Wetv","name":"🚗 四季┃滴滴","type":3,"api":"csp_Wetv","searchable":1,"quickSearch":1,"filterable":1,"jar": "./202502.jar"},
{"key": "csp_qiyou","name": "🎮 四季┃玩友","type": 3,"api": "csp_Qiyou","jar":"./xiaom250102.jar"},
{"key": "Wwys","name": "🐷 四季┃旺旺","type": 3,"api": "csp_Wwys","searchable": 1,"quickSearch": 1,"changeable": 1,"playerType": 2,
"ext": "https://www.wwgz.cn/",
"jar": "http://m1839732.ca.caoni.ru/8/meow.php;md5;CC57F10CB80E1BC9DF179A6129BD07B3"
},
{"key": "厂长","name": "📔厂长┃不卡","type": 3,"api": "csp_NewCz","playerType": 2,"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"quickSearch": 1,
"changeable": 1,
"ext": "https://www.czzy77.com/"
"sites": [
{
"key": "drpy_js_豆瓣",
"name": "🔍 豆瓣┃热播",
"type": 3,
"api": "csp_Douban",
"searchable": 0
},
{
"key": "苹果",
"name": "🍎苹果┃不卡",
"key": "豆瓣",
"name": "💥 新影┃预告",
"type": 3,
"api": "csp_LiteApple",
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"quickSearch": 1,
"changeable": 1
"api": "csp_YGP",
"playerType": 2,
"searchable": 0
},
{"key": "MTV","name": "🎧 音乐┃综合","type": 3,"api": "csp_Bili","style": {"type": "rect","ratio": 1.597},"searchable": 0,"quickSearch": 0,"changeable": 0,"ext": "./lib/MTV.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/202501.jar"},
{"key":"好趣网","name":"🛰️ 电视┃直播","type":3,"api":"./lib/drpy3hq.min.js","ext":"./lib/好趣网.js"},
{"key":"T4-qingting","name":"📻 音乐┃电台","type":4,"api":"https://catbox.n13.club/t9/qingting.php"},
//{"key":"T4-bookan","name":"📚 听书┃博看","type":4,"api":"https://catbox.n13.club/t9/bookan.php"},
{"key":"bookan","name":"📣 听书 | 博看","type":3,"api":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/MyCatBookan.js"},
{"key":"有声小说吧","name":"📚 有声┃小说","type":3,"api":"https://gitee.com/arthroscopic-eye/jgy/raw/master/js/drpy2.min.js","playerType":"2","searchable":0,"quickSearch":0,"filterable":0,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/js/有声小说吧.js","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/250501.jar"},
{"key":"T4-jieshuo","name":"📣 影视┃解说","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=影视解说"},
{"key": "csp_Jpys","name": "🥇 四季┃金牌","type": 3,"api": "csp_Jpys"},
{"key": "csp_Lkdy","name": "🌠 四季┃影源","type": 3,"api": "csp_Lkdy"},
{"key": "文才","name": "☀ 四季┃影界","type": 3,"api": "csp_JpysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key":"🔥热","name":"🔥 天天┃蓝光","type": 3,"api":"csp_TTian","jar":"./yunqj250217.jar","playerType": 1,"ext": "caHR0cDovL3YucmJvdHYuY24="},
{"key": "ttys","name": "🐧 腾讯┃4K","type": 3,"api": "http://150.158.112.123/js/dr/drpy2.min.js","ext": "./lib/tx.js"},
{"key": "糯米","name": "🍓 四季┃草莓","type": 3,"api": "csp_NmysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "csp_LiteApple","name": "🍎 四季┃苹果","type": 3,"api": "csp_LiteApple","searchable": 1,"quickSearch": 1,"filterable": 1},
{"key": "梦回","name": "🥝四季┃柠檬","type": 3,"api": "csp_AppRJ","ext": "sHR2rlsfjI4L3t4RXQMkn9NPgTvCXvJVoUvXJHT6PqBNTg88Q5I4mc95m2RizprWhdAIQNMU/HShly4WRNzUsfhvqzHXHhHD57G7QagNV0Cx+WDSBgm0uZMAbZVHmzjM"},
{"key":"csp_Lkdyhk","name":"💦 四季┃好看","type":3,"api":"csp_Lkdy","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "csp_SuBaiBai","name": "✌ 四季┃素秒","type": 3,"api": "csp_SuBaiBai","ext": "http://subaibai.com","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/PandaQ250212.jar"},
{"key": "csp_FourK","name": "🐿️ 四季┃凡客","type": 3,"api": "csp_FourK","ext": "https://www.4kvm.tv"},
{"key": "zjys","name": "🏡 四季┃追剧","type": 3,"api": "csp_TTian","searchable": 1,"quickSearch": 1,"changeable": 1,"playerType": 1,"ext": "daHR0cDovL3YubGt1eXMuY24=","jar": "http://m1839732.ca.caoni.ru/8/meow.php;md5;CC57F10CB80E1BC9DF179A6129BD07B3"},
{"key": "潮流","name": "🌟 四季┃热播","type": 3,"api": "csp_AppRJ","ext": "sHR2rlsfjI4L3t4RXQMkn9mmg6Ofmy66+wcs9waIyn4hKqT9jG9s4kO6qzcu2OSqWS1/T+wfkqe+UwoipekwvcM11PTDrQqKYI8lmMXUc1vBHxp/2uWIw5HUoscBNWEb"},
{"key": "csp_Wwys","name": "🌾️ 四季┃农民","type": 3,"api": "csp_Wwys","ext": "https://www.wwgz.cn"},
{"key": "菲儿","name": "🍁 四季┃菲菲","type": 3,"api": "csp_AppFerr","ext": "sHR2rlsfjI4L3t4RXQMkn/M3t4AXAKTrZj3tfhm1t/gMT3dOrHqIzUNqLUEOIDMvllTbX6e1hMhB2mfpOaCmHNOL1yBB3SmxNyqXlai90EIpdnwOOgCR9Z+YwCTj6ySjzJ2VBiH3eXeOGcavcNeVRA=="},
{"key": "csp_Quanwk","name": "🌟 四季┃全看","type": 3,"api": "csp_Quanwk","ext": "https://www.91qkw.com"},
{"key": "FreeOk","name": "👌 四季┃欧克","type": 3,"api": "csp_FreeOk","searchable": 1,"filterable": 1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/okspider.jar"},
{"key": "FourKTV","name": "👒 四季┃速播","type":3,"api":"csp_FourKTV","playerType": 2,"searchable":1,"quickSearch":1,"changeable":1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/okspider.jar"},
{"key": "时常","name": "🐥 四季┃时尚","type": 3,"api": "csp_ShiChangGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "浪酷版","name": "👑 四季┃浪酷","type": 3,"api": "csp_TianTianGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"site": 2},"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "zxzj","name": "⛅️ 四季┃在线","type": 3,"api": "csp_Zxzj","searchable": 1,"quickSearch": 1,"changeable": 1,"ext": "https://www.zxzjhd.com/","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/202501.jar"},
{"key":"csp_Ddys","name":"⏮️ 四季┃外剧","type":3,"api":"csp_Ddys","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "天天美剧网","name": "🗽 四季┃美.剧","type": 3,"api": "csp_AppYsV2","ext": "https://www.ttmja.com/api.php/app/"},
{"key": "韩圈","name": "🦄 四季┃韩.剧","type": 3,"api": "csp_HanXiaoQuanGuard","playerType": 2,"searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "星芽短剧","name": "💖 星芽┃短剧","type":3,"api":"csp_AppXYGuard","searchable":1,"quickSearch":1,"filterable":1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "甜圈短剧","name": "🌸 甜圈┃短剧","type": 3,"api": "csp_TianQuanGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key":"csp_Kuaikan","name":"👀 四季┃快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "XYQH_电影港","name": "🌠 电.影.港","type": 3,"api": "csp_XYQHiker","playerType": 2,"ext": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/%E7%94%B5%E5%BD%B1%E6%B8%AF.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/spider0517.jar"},
{"key":"T4-caiji","name":"🐭 聚合┃有广","type":4,"api":"https://catbox.n13.club/t9/caiji.php"},
{
"key": "Lib",
"name": "🌟立播┃秒播",
"key": "金牌影视",
"name": "🎬 影视|备用",
"type": 3,
"api": "csp_Libvio",
"api": "http://150.158.112.123/jar/py/jp.py",
"searchable": 1,
"quickSearch": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"changeable": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
"key": "zxzj",
"name": "🍊在线┃秒播",
"key": "drpy_js_金牌",
"name": "🎬 影视|备II",
"type": 3,
"api": "csp_Zxzj",
"timeout": 15,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"quickSearch": 1,
"changeable": 1,
"ext": "https://www.zxzjhd.com/"
"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js",
"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/金牌影视.js"
},
{"key":"cctv","name":"🇨🇳 央视┃频道","type":3,"api":"csp_CCTV","searchable":0,"filterable":0,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/央视大全.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
{"key": "cntv","name": "🇨🇳 央视┃片库","type": 3,"api": "./lib/cntv_open.js"},
//{"key":"T4-cntv","name":"☕️ 其他┃央视频道","type":4,"api":"https://catbox.n13.club/t9/cntv.php"},
{"key":"T4-cctv","name":"🇨🇳 央视┃精选","type":4,"api":"https://catbox.n13.club/t9/cctv.php"},
//{"key":"py_cctv_少儿","name":"🇨🇳央视动画","type":3,"api":"py_cctv_full","searchable":0,"quickSearch":0,"filterable":1,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/py_央视少儿.py","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
//{"key":"py_cctvdc","name":"🇨🇳央视片库","type":3,"api":"py_cctv","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/py_cctv.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
//{"key":"央视经典","name": "🇨🇳央视经典","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 1,"filterable": 1,"ext": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/哔哩经典.json"},
{"key": "Aid","name": "🚑急救┃教学","type": 3,"api": "csp_FirstAid","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8}},
{"key": "十六万MV听歌📣","name": "🎤 四季┃16万首MV","type": 3,"api": "./lib/16万hys.js","ext": "./lib/16万mv.js"},
{"key": "hipy_js_KTV歌厅[听]","name": "🎤 四季┃KTV","type": 3,"api": "https://ghproxy.cn/https://raw.githubusercontent.com/maoystv/api/refs/heads/main/JS/drpy2.min.js","searchable": 1,"quickSearch": 1,"filterable": 1,"order_num": 0,"ext": "./lib/KTV歌厅.js"},
{"key":"MV大全","name":"🎵 四季┃MV音乐","type":4,"api":"http://120.53.102.254/dsp/","searchable":1,"quickSearch":1,"filterable": 1},
{"key":"T4-djuu","name":"🎧 音乐┃DJ音乐","type":4,"api":"https://catbox.n13.club/t9/djuu.php"},
{"key":"酷奇MV","name":"🎸 酷奇┃MV","type":3,"api":"csp_XBPQ","searchable":0,"quickSearch":0,"filterable":1,"ext":{"主页url":"https://www.kuqimv.com","直接播放":"1","短视频":"1","分类":"华语高清$1#日韩精选$2#欧美MV$3#高清现场$4#影视MV$5#夜店视频$6#车模视频$7#热舞视频$8#美女写真$9#美女打碟$10","分类url":"https://www.kuqimv.com/play/{cateId}_{catePg}.html;;z","数组":"<li>&&</li>","标题":"title=\"&&\"","副标题":"target=\"play\">&&<","搜索模式":"1","搜索url":"https://www.kuqimv.com/search.php?key={wd}"}},
{"key":"csp_BookTing","name":"🎧 听书┃音频","type":3,"playerType":2,"api":"csp_BookTing","searchable":0,"ext":"https://m.ting275.com","style":{"type":"rect","ratio":1.333},"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/250501.jar"},
//{"key":"230ts","name":"🎧 爱上 | 听书","type":3,"api":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/230ts_book_open.js","ext":"https://wap.230ts.net"},
{"key": "ysxs","name": "📣 有声┃小说","type": 3,
"api": "https://gitee.com/arthroscopic-eye/jgy/raw/master/js/drpy2.min.js",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": "http://www.meowtv.cn/js/meow.php?file=ysxs"
},
{
"key": "csp_Bttoo",
"name": "🍄比特┃秒播",
"key": "哔哩直播",
"name": "🎥 哔哩┃直播",
"type": 3,
"api": "csp_Bttwoo",
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"quickSearch": 1,
"changeable": 1
"api": "http://150.158.112.123/js/dr/drpy2.min.js",
"ext": "https://image-c.weimobwmc.com/ol-OlSf/82d4b21cc0d8492898457b256010bd98.jpg"
},
{
"key": "贱贱",
"name": "🐭贱贱┃P2P",
"key": "健身",
"name": "💪 休闲┃健身",
"type": 3,
"api": "csp_JPJ",
"playerType": 2,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 0
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/31c6620e61954b1395d81ca96fcaaf95.jpg"
},
{
"key": "低端",
"name": "⏮️低端┃外剧",
"key": "国学",
"name": "📖 国学┃经典",
"type": 3,
"api": "csp_Ddrk",
"playerType": "2",
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"searchable": 1,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/1203091da6cb4dc58fb39e7af03ffbf3.jpg"
},
{
"key": "木星",
"name": "🌞木星┃多线",
"key": "百科",
"name": "📚 百科┃全书",
"type": 3,
"api": "csp_AppSx",
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1,
"ext": "FbjPcVZY48PN/RIZ5QqOrspjLMNAA5xaRiBa8vT6iB4RAYHOp3SFmQTE9v/hX3nlPzHB3X051Sp3XDoyUIN9aRARCZzZk1aDbikK"
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/830e33a6b9f140eab57b298f85b85cb1.jpg"
},
{
"key": "热播",
"name": "📺热播┃多线",
"key": "地理",
"name": "🌍 全球┃地理",
"type": 3,
"api": "csp_AppTT",
"playerType": 2,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1,
"ext": "AO7TcBkd8I/B5wQc4Qma+pU="
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/e5509817319e446ba2b13f3c3d6b0d2e.jpg"
},
{
"key": "萌米",
"name": "👀萌米┃多线",
"key": "科学",
"name": "🔬 科学┃发明",
"type": 3,
"api": "csp_AppTT",
"playerType": 2,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "./duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1,
"ext": "AO7TcBkd8I2bux0Y8Qze6tVlMg=="
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/15c23182b6fb415ea8314a6dc663b2d0.jpg"
},
{
"key": "欢视",
"name": "👓欢视┃多线",
"key": "戏曲",
"name": "🎭 戏曲┃大全",
"type": 3,
"api": "csp_AppTT",
"playerType": 2,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1,
"ext": "AO7TcBkd8I/B+Qsa7gqa+pU="
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/9a72ac3a9fa24d3f84cebcf008e4ed0d.jpg"
},
{
"key": "可可",
"name": "👻可可┃多线",
"key": "梨园",
"name": "🌸 梨园┃戏曲",
"type": 3,
"api": "csp_Kekys",
"playerType": 2,
"api": "http://150.158.112.123/js/dr/drpy2.min.js",
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"quickSearch": 1,
"changeable": 1
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/983ec95b8248461cad620063864b21cd.jpg"
},
{
"key": "Auete",
"name": "🏝奥特┃无广",
"key": "外语",
"name": "🌐 外语┃教学",
"type": 3,
"api": "csp_Auete",
"timeout": 15,
"searchable": 1,
"jar": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1738479478359/f0202.txt;md5;9dbf4e8b686d614d5d6ae609347742ab",
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"changeable": 1,
"ext": "https://auete.com/"
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/11ac56458b5049bbaddf42c9cea883da.jpg"
},
{
"key": "幼儿",
"name": "👶 幼儿┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/f6ca5e8d2f054df69a52d01b58bb9c5e.jpg"
},
{
"key": "小学",
"name": "🎒 小学┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/3bbf4afa303f403eb89b6489b1958f93.jpg"
},
{
"key": "初中",
"name": "🎓 初中┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/75760f1471bc4180a49ce13b7105d834.jpg"
},
{
"key": "高中",
"name": "📚 高中┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/53c803b0532c462fb2d2c3c641ba357b.jpg"
},
//{"key": "csp_骚火动漫","name": "💦 四季┃动漫","type": 3,"api": "csp_XBPQ","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./骚火动漫.json","jar": "./202501.jar"},
{"key": "csp_Bili_dashan","name": "💋 搭讪┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/搭讪.js"},
{"key": "天天美剧网","name": "🗽 四季┃美.剧","type": 3,"api": "csp_AppYsV2","ext": "https://www.ttmja.com/api.php/app/","jar": "./202501.jar"},
{"key": "csp_Bili__dapei","name": "💃 搭配┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/搭配.js"},
{"key":"csp_MeijuMi","name":"🇺🇸 美.剧.迷","type":3,"api":"csp_MeijuMi","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/spider0517.jar"},
{"key":"T4-mybili","name":"🅱️ 我的┃哔哩","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=我的哔哩"},
{"key": "csp_XBPQ_6V电影港","name": "🏭️ 电.影.港","type": 3,"api": "csp_XBPQ","searchable": 1,"quickSearch": 1,"filterable": 1,"jar" : "./bh.jar","ext":"./bh.json"},
{
"key": "哔哩哔哩",
"name": "🅱️ 哔哩┃分类",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 1,
"quickSearch": 1,
"changeable": 2,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/58cbbf5395d4468cb4180b57c2834102.jpg"
},
{"key": "csp_Jiaozi","name": "🍤 四季┃骄子","type": 3,"api": "csp_Jiaozi","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "./202501.jar"},
{"key":"T4-儿童口才","name":"🅱️ 儿童┃口才","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童口才"},
{"key":"T4-儿童拼音","name":"🅱️ 儿童┃拼音","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童拼音"},
{"key":"T4-儿童识字","name":"🅱️ 儿童┃识字","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童识字"},
{"key":"T4-儿童思维","name":"🅱️ 儿童┃思维","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童思维"},
{"key":"T4-儿童英语","name":"🅱️ 儿童┃英语","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童英语"},
{"key":"T4-儿童硬笔","name":"🅱️ 儿童┃硬笔","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童硬笔"},
{"key":"T4-儿童编程","name":"🅱️ 儿童┃编程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童编程"},
{"key":"T4-儿童武术","name":"🅱️ 儿童┃武术","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童武术"},
{"key":"T4-哔哩套餐1","name":"🅱️ 哔哩┃套餐1","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐1"},
{"key":"T4-哔哩套餐2","name":"🅱️ 哔哩┃套餐2","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐2"},
{"key":"T4-软件教程","name":"🅱️┃软件┃教程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=软件教程"},
{"key":"T4-合集","name":"🅱️ 哔哩┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=合集"},
{"key":"T4-美食","name":"🅱️ 天下┃美食","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=美食"},
{"key":"T4-中医","name":"🅱️ 中医┃理疗","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=中医"},
{"key":"T4-球类合集","name":"🅱️ 球类┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球类合集"},
{"key":"T4-球星合集","name":"🅱️ 球星┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球星合集"},
{"key": "xuexi","name": "🅱️ 线路┃学习","type": 4,"api": "https://catbox.n13.club/t9/xuexi.php"},
{"key": "白嫖者联盟2","name": "♻️ 联盟┃有广","type": 3,"api": "csp_XBPQ","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"分类url": "https://www.6699z.cn/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
"分类": "电影&剧集&综艺&动漫&短剧","分类值": "1&2&3&4&58",
"类型": "动作片$6#喜剧片$7#爱情片$8#高分经典科幻片$9#恐怖片$10#剧情片$11#战争片$12||国产剧$13#香港剧$28#恋爱不分国度$29#台湾剧$27#美国剧$31#泰国剧$33#其它剧$35||无||无||无"},
"jar": "./202501.jar"
},
{"key": "csp_Bili","name": "🅱️ 哔哩┃合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 1,"jar": "./XBPQ.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/B合集bili.js"},
{"key": "js_B站精简","name": "🅱️ 哔哩┃精简","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/B站精简.js"},
{"key":"央视经典","name":"🅱️ 央视|片库","type":3,"api":"csp_Bili","searchable":0,"quickSearch":1,"filterable":1,"jar": "./HCCX.jar","ext":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/央视经典.js"},
{"key": "有声小说js","name": "🅱️ 有声┃小说","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/有声小说吧.js","style": { "type": "rect", "ratio": 1},"searchable": 0,"quickSearch": 0,"changeable": 0 },
{"key": "csp_Bili_zyy","name": "🅱️ 中医┃药区","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./cat/中医.js"},
{"key": "csp_Bili_xuqu1","name": "🅱️ 戏曲┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/戏曲.js"},
{"key": "csp_Bili_TYjs","name": "🅱️ 体育┃健身","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/体育.js"},
{"key": "csp_Bili_xiangsh","name": "🅱️ 相声┃小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/相声.js"},
{"key": "csp_Bili_FBqx","name": "🅱️ 球队┃球星","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/球队.js"},
{"key": "csp_Bili_Meinvw","name": "🅱️ 美女┃舞蹈","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/美女.js"},
{"key": "csp_Bili_yanchh","name": "🅱️ 歌手┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/歌手.js"},
{"key": "csp_Bili_Nvtuan","name": "🅱️ 女团┃热舞","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/女团.js"},
{"key": "csp_Bili_MTV","name": "🅱️ 歌曲┃演唱","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/歌曲.js"},
{"key": "csp_Bili_Yinl2","name": "🅱️ 音悦┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/音悦.js"},
{"key": "dr_童趣","name": "🅱️ 童趣┃播视","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/童趣.js"},
{"key": "csp_Bili_youer","name": "🅱️ 幼儿┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/幼儿.js"},
{"key": "csp_Bili_xiaoxue","name": "🅱️ 小学┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/小学.js"},
{"key": "csp_Bili_czxx","name": "🅱️ 初中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/初中.js"},
{"key": "csp_Bili_gaozxx","name": "🅱️ 高中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/高中.js"},
{"key":"csp_Ikanbot","name":"👾 爱看┃有广","type":3,"api":"csp_Ikanbot","searchable":1,"quickSearch":1,"filterable":1,"jar": "./202502.jar"},
{"key": "xbpq_鲨鱼","name": "🐳 鲸鱼┃有广","type": 3,"api": "csp_XBPQ","ext": {"简介": "class=\"detail-sketch\"&&<br",
"分类url": "https://www.sdkuaiji.org/shayuyy/{cateId}/{area}/by/{by}/class/{class}/lang/{lang}/letter/{letter}/page/{catePg}/year/{year}.html",
"分类": "电影$dianying#电视剧$dianshiju#综艺$zongyi#动漫$dongmna",
"类型": "动作片$dongzhuo#喜剧片$xiju#爱情片$aiqing#科幻片$kehuan#剧情片$juqing#恐怖片$kongbu#战争片$zhanzheng#悬疑片$xuanyi#动画片$donghua#纪录片$jilu||大陆剧$dalu#欧美剧$oumei#港澳剧$gangao#韩国剧$hanguo#台湾剧$tw#泰国剧$taiguo#日本剧$rb#短剧$duanju||大陆综艺$dlzy#港台综艺$gtzy#日韩综艺$rhzy#欧美综艺$omzy||国产动漫$gcdm#日韩动漫$rhdm#欧美动漫$omdm#海外动漫$hwdm"
},"jar": "./202501.jar"},
{"key": "星辰xBPQ","name": "✨ 星辰┃有广","type": 3,"api": "csp_XBPQ","searchable": 1,"quickSearch": 1,"filterable": 1,
"ext": {"分类url": "https://citytv.cc/tv/dianying/area/{area}/by/{by}/class/{class}/id/{cateId}/page/{catePg}/year/{year}",
"分类": "电视剧$dianshiju#电影$dianying#动漫$dongman#综艺$zongyi#短剧$duanju",
"简介": "一年四季友情提醒🔺勿信广告,避免受骗🔺+class=\"detail-sketch\">&&</span>",
"线路数组": "#playlist&&</li>",
"线路标题": "四季💠+>&&</a>[排序:四季云播>阿里云播>]",
"播放标题": ">&&<[不包含:1080P]"
},"jar": "./202501.jar"},
{"key": "csp_yunbo","name": "☀ 精致┃有广","type": 3,"api": "csp_Tvyb","playerType": 2},
{"key":"优优xBPQ","name":"🏅优速┃有广","type":3,"api":"csp_XBPQ","searchable":1,"quickSearch":1,"filterable":1,"ext":{"分类url":"https://nuu.su/x/area/{area}/by/{by}/class/{class}/id/{cateId}/page/{catePg}/year/{year}.html","分类":"电视剧$2#电影$1#纪录$6#综艺$3#动漫$4","简介":"一年四季🏅提醒🔺勿信广告,避免损失🔺+p>&&</p>"},"jar": "./202501.jar"},
{"key":"T4-6v","name":"👌 新6V┃磁力","type":4,"api":"https://catbox.n13.club/t9/6v.php"},
{"key":"T4-xifan","name":"🍠 动漫┃稀饭","type":4,"api":"https://catbox.n13.club/t9/xifan.php"},
{"key":"T4-jijiu","name":"🚑 急救┃教学","type":4,"api":"https://catbox.n13.club/t9/jijiu.php"},
{"key":"T4-qingting","name":"🎧 音乐┃蜻蜓","type":4,"api":"https://catbox.n13.club/t9/qingting.php"},
{"key":"T4-qiertiyu","name":"🐧 鹅鹅┃体育","type":4,"api":"https://catbox.n13.club/t9/qietiyu.php"},
{"key":"T4-bookan","name":"📚 听书┃博看","type":4,"api":"https://catbox.n13.club/t9/bookan.php"},
{"key":"T4-360kq","name":"⚽ 体育┃看球","type":4,"api":"https://catbox.n13.club/t9/360kq.php"},
{"key":"T4-cctv","name":"☕️ 其他┃央视","type":4,"api":"https://catbox.n13.club/t9/cctv.php"},
{"key":"T4-cntv","name":"☕️ 其他┃央视2","type":4,"api":"https://catbox.n13.club/t9/cntv.php"},
{"key":"T4-blh","name":"📚 儿童| 贝乐虎","type":4,"api":"https://catbox.n13.club/t9/beilehu.php"},
{"key":"tuxiaobei","name":"📚 儿童 | 兔小贝","type":4,"api":"https://catbox.n13.club/t9/tuxiaobei.php"},
{"key":"T4-tangdou","name":"🎧 音乐┃糖豆","type":4,"api":"https://catbox.n13.club/t9/tangdou.php"},
{"key": "MTV","name": "🎧 音乐┃综合","type": 3,"api": "csp_Bili","style": {"type": "rect","ratio": 1.597},"searchable": 0,"quickSearch": 0,"changeable": 0,"ext": "./MTV.json","jar": "./202501.jar"},
//{"key":"djmv","name":"🎧 音乐┃综合","type":4,"api":"https://catbox.n13.club/t9/djmv.php"},
{"key":"T4-djuu","name":"🎧 音乐┃DJUU","type":4,"api":"https://catbox.n13.club/t9/djuu.php"},
{"key":"T4-jieshuo","name":"🅱️┃解说","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=影视解说"},
{"key":"T4-bmtv","name":"🅱┃MTV","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=bMTV"},
{"key":"T4-Blixs","name":"🅱️┃相声","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=Blixs"},
{"key":"T4-Blixq","name":"🅱️┃戏曲","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=Blixq"},
{"key":"T4-Bliych","name":"🅱️┃演唱会","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=Bliych"},
{"key":"T4-mybili","name":"🅱┃mybili","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=我的哔哩"},
{"key":"T4-bili","name":"🅱️┃哔哩","type":4,"api":"https://catbox.n13.club/t9/bili.php"},
{"key":"T4-waiyu","name":"🅱️┃外语","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=waiyu"},
{"key":"T4-bili1","name":"🅱️┃幼儿","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=少儿教育"},
{"key":"T4-bili2","name":"🅱️┃小学","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=小学课堂"},
{"key":"T4-bili3","name":"🅱️┃初中","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=初中课堂"},
{"key":"T4-bili4","name":"🅱️┃高中","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=高中课堂"},
{"key":"T4-小灯塔科学","name":"🅱️┃小灯塔科学","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=小灯塔科学"},
{"key":"T4-小灯塔地理","name":"🅱️┃小灯塔地理","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=小灯塔地理"},
{"key":"T4-小灯塔百科","name":"🅱️┃小灯塔百科","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=小灯塔百科"},
{"key":"T4-小灯塔国学","name":"🅱️┃小灯塔国学","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=小灯塔国学"},
{"key":"T4-儿童口才","name":"🅱️┃儿童口才","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童口才"},
{"key":"T4-儿童拼音","name":"🅱️┃儿童拼音","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童拼音"},
{"key":"T4-儿童识字","name":"🅱️┃儿童识字","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童识字"},
{"key":"T4-儿童思维","name":"🅱️┃儿童思维","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童思维"},
{"key":"T4-儿童英语","name":"🅱️┃儿童英语","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童英语"},
{"key":"T4-儿童硬笔","name":"🅱️┃儿童硬笔","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童硬笔"},
{"key":"T4-儿童编程","name":"🅱️┃儿童编程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童编程"},
{"key":"T4-儿童武术","name":"🅱️┃儿童武术","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童武术"},
{"key":"T4-哔哩套餐1","name":"🅱┃哔哩套餐1","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐1"},
{"key":"T4-哔哩套餐2","name":"🅱┃哔哩套餐2","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐2"},
{"key":"T4-软件教程","name":"🅱️┃软件教程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=软件教程"},
{"key":"T4-合集","name":"🅱️┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=合集"},
{"key":"T4-美食","name":"🅱️┃美食","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=美食"},
{"key":"T4-中医","name":"🅱️┃中医","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=中医"},
{"key":"T4-球类合集","name":"🅱️┃球类合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球类合集"},
{"key":"T4-球星合集","name":"🅱️┃球星合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球星合集"},
{"key": "xuexi","name": "📚 | 线路学习","type": 4,"api": "https://catbox.n13.club/t9/xuexi.php"}
],
"lives":[
{
"name": "外线主直播",
"type": 0,
"url": "https://notabug.org/jick/ji/raw/master/laji",
"playerType": 1,
"ua": "okhttp/3.15",
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "live.feimao",
"type": 0,
"playerType": 1,
"url": "http://我不是.肥猫.live/TV/tvzb.txt",
"ua": "okhttp/3.12.13",
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "https://epg.112114.xyz/logo/{name}.png"
},
{
"group":"redirect",
"channels":[
{
"name":"redirect",
"urls":[
"proxy://do=live&type=live&proxy=&url="
]
}
]
}
],
"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":"kk","hosts":["kuaikan"],"regex":["5","20.123","20.167","#EXT-X-DISCONTINUITY\\r*\\n*((?!#EXT-X-DISCONTINUITY)[\\s\\S])*?#EXT-X-KEY:METHOD((?!#EXT-X-DISCONTINUITY)[\\s\\S])*?#EXT-X-DISCONTINUITY"]},{"name":"yqk","hosts":["yqk"],"regex":["18.4","15.1666","#EXT-X-DISCONTINUITY\\r*\\n*((?!#EXT-X-DISCONTINUITY)[\\s\\S])*?#EXT-X-CUE-OUT((?!#EXT-X-DISCONTINUITY)[\\s\\S])*?#EXT-X-CUE-IN"]},{"name":"sn","hosts":["suonizy"],"regex":["#EXTINF.*?\\s+.*?original.*?\\.ts\\s+","15.1666","15.2666","16.3333","15.266667"]},{"name":"bf","hosts":["bfzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"xx","hosts":["aws.ulivetv.net"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz","yzzy1.play"],"regex":["18.5333","19.52","18.6666"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy","ffzy"],"regex":["25.0666","25.08","20.52","25.1","25.1999"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"nm","hosts":["toutiaovod.com"],"regex":["video/tos/cn"]},{"name":"cl","hosts":["magnet"],"regex":["最 新","直 播","更 新"]}],
"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.*",
"*.t4tv.hz.cz",
".*ulivetv.*"
]
},
{
"name": "海外看",
"hosts": [
"haiwaikan"
],
"regex": [
"8.1748",
"10.0099",
"10.3333",
"16.0599"
]
},
{
"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",
"25.08"
]
},
{"host":"www.djuu.com","rule":["mp4.djuu.com","m4a"]},{"host":"www.sharenice.net","rule":["huoshan.com","/item/video/"],"filter":[]},
{"host":"www.sharenice.net","rule":["sovv.qianpailive.com","vid="],"filter":[]},
{"host":"www.sharenice.net","rule":["douyin.com","/play/"]},
{"host":"m.ysxs8.vip","rule":["ysting.ysxs8.vip:81","xmcdn.com"],"filter":[]},
{"host":"hdmoli.com","rule":[".m3u8"]},{"host":"https://api.live.bilibili.com","rule":["bilivideo.com","/index.m3u8"],"filter":["data.bilibili.com/log/web","i0.hdslb.com/bfs/live/"]},
{"host":"www.agemys.cc","rule":["cdn-tos","obj/tos-cn"]},
{"host":"www.fun4k.com","rule":["https://hd.ijycnd.com/play","index.m3u8"]},
{"host":"zjmiao.com","rule":["play.videomiao.vip/API.php","time=","key=","path="]},
{
"name": "火山嗅探",
"hosts": [
"huoshan.com"
],
"regex": [
"item_id="
]
},
{
"name": "抖音嗅探",
"hosts": [
"douyin.com"
],
"regex": [
"is_play_url="
]
},
{
"name": "農民嗅探",
"hosts": [
"toutiaovod.com"
],
"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()"
]
},
{
"name": "磁力广告",
"hosts": [
"magnet"
],
"regex": [
"更多",
"社 區",
"x u u",
"最 新",
"直 播",
"更 新",
"社 区",
"有 趣",
"英皇体育",
"全中文AV在线",
"澳门皇冠赌场",
"哥哥快来",
"美女荷官",
"裸聊",
"新片首发",
"UUE29"
]
}
],
"parses":[
{"name":"聚合","type":3,"url":"Demo"},
{"name":"777","type":0,"url":"https://jx.777jiexi.com/player/?url="},
{"name":"杰森","type":0,"url":"https://jx.jsonplayer.com/player/?url="},
{"name":"战狼","type":0,"url":"https://jx.zhanlangbu.com/?url="},
{"name":"ok","type":0,"url":"https://okjx.cc/?url="},
{"name":"bozrc","type":0,"url":"https://jx.bozrc.com:4433/player/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":""}}},
{"name":"不累","type":0,"url":"https://blbfq.f3322.net/player/analysis.php?v=","ext":{"flag":["qiyi","qq","letv","sohu","youku","mgtv","bilibili","wasu","xigua","1905"]}},
{"name":"cod","type":0,"url":"https://ksksl.codjx.com/?url="},
{"name":"byg解析","type":0,"url":"https://byg.ziqj5.shop/?url="},
{"name":"xmflv","type":0,"url":"https://jx.xmflv.com/?url="},
{"name":"365","type":0,"url":"https://chaxun.truechat365.com/?url=","ext":{"flag":["qq","腾讯","qiyi","iqiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"]}},
{"name":"26db","type":0,"url":"http://vip.26db.cn/g/?url="},
{"name":"看看","type":0,"url":"https://jx.m3u8.pw/?url="},
{"name":"FreeOK","type":0,"url":"https://play.86516.tk/OKPlayer/?url="},
{"name":"free","type":0,"url":"https://h5.freejson.xyz/player/?url="}
],
"flags":["youku","qq","iqiyi","qiyi","letv","sohu","tudou","pptv","mgtv","wasu"],
"wallpaper": "https://bing.img.run/rand.php",
//"wallpaper": "https://api.likepoems.com/img/bing",
"disabled_wallpaper":"http://www.kf666888.cn/api/tvbox/img"
{"key":"Local","name":"🏠️ 本地┃读写","type":3,"api":"csp_Local","jar": "./202501.jar"}
],
"parses": [
{"name": " 🕵AI智能","type": 2,"url": "Parallel"},
{"name": " 🕵智能AI","type": 3,"url": "Demo"},
{"name":"🕵智能嗅探","type":3,"url":"Web"},
{"name": "🏅秒播","type": 1,"url": "https://api.huomiao.cc/api/?key=gPjVjH8BOGXaubw3WR&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","优播线路","腾播线路","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "🏅全能","type": 1,"url": "https://json.key521.cn/api/?key=df27d9ca9ec97e22c47f8565a50aa6f5&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","优播线路","腾播线路","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "🏅全能+","type": 1,"url": "https://www.m3u8.tv.cache.janan.net:4433/json2020.php?uid=M3U8.TV&token=88888888&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "AI+ 🕵腾讯",type": 1,"url": "http://117.50.183.202:8036/?ip=111.55.12.236&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": " 🕵AI+自动","type": 0,"url": "https://jx.m3u8.tv/jiexi/?url=","ext": {"flag": ["qq", "腾讯", "qiyi", "爱奇艺", "奇艺", "youku", "优酷", "mgtv", "芒果", "letv", "乐视", "pptv", "PPTV", "sohu", "bilibili", "哔哩哔哩", "哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
{"name": " 🕵免费.稍等","type": 3,"url": "Web"}
],
"flags": ["youku","qq","QQ","iqiyi","SPA","qiyi","letv","sohu","YuMi-vip","pptv","PPTV","mgtv","ltnb","rx","SLYS4k","tucheng","BYGA","luanzi","dxzy","QEYSS","aliyun","AliS","122","chuangying","CL4K","xfyun","wuduzy","wasu","bilibili","renrenmi","ppayun","haiwaikan","cool","dbm3u8","xmm","xigua","m1905","funshion","imgo","ruyi1080","ruyib1080"],
"ads": ["mozai.4gtv.tv","pv.vipwm.cc"],
"logo": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1716545739254/fc1b89e152cd4aa28d295107cb6c56c9.gif",
// "logo": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1716818643045/wexfnw.gif",
"lives": [
{
"name": "LIVE",
"type": 0,
"url": "https://d.kstore.dev/download/6670/laji",
"playerType": 1
},
{
"name": "港台",
"type": 0,
"url": "http://rihou.cc:567/gggg.nzk",
"playerType": 1
},
{
"name": "精简",
"type": 0,
"url": "https://gitee.com/arthroscopic-eye/jgy/raw/master/hn",
"playerType": 1
},
{
"name": "直播测-A",
"type": 0,
"url": "https://live.iptv365.org/live.txt",
"playerType": 1
},
{
"name": "直播测-B",
"type": 0,
"url": "https://live.zbds.top/tv/iptv4.txt",
"playerType": 1
},
{
"name": "中亚Ru",
"type": 0,
"url": "https://d.kstore.dev/download/6670/Ru",
"playerType": 1
},
{
"name": "备用.Not",
"type": 0,
"url": "https://notabug.org/jick/ji/raw/master/laji",
"playerType": 1
},
{
"name": "live备用",
"type": 0,
"url": "https://d.kstore.dev/download/11711/laji",
"playerType": 1
}
]
}

22
js/310直播.js Normal file
View File

@ -0,0 +1,22 @@
var rule = {
title:'310直播',
host:'http://www.310.tv',
url:'/?s=0&t=1&a=fyclass&g=fypage',
searchUrl:'',
searchable:0,
quickSearch:0,
class_name:'热门&足球&篮球',
class_url:'0&1&2',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:false,
lazy:'',
limit:6,
double:false,
推荐:'*',
一级:'.list_content a;.jiabifeng&&p:lt(5)&&Text;.feleimg img&&src;a&&t-nzf-o;a&&href',
二级:'*',
搜索:'',
}

30
js/88看球.js Normal file
View File

@ -0,0 +1,30 @@
var rule = {
title:'88看球',
// host:'http://www.88kanqiu.cc',
host:'http://www.88kanqiu.win',
url:'/match/fyclass/live',
searchUrl:'',
searchable:0,
quickSearch:0,
class_parse:'.nav-pills li;a&&Text;a&&href;/match/(\\d+)/live',
headers:{
'User-Agent':'PC_UA'
},
timeout:5000,
play_parse:true,
lazy:'',
limit:6,
double:false,
推荐:'*',
一级:'.list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href',
二级:{
"title":".game-info-container&&Text;.customer-navbar-nav li&&Text",
"img":"img&&src",
"desc":";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
"content":"div.game-time&&Text",
"tabs":"js:TABS=['实时直播']",
// "lists":"js:LISTS=[];input=input+'-url';let html=request(input);let data=JSON.parse(html);TABS.forEach(function(tab){let m3u=data;let d=m3u.map(function(it){return it.name+'$'+play_url+it.url});LISTS.push(d)});"
"lists":"js:LISTS=[];input=input+'-url';let html=request(input);let data=JSON.parse(html);TABS.forEach(function(tab){let m3u=data;let d=m3u.map(function(it){return it.name+'$'+it.url});LISTS.push(d)});"
},
搜索:'',
}

6401
js/B合集bili.js Normal file

File diff suppressed because it is too large Load Diff

121
js/B站精简.js Normal file

File diff suppressed because one or more lines are too long

BIN
js/HCCX.jar Normal file

Binary file not shown.

BIN
js/XBPQ.jar Normal file

Binary file not shown.

1
js/a8音乐.js Normal file
View File

@ -0,0 +1 @@
var rule={title:'A8音乐',host:'http://v.a8.com',url:'/category/fyclass?p=fypage',searchUrl:'/search?t=**',searchable:2,quickSearch:0,headers:{'User-Agent':'MOBILE_UA',},class_parse:'.categorys-inner li:gt(1):lt(7);a&&Text;a&&href;.*/(\\d+)',timeout:5000,limit:6,play_parse:true,lazy:'js:let html=request(input);let purl=jsp.pdfh(html,".video-js&&source&&src");input={jx:0,url:purl,parse:0}',推荐:'.v-list-body:eq(1)&&.v_item;*;*;*;*',一级:'.list-div&&.v_item;img&&alt;img&&data-original;.v-time&&Text;a&&href',二级:'*',搜索:'.v-list-body&&.v_item;*;*;*;*',}

1429
js/aqy.js Normal file

File diff suppressed because it is too large Load Diff

4501
js/bilibili.js Normal file

File diff suppressed because it is too large Load Diff

703
js/biliych.js Normal file
View File

@ -0,0 +1,703 @@
{
"classes": [{
"type_name": "演唱会筛选",
"type_id": "演唱会超清"
},
{
"type_name": "粤语",
"type_id": "粤语歌曲超清"
},
{
"type_name": "热榜",
"type_id": "2022年热们歌曲超清"
},
{
"type_name": "抖音神曲",
"type_id": "抖音神曲超清"
},
{
"type_name": "经典老歌",
"type_id": "经典老歌超清"
},
{
"type_name": "DJ",
"type_id": "DJ歌曲超清"
},
{
"type_name": "网红翻唱",
"type_id": "网红翻唱歌曲超清"
},
{
"type_name": "韩国女团",
"type_id": "韩国女团演唱会超清"
}
],
"cookie": "SESSDATA=01c79709%2C1711618905%2C244c3%2A91CjA9UUnRb_kJg03J5FqUbin76yMY90o1-ckJsM1ItQH21ns4hgcS6Le6oMR3SKtC18QSVmxSbGRhN3cyS3NReERsOHRfYVlhTWJKZjZyTF9wUWJXbjNfaF9qWklFMFpoeVg1ZUhFb0Q0MGFiN3FYd1N3UEFEY1oxX29IdmFSRVVLamcybGhhSkJnIIEC; bili_jct=e9d6e9df733afde2a03693d63a4e77dc; DedeUserID=186957646; DedeUserID__ckMd5=4f717c8832ee1e62; sid=elhiqom1",
"filter": {
"演唱会超清": [{
"key": "order",
"name": "排序",
"value": [{
"n": "综合排序",
"v": "0"
},
{
"n": "最多点击",
"v": "click"
},
{
"n": "最新发布",
"v": "pubdate"
},
{
"n": "最多弹幕",
"v": "dm"
},
{
"n": "最多收藏",
"v": "stow"
}
]
},
{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "演唱会超清"
},
{
"n": "A阿杜",
"v": "阿杜演唱会超清"
},
{
"n": "A阿黛尔",
"v": "阿黛尔演唱会超清"
},
{
"n": "BBeyond",
"v": "Beyond演唱会超清"
},
{
"n": "BBy2",
"v": "By2演唱会超清"
},
{
"n": "BBIGBANG",
"v": "BIGBANG演唱会超清"
},
{
"n": "B布兰妮",
"v": "布兰妮演唱会超清"
},
{
"n": "B坂井泉水",
"v": "坂井泉水演唱会超清"
},
{
"n": "C陈奕迅",
"v": "陈奕迅演唱会超清"
},
{
"n": "C蔡依林",
"v": "蔡依林演唱会超清"
},
{
"n": "C初音未来",
"v": "初音未来演唱会超清"
},
{
"n": "C蔡健雅",
"v": "蔡健雅演唱会超清"
},
{
"n": "C陈小春",
"v": "陈小春演唱会超清"
},
{
"n": "C草蜢",
"v": "草蜢演唱会超清"
},
{
"n": "C陈慧娴",
"v": "陈慧娴演唱会超清"
},
{
"n": "C崔健",
"v": "崔健演唱会超清"
},
{
"n": "C仓木麻衣",
"v": "仓木麻衣演唱会超清"
},
{
"n": "D戴荃",
"v": "戴荃演唱会超清"
},
{
"n": "D动力火车",
"v": "动力火车演唱会超清"
},
{
"n": "D邓丽君",
"v": "邓丽君演唱会超清"
},
{
"n": "D丁当",
"v": "丁当演唱会超清"
},
{
"n": "D刀郎",
"v": "刀郎演唱会超清"
},
{
"n": "D邓紫棋",
"v": "邓紫棋演唱会超清"
},
{
"n": "D戴佩妮",
"v": "戴佩妮演唱会超清"
},
{
"n": "D邓丽君",
"v": "邓丽君演唱会超清"
},
{
"n": "F飞儿乐队",
"v": "飞儿乐队演唱会超清"
},
{
"n": "F费玉清",
"v": "费玉清演唱会超清"
},
{
"n": "F费翔",
"v": "费翔演唱会超清"
},
{
"n": "F方大同",
"v": "方大同演唱会超清"
},
{
"n": "F房东的猫",
"v": "房东的猫演唱会超清"
},
{
"n": "F凤飞飞",
"v": "凤飞飞演唱会超清"
},
{
"n": "F凤凰传奇",
"v": "凤凰传奇演唱会超清"
},
{
"n": "G郭采洁",
"v": "郭采洁演唱会超清"
},
{
"n": "G光良",
"v": "光良演唱会超清"
},
{
"n": "G郭静",
"v": "郭静演唱会超清"
},
{
"n": "G郭富城",
"v": "郭富城演唱会超清"
},
{
"n": "H胡彦斌",
"v": "胡彦斌演唱会超清"
},
{
"n": "H胡夏",
"v": "胡夏演唱会超清"
},
{
"n": "H韩红",
"v": "韩红演唱会超清"
},
{
"n": "H黄品源",
"v": "黄品源演唱会超清"
},
{
"n": "H黄小琥",
"v": "黄小琥演唱会超清"
},
{
"n": "H花儿乐队",
"v": "花儿乐队演唱会超清"
},
{
"n": "H黄家强",
"v": "黄家强演唱会超清"
},
{
"n": "H后街男孩",
"v": "后街男孩演唱会超清"
},
{
"n": "J经典老歌",
"v": "经典老歌演唱会超清"
},
{
"n": "J贾斯丁比伯",
"v": "贾斯丁比伯演唱会超清"
},
{
"n": "J金池",
"v": "金池演唱会超清"
},
{
"n": "J金志文",
"v": "金志文演唱会超清"
},
{
"n": "J焦迈奇",
"v": "焦迈奇演唱会超清"
},
{
"n": "K筷子兄弟",
"v": "筷子兄弟演唱会超清"
},
{
"n": "L李玟",
"v": "李玟演唱会超清"
},
{
"n": "L林忆莲",
"v": "林忆莲演唱会超清"
},
{
"n": "L李克勤",
"v": "李克勤演唱会超清"
},
{
"n": "L刘宪华",
"v": "刘宪华演唱会超清"
},
{
"n": "L李圣杰",
"v": "李圣杰演唱会超清"
},
{
"n": "L林宥嘉",
"v": "林宥嘉演唱会超清"
},
{
"n": "L梁静茹",
"v": "梁静茹演唱会超清"
},
{
"n": "L李健",
"v": "李健演唱会超清"
},
{
"n": "L林俊杰",
"v": "林俊杰演唱会超清"
},
{
"n": "L李玉刚",
"v": "李玉刚演唱会超清"
},
{
"n": "L林志炫",
"v": "林志炫演唱会超清"
},
{
"n": "L李荣浩",
"v": "李荣浩演唱会超清"
},
{
"n": "L李宇春",
"v": "李宇春演唱会超清"
},
{
"n": "L洛天依",
"v": "洛天依演唱会超清"
},
{
"n": "L林子祥",
"v": "林子祥演唱会超清"
},
{
"n": "L李宗盛",
"v": "李宗盛演唱会超清"
},
{
"n": "L黎明",
"v": "黎明演唱会超清"
},
{
"n": "L刘德华",
"v": "刘德华演唱会超清"
},
{
"n": "L罗大佑",
"v": "罗大佑演唱会超清"
},
{
"n": "L林肯公园",
"v": "林肯公园演唱会超清"
},
{
"n": "LLadyGaga",
"v": "LadyGaga演唱会超清"
},
{
"n": "L旅行团乐队",
"v": "旅行团乐队演唱会超清"
},
{
"n": "M莫文蔚",
"v": "莫文蔚演唱会超清"
},
{
"n": "M毛不易",
"v": "毛不易演唱会超清"
},
{
"n": "M梅艳芳",
"v": "梅艳芳演唱会超清"
},
{
"n": "M迈克尔杰克逊",
"v": "迈克尔杰克逊演唱会超清"
},
{
"n": "N南拳妈妈",
"v": "南拳妈妈演唱会超清"
},
{
"n": "P朴树",
"v": "朴树演唱会超清"
},
{
"n": "Q齐秦",
"v": "齐秦演唱会超清"
},
{
"n": "Q青鸟飞鱼",
"v": "青鸟飞鱼演唱会超清"
},
{
"n": "R容祖儿",
"v": "容祖儿演唱会超清"
},
{
"n": "R任贤齐",
"v": "任贤齐演唱会超清"
},
{
"n": "S水木年华",
"v": "水木年华演唱会超清"
},
{
"n": "S孙燕姿",
"v": "孙燕姿演唱会超清"
},
{
"n": "S苏打绿",
"v": "苏打绿演唱会超清"
},
{
"n": "SSHE",
"v": "SHE演唱会超清"
},
{
"n": "S孙楠",
"v": "孙楠演唱会超清"
},
{
"n": "T陶喆",
"v": "陶喆演唱会超清"
},
{
"n": "T谭咏麟",
"v": "谭咏麟演唱会超清"
},
{
"n": "T田馥甄",
"v": "田馥甄演唱会超清"
},
{
"n": "T谭维维",
"v": "谭维维演唱会超清"
},
{
"n": "T逃跑计划",
"v": "逃跑计划演唱会超清"
},
{
"n": "T田震",
"v": "田震演唱会超清"
},
{
"n": "T谭晶",
"v": "谭晶演唱会超清"
},
{
"n": "T屠洪刚",
"v": "屠洪刚演唱会超清"
},
{
"n": "T泰勒·斯威夫特",
"v": "泰勒·斯威夫特演唱会超清"
},
{
"n": "W王力宏",
"v": "王力宏演唱会超清"
},
{
"n": "W王杰",
"v": "王杰演唱会超清"
},
{
"n": "W吴克群",
"v": "吴克群演唱会超清"
},
{
"n": "W王心凌",
"v": "王心凌演唱会超清"
},
{
"n": "W王靖雯",
"v": "好声音王靖雯演唱会超清"
},
{
"n": "W汪峰",
"v": "汪峰演唱会超清"
},
{
"n": "W伍佰",
"v": "伍佰演唱会超清"
},
{
"n": "W王菲",
"v": "王菲演唱会超清"
},
{
"n": "W五月天",
"v": "五月天演唱会超清"
},
{
"n": "W汪苏泷",
"v": "汪苏泷演唱会超清"
},
{
"n": "X徐佳莹",
"v": "徐佳莹演唱会超清"
},
{
"n": "X弦子",
"v": "弦子演唱会超清"
},
{
"n": "X萧亚轩",
"v": "萧亚轩演唱会超清"
},
{
"n": "X许巍",
"v": "许巍演唱会超清"
},
{
"n": "X薛之谦",
"v": "薛之谦演唱会超清"
},
{
"n": "X许嵩",
"v": "许嵩演唱会超清"
},
{
"n": "X小虎队",
"v": "小虎队演唱会超清"
},
{
"n": "X萧敬腾",
"v": "萧敬腾演唱会超清"
},
{
"n": "X谢霆锋",
"v": "谢霆锋演唱会超清"
},
{
"n": "X徐小凤",
"v": "徐小凤演唱会超清"
},
{
"n": "X信乐队",
"v": "信乐队演唱会超清"
},
{
"n": "Y夜愿乐队",
"v": "夜愿乐队演唱会超清"
},
{
"n": "Y羽泉",
"v": "羽泉演唱会超清"
},
{
"n": "Y郁可唯",
"v": "郁可唯演唱会超清"
},
{
"n": "Y叶倩文",
"v": "叶倩文演唱会超清"
},
{
"n": "Y杨坤",
"v": "杨坤演唱会超清"
},
{
"n": "Y庾澄庆",
"v": "庾澄庆演唱会超清"
},
{
"n": "Y尤长靖",
"v": "尤长靖演唱会超清"
},
{
"n": "Y易烊千玺",
"v": "易烊千玺演唱会超清"
},
{
"n": "Y袁娅维",
"v": "袁娅维演唱会超清"
},
{
"n": "Y杨丞琳",
"v": "杨丞琳演唱会超清"
},
{
"n": "Y杨千嬅",
"v": "杨千嬅演唱会超清"
},
{
"n": "Y杨宗纬",
"v": "杨宗纬演唱会超清"
},
{
"n": "Z郑秀文",
"v": "郑秀文演唱会超清"
},
{
"n": "Z周杰伦",
"v": "周杰伦演唱会超清"
},
{
"n": "Z张学友",
"v": "张学友演唱会超清"
},
{
"n": "Z张信哲",
"v": "张信哲演唱会超清"
},
{
"n": "Z张宇",
"v": "张宇演唱会超清"
},
{
"n": "Z周华健",
"v": "周华健演唱会超清"
},
{
"n": "Z张韶涵",
"v": "张韶涵演唱会超清"
},
{
"n": "Z周深",
"v": "周深演唱会超清"
},
{
"n": "Z纵贯线",
"v": "纵贯线演唱会超清"
},
{
"n": "Z赵雷",
"v": "赵雷演唱会超清"
},
{
"n": "Z周传雄",
"v": "周传雄演唱会超清"
},
{
"n": "Z张国荣",
"v": "张国荣演唱会超清"
},
{
"n": "Z周慧敏",
"v": "周慧敏演唱会超清"
},
{
"n": "Z张惠妹",
"v": "张惠妹演唱会超清"
},
{
"n": "Z周笔畅",
"v": "周笔畅演唱会超清"
},
{
"n": "Z郑中基",
"v": "郑中基演唱会超清"
},
{
"n": "Z张艺兴",
"v": "张艺兴演唱会超清"
},
{
"n": "Z张震岳",
"v": "张震岳演唱会超清"
},
{
"n": "Z张雨生",
"v": "张雨生演唱会超清"
},
{
"n": "Z郑智化",
"v": "郑智化演唱会超清"
},
{
"n": "Z卓依婷",
"v": "卓依婷演唱会超清"
},
{
"n": "Z中岛美雪",
"v": "中岛美雪演唱会超清"
}
]
},
{
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
]
}
}

460
js/cctvpy.js Normal file
View File

@ -0,0 +1,460 @@
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64
import re
from urllib import request, parse
import urllib
import urllib.request
import time
class Spider(Spider): # 元类 默认的元类 type
def getName(self):
return "中央电视台"#可搜索
def init(self,extend=""):
print("============{0}============".format(extend))
pass
def isVideoFormat(self,url):
pass
def manualVideoCheck(self):
pass
def homeContent(self,filter):
result = {}
cateManual = {
"电视剧": "电视剧",
"动画片": "动画片",
"纪录片": "纪录片",
"特别节目": "特别节目",
"栏目大全": "栏目大全"
}
classes = []
for k in cateManual:
classes.append({
'type_name':k,
'type_id':cateManual[k]
})
result['class'] = classes
if(filter):
result['filters'] = self.config['filter']
return result
def homeVideoContent(self):
result = {
'list':[]
}
return result
def categoryContent(self,tid,pg,filter,extend):
result = {}
month = ""#
year = ""#
area=''#地区
channel=''#频道
datafl=''#类型
letter=''#字母
pagecount=24
if tid=='动画片':
id=urllib.parse.quote(tid)
if 'datadq-area' in extend.keys():
area=urllib.parse.quote(extend['datadq-area'])
if 'dataszm-letter' in extend.keys():
letter=extend['dataszm-letter']
if 'datafl-sc' in extend.keys():
datafl=urllib.parse.quote(extend['datafl-sc'])
url='https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955899450127&area={0}&sc={4}&fc={1}&letter={2}&p={3}&n=24&serviceId=tvcctv&topv=1&t=json'.format(area,id,letter,pg,datafl)
elif tid=='纪录片':
id=urllib.parse.quote(tid)
if 'datapd-channel' in extend.keys():
channel=urllib.parse.quote(extend['datapd-channel'])
if 'datafl-sc' in extend.keys():
datafl=urllib.parse.quote(extend['datafl-sc'])
if 'datanf-year' in extend.keys():
year=extend['datanf-year']
if 'dataszm-letter' in extend.keys():
letter=extend['dataszm-letter']
url='https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955924871139&fc={0}&channel={1}&sc={2}&year={3}&letter={4}&p={5}&n=24&serviceId=tvcctv&topv=1&t=json'.format(id,channel,datafl,year,letter,pg)
elif tid=='电视剧':
id=urllib.parse.quote(tid)
if 'datafl-sc' in extend.keys():
datafl=urllib.parse.quote(extend['datafl-sc'])
if 'datanf-year' in extend.keys():
year=extend['datanf-year']
if 'dataszm-letter' in extend.keys():
letter=extend['dataszm-letter']
url='https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955853485115&area={0}&sc={1}&fc={2}&year={3}&letter={4}&p={5}&n=24&serviceId=tvcctv&topv=1&t=json'.format(area,datafl,id,year,letter,pg)
elif tid=='特别节目':
id=urllib.parse.quote(tid)
if 'datapd-channel' in extend.keys():
channel=urllib.parse.quote(extend['datapd-channel'])
if 'datafl-sc' in extend.keys():
datafl=urllib.parse.quote(extend['datafl-sc'])
if 'dataszm-letter' in extend.keys():
letter=extend['dataszm-letter']
url='https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955953877151&channel={0}&sc={1}&fc={2}&bigday=&letter={3}&p={4}&n=24&serviceId=tvcctv&topv=1&t=json'.format(channel,datafl,id,letter,pg)
elif tid=='栏目大全':
cid=''#频道
if 'cid' in extend.keys():
cid=extend['cid']
fc=''#分类
if 'fc' in extend.keys():
fc=extend['fc']
fl=''#字母
if 'fl' in extend.keys():
fl=extend['fl']
url = 'https://api.cntv.cn/lanmu/columnSearch?&fl={0}&fc={1}&cid={2}&p={3}&n=20&serviceId=tvcctv&t=json&cb=ko'.format(fl,fc,cid,pg)
pagecount=20
else:
url = 'https://tv.cctv.com/epg/index.shtml'
videos=[]
htmlText =self.webReadFile(urlStr=url,header=self.header)
if tid=='栏目大全':
index=htmlText.rfind(');')
if index>-1:
htmlText=htmlText[3:index]
videos =self.get_list1(html=htmlText,tid=tid)
else:
videos =self.get_list(html=htmlText,tid=tid)
#print(videos)
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999 if len(videos)>=pagecount else pg
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self,array):
result={}
aid = array[0].split('###')
tid = aid[0]
logo = aid[3]
lastVideo = aid[2]
title = aid[1]
id= aid[4]
vod_year= aid[5]
actors= aid[6]
brief= aid[7]
fromId='CCTV'
if tid=="栏目大全":
lastUrl = 'https://api.cntv.cn/video/videoinfoByGuid?guid={0}&serviceId=tvcctv'.format(id)
htmlTxt = self.webReadFile(urlStr=lastUrl,header=self.header)
topicId=json.loads(htmlTxt)['ctid']
Url = "https://api.cntv.cn/NewVideo/getVideoListByColumn?id={0}&d=&p=1&n=100&sort=desc&mode=0&serviceId=tvcctv&t=json".format(topicId)
htmlTxt = self.webReadFile(urlStr=Url,header=self.header)
else:
Url='https://api.cntv.cn/NewVideo/getVideoListByAlbumIdNew?id={0}&serviceId=tvcctv&p=1&n=100&mode=0&pub=1'.format(id)
jRoot = ''
videoList = []
try:
if tid=="搜索":
fromId='中央台'
videoList=[title+"$"+lastVideo]
else:
htmlTxt=self.webReadFile(urlStr=Url,header=self.header)
jRoot = json.loads(htmlTxt)
data=jRoot['data']
jsonList=data['list']
videoList=self.get_EpisodesList(jsonList=jsonList)
if len(videoList)<1:
htmlTxt=self.webReadFile(urlStr=lastVideo,header=self.header)
if tid=="电视剧" or tid=="纪录片":
patternTxt=r"'title':\s*'(?P<title>.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'url':\s*'(?P<url>.+?)'"
elif tid=="特别节目":
patternTxt=r'class="tp1"><a\s*href="(?P<url>https://.+?)"\s*target="_blank"\s*title="(?P<title>.+?)"></a></div>'
elif tid=="动画片":
patternTxt=r"'title':\s*'(?P<title>.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'url':\s*'(?P<url>.+?)'"
elif tid=="栏目大全":
patternTxt=r'href="(?P<url>.+?)" target="_blank" alt="(?P<title>.+?)" title=".+?">'
videoList=self.get_EpisodesList_re(htmlTxt=htmlTxt,patternTxt=patternTxt)
fromId='央视'
except:
pass
if len(videoList) == 0:
return {}
vod = {
"vod_id":array[0],
"vod_name":title,
"vod_pic":logo,
"type_name":tid,
"vod_year":vod_year,
"vod_area":"",
"vod_remarks":'',
"vod_actor":actors,
"vod_director":'',
"vod_content":brief
}
vod['vod_play_from'] = fromId
vod['vod_play_url'] = "#".join(videoList)
result = {
'list':[
vod
]
}
return result
def get_lineList(self,Txt,mark,after):
circuit=[]
origin=Txt.find(mark)
while origin>8:
end=Txt.find(after,origin)
circuit.append(Txt[origin:end])
origin=Txt.find(mark,end)
return circuit
def get_RegexGetTextLine(self,Text,RegexText,Index):
returnTxt=[]
pattern = re.compile(RegexText, re.M|re.S)
ListRe=pattern.findall(Text)
if len(ListRe)<1:
return returnTxt
for value in ListRe:
returnTxt.append(value)
return returnTxt
def searchContent(self,key,quick):
key=urllib.parse.quote(key)
Url='https://search.cctv.com/ifsearch.php?page=1&qtext={0}&sort=relevance&pageSize=20&type=video&vtime=-1&datepid=1&channel=&pageflag=0&qtext_str={0}'.format(key)
htmlTxt=self.webReadFile(urlStr=Url,header=self.header)
videos=self.get_list_search(html=htmlTxt,tid='搜索')
result = {
'list':videos
}
return result
def playerContent(self,flag,id,vipFlags):
result = {}
url=''
parse=0
headers = {
'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'
}
if flag=='CCTV':
url=self.get_m3u8(urlTxt=id)
else:
try:
html=self.webReadFile(urlStr=id,header=self.header)
guid=self.get_RegexGetText(Text=html,RegexText=r'var\sguid\s*=\s*"(.+?)";',Index=1)
url=self.get_m3u8(urlTxt=guid)
except :
url=id
parse=1
if url.find('https:')<0:
url=id
parse=1
result["parse"] = parse#1=嗅探,0=播放
result["playUrl"] = ''
result["url"] = url
result["header"] =headers
return result
config = {
"player": {},
"filter": {
"电视剧":[
{"key":"datafl-sc","name":"类型","value":[{"n":"全部","v":""},{"n":"谍战","v":"谍战"},{"n":"悬疑","v":"悬疑"},{"n":"刑侦","v":"刑侦"},{"n":"历史","v":"历史"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"军旅","v":"军旅"},{"n":"战争","v":"战争"},{"n":"喜剧","v":"喜剧"},{"n":"青春","v":"青春"},{"n":"言情","v":"言情"},{"n":"偶像","v":"偶像"},{"n":"家庭","v":"家庭"},{"n":"年代","v":"年代"},{"n":"革命","v":"革命"},{"n":"农村","v":"农村"},{"n":"都市","v":"都市"},{"n":"其他","v":"其他"}]},
{"key":"datanf-year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"},{"n":"1999","v":"1999"},{"n":"1998","v":"1998"},{"n":"1997","v":"1997"}]},
{"key":"dataszm-letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"C","v":"C"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"},{"n":"0-9","v":"0-9"}]}
],
"动画片":[
{"key":"datafl-sc","name":"类型","value":[{"n":"全部","v":""},{"n":"亲子","v":"亲子"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"动作","v":"动作"},{"n":"宠物","v":"宠物"},{"n":"体育","v":"体育"},{"n":"益智","v":"益智"},{"n":"历史","v":"历史"},{"n":"教育","v":"教育"},{"n":"校园","v":"校园"},{"n":"言情","v":"言情"},{"n":"武侠","v":"武侠"},{"n":"经典","v":"经典"},{"n":"未来","v":"未来"},{"n":"古代","v":"古代"},{"n":"神话","v":"神话"},{"n":"真人","v":"真人"},{"n":"励志","v":"励志"},{"n":"热血","v":"热血"},{"n":"奇幻","v":"奇幻"},{"n":"童话","v":"童话"},{"n":"剧情","v":"剧情"},{"n":"夺宝","v":"夺宝"},{"n":"其他","v":"其他"}]},
{"key":"datadq-area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"美国","v":"美国"},{"n":"欧洲","v":"欧洲"}]},
{"key":"dataszm-letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"C","v":"C"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"},{"n":"0-9","v":"0-9"}]}
],
"纪录片":[
{"key":"datapd-channel","name":"频道","value":[{"n":"全部","v":""},{"n":"CCTV-1 综合","v":"CCTV-1综合"},{"n":"CCTV-2 财经","v":"CCTV-2财经"},{"n":"CCTV-3 综艺","v":"CCTV-3综艺"},{"n":"CCTV-4 中文国际","v":"CCTV-4中文国际(亚)"},{"n":"CCTV-5 体育","v":"CCTV-5体育"},{"n":"CCTV-6 电影","v":"CCTV-6电影"},{"n":"CCTV-7 国防军事","v":"CCTV-7军事农业"},{"n":"CCTV-8 电视剧","v":"CCTV-8电视剧"},{"n":"CCTV-9 纪录","v":"CCTV-9纪录"},{"n":"CCTV-10 科教","v":"CCTV-10科教"},{"n":"CCTV-11 戏曲","v":"CCTV-11戏曲"},{"n":"CCTV-12 社会与法","v":"CCTV-12社会与法"},{"n":"CCTV-13 新闻","v":"CCTV-13新闻"},{"n":"CCTV-14 少儿","v":"CCTV-14少儿"},{"n":"CCTV-15 音乐","v":"CCTV-15音乐"},{"n":"CCTV-17 农业农村","v":"CCTV-17农业农村高清"}]},
{"key":"datafl-sc","name":"类型","value":[{"n":"全部","v":""},{"n":"人文历史","v":"人文历史"},{"n":"人物","v":"人物"},{"n":"军事","v":"军事"},{"n":"探索","v":"探索"},{"n":"社会","v":"社会"},{"n":"时政","v":"时政"},{"n":"经济","v":"经济"},{"n":"科技","v":"科技"}]},
{"key":"datanf-year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"}]},
{"key":"dataszm-letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"C","v":"C"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"},{"n":"0-9","v":"0-9"}]}
],
"特别节目":[
{"key":"datapd-channel","name":"频道","value":[{"n":"全部","v":""},{"n":"CCTV-1 综合","v":"CCTV-1综合"},{"n":"CCTV-2 财经","v":"CCTV-2财经"},{"n":"CCTV-3 综艺","v":"CCTV-3综艺"},{"n":"CCTV-4 中文国际","v":"CCTV-4中文国际(亚)"},{"n":"CCTV-5 体育","v":"CCTV-5体育"},{"n":"CCTV-6 电影","v":"CCTV-6电影"},{"n":"CCTV-7 国防军事","v":"CCTV-7军事农业"},{"n":"CCTV-8 电视剧","v":"CCTV-8电视剧"},{"n":"CCTV-9 纪录","v":"CCTV-9纪录"},{"n":"CCTV-10 科教","v":"CCTV-10科教"},{"n":"CCTV-11 戏曲","v":"CCTV-11戏曲"},{"n":"CCTV-12 社会与法","v":"CCTV-12社会与法"},{"n":"CCTV-13 新闻","v":"CCTV-13新闻"},{"n":"CCTV-14 少儿","v":"CCTV-14少儿"},{"n":"CCTV-15 音乐","v":"CCTV-15音乐"},{"n":"CCTV-17 农业农村","v":"CCTV-17农业农村高清"}]},
{"key":"datafl-sc","name":"类型","value":[{"n":"全部","v":""},{"n":"全部","v":"全部"},{"n":"新闻","v":"新闻"},{"n":"经济","v":"经济"},{"n":"综艺","v":"综艺"},{"n":"体育","v":"体育"},{"n":"军事","v":"军事"},{"n":"影视","v":"影视"},{"n":"科教","v":"科教"},{"n":"戏曲","v":"戏曲"},{"n":"青少","v":"青少"},{"n":"音乐","v":"音乐"},{"n":"社会","v":"社会"},{"n":"公益","v":"公益"},{"n":"其他","v":"其他"}]},
{"key":"dataszm-letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"C","v":"C"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"},{"n":"0-9","v":"0-9"}]}
],
"栏目大全":[{"key":"cid","name":"频道","value":[{"n":"全部","v":""},{"n":"CCTV-1综合","v":"EPGC1386744804340101"},{"n":"CCTV-2财经","v":"EPGC1386744804340102"},{"n":"CCTV-3综艺","v":"EPGC1386744804340103"},{"n":"CCTV-4中文国际","v":"EPGC1386744804340104"},{"n":"CCTV-5体育","v":"EPGC1386744804340107"},{"n":"CCTV-6电影","v":"EPGC1386744804340108"},{"n":"CCTV-7国防军事","v":"EPGC1386744804340109"},{"n":"CCTV-8电视剧","v":"EPGC1386744804340110"},{"n":"CCTV-9纪录","v":"EPGC1386744804340112"},{"n":"CCTV-10科教","v":"EPGC1386744804340113"},{"n":"CCTV-11戏曲","v":"EPGC1386744804340114"},{"n":"CCTV-12社会与法","v":"EPGC1386744804340115"},{"n":"CCTV-13新闻","v":"EPGC1386744804340116"},{"n":"CCTV-14少儿","v":"EPGC1386744804340117"},{"n":"CCTV-15音乐","v":"EPGC1386744804340118"},{"n":"CCTV-16奥林匹克","v":"EPGC1634630207058998"},{"n":"CCTV-17农业农村","v":"EPGC1563932742616872"},{"n":"CCTV-5+体育赛事","v":"EPGC1468294755566101"}]},{"key":"fc","name":"分类","value":[{"n":"全部","v":""},{"n":"新闻","v":"新闻"},{"n":"体育","v":"体育"},{"n":"综艺","v":"综艺"},{"n":"健康","v":"健康"},{"n":"生活","v":"生活"},{"n":"科教","v":"科教"},{"n":"经济","v":"经济"},{"n":"农业","v":"农业"},{"n":"法治","v":"法治"},{"n":"军事","v":"军事"},{"n":"少儿","v":"少儿"},{"n":"动画","v":"动画"},{"n":"纪实","v":"纪实"},{"n":"戏曲","v":"戏曲"},{"n":"音乐","v":"音乐"},{"n":"影视","v":"影视"}]},{"key":"fl","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"month","name":"月份","value":[{"n":"全部","v":""},{"n":"12","v":"12"},{"n":"11","v":"11"},{"n":"10","v":"10"},{"n":"09","v":"09"},{"n":"08","v":"08"},{"n":"07","v":"07"},{"n":"06","v":"06"},{"n":"05","v":"05"},{"n":"04","v":"04"},{"n":"03","v":"03"},{"n":"02","v":"02"},{"n":"01","v":"01"}]}]
}
}
header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36",
"Host": "tv.cctv.com",
"Referer": "https://tv.cctv.com/"
}
def localProxy(self,param):
return [200, "video/MP2T", action, ""]
#-----------------------------------------------自定义函数-----------------------------------------------
#访问网页
def webReadFile(self,urlStr,header):
html=''
req=urllib.request.Request(url=urlStr)#,headers=header
with urllib.request.urlopen(req) as response:
html = response.read().decode('utf-8')
return html
#判断网络地址是否存在
def TestWebPage(self,urlStr,header):
html=''
req=urllib.request.Request(url=urlStr,method='HEAD')#,headers=header
with urllib.request.urlopen(req) as response:
html = response.getcode ()
return html
#正则取文本
def get_RegexGetText(self,Text,RegexText,Index):
returnTxt=""
Regex=re.search(RegexText, Text, re.M|re.S)
if Regex is None:
returnTxt=""
else:
returnTxt=Regex.group(Index)
return returnTxt
#取集数
def get_EpisodesList(self,jsonList):
videos=[]
for vod in jsonList:
url = vod['guid']
title =vod['title']
if len(url) == 0:
continue
videos.append(title+"$"+url)
return videos
#取集数
def get_EpisodesList_re(self,htmlTxt,patternTxt):
ListRe=re.finditer(patternTxt, htmlTxt, re.M|re.S)
videos=[]
for vod in ListRe:
url = vod.group('url')
title =vod.group('title')
if len(url) == 0:
continue
videos.append(title+"$"+url)
return videos
#取剧集区
def get_lineList(self,Txt,mark,after):
circuit=[]
origin=Txt.find(mark)
while origin>8:
end=Txt.find(after,origin)
circuit.append(Txt[origin:end])
origin=Txt.find(mark,end)
return circuit
#正则取文本,返回数组
def get_RegexGetTextLine(self,Text,RegexText,Index):
returnTxt=[]
pattern = re.compile(RegexText, re.M|re.S)
ListRe=pattern.findall(Text)
if len(ListRe)<1:
return returnTxt
for value in ListRe:
returnTxt.append(value)
return returnTxt
#删除html标签
def removeHtml(self,txt):
soup = re.compile(r'<[^>]+>',re.S)
txt =soup.sub('', txt)
return txt.replace("&nbsp;"," ")
#取m3u8
def get_m3u8(self,urlTxt):
url = "https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid={0}".format(urlTxt)
html=self.webReadFile(urlStr=url,header=self.header)
jo =json.loads(html)
link = jo['hls_url'].strip()
html = self.webReadFile(urlStr=link,header=self.header)
content = html.strip()
arr = content.split('\n')
urlPrefix = self.get_RegexGetText(Text=link,RegexText='(http[s]?://[a-zA-z0-9.]+)/',Index=1)
subUrl = arr[-1].split('/')
subUrl[3] = '1200'
subUrl[-1] = '1200.m3u8'
hdUrl = urlPrefix + '/'.join(subUrl)
url = urlPrefix + arr[-1]
hdRsp = self.TestWebPage(urlStr=hdUrl,header=self.header)
if hdRsp == 200:
url = hdUrl
else:
url=''
return url
#搜索
def get_list_search(self,html,tid):
jRoot = json.loads(html)
jsonList=jRoot['list']
videos=[]
for vod in jsonList:
url = vod['urllink']
title =self.removeHtml(txt=vod['title'])
img=vod['imglink']
id=vod['id']
brief=vod['channel']
year=vod['uploadtime']
if len(url) == 0:
continue
guid="{0}###{1}###{2}###{3}###{4}###{5}###{6}###{7}".format(tid,title,url,img,id,year,'',brief)
videos.append({
"vod_id":guid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":year
})
return videos
return videos
def get_list1(self,html,tid):
jRoot = json.loads(html)
videos = []
data=jRoot['response']
if data is None:
return []
jsonList=data['docs']
for vod in jsonList:
id = vod['lastVIDE']['videoSharedCode']
title =vod['column_name']
url=vod['column_website']
img=vod['column_logo']
year=vod['column_playdate']
brief=vod['column_brief']
actors=''
if len(url) == 0:
continue
guid="{0}###{1}###{2}###{3}###{4}###{5}###{6}###{7}".format(tid,title,url,img,id,year,actors,brief)
#print(vod_id)
videos.append({
"vod_id":guid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":''
})
#print(videos)
return videos
#分类取结果
def get_list(self,html,tid):
jRoot = json.loads(html)
videos = []
data=jRoot['data']
if data is None:
return []
jsonList=data['list']
for vod in jsonList:
url = vod['url']
title =vod['title']
img=vod['image']
id=vod['id']
try:
brief=vod['brief']
except:
brief=''
try:
year=vod['year']
except:
year=''
try:
actors=vod['actors']
except:
actors=''
if len(url) == 0:
continue
guid="{0}###{1}###{2}###{3}###{4}###{5}###{6}###{7}".format(tid,title,url,img,id,year,actors,brief)
#print(vod_id)
videos.append({
"vod_id":guid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":''
})
return videos

1
js/cheerio.min.js vendored Normal file

File diff suppressed because one or more lines are too long

157
js/config Normal file
View File

@ -0,0 +1,157 @@

{"key": "csp_Bili_dashan","name": "💋┃搭讪┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/搭讪.js"},
{"key": "csp_Bili__dapei","name": "💃┃搭配┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/搭配.js"},
{"key":"央视经典","name":"🅱️┃央视|片库","type":3,"api":"csp_Bili","searchable":0,"quickSearch":1,"filterable":1,"jar": "./HCCX.jar","ext":"./lib/cat/央视经典.js"},
{"key": "有声小说js","name": "🅱️┃有声┃小说","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","ext": "./lib/cat/有声小说吧.js","style": { "type": "rect", "ratio": 1},"searchable": 0,"quickSearch": 0,"changeable": 0 },
{"key": "csp_Bili","name": "🅱️┃哔哩┃合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 1,"jar": "./XBPQ.jar","ext": "./lib/cat/B合集bili.js"},
{"key": "js_B站精简","name": "🅱️┃哔哩┃精简","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "./lib/cat/B站精简.js"},
{"key": "dr_童趣","name": "🅱️┃童趣┃播视","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./lib/cat/童趣.js"},
{"key": "csp_Bili_youer","name": "🅱️┃幼儿┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/幼儿.js"},
{"key": "csp_Bili_xiaoxue","name": "🅱️┃小学┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/小学.js"},
{"key": "csp_Bili_czxx","name": "🅱️┃初中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/初中.js"},
{"key": "csp_Bili_gaozxx","name": "🅱️┃高中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/高中.js"},
{"key": "csp_Bili_zyy","name": "🅱️┃中医┃药区","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./cat/中医.js"},
{"key": "csp_Bili_xuqu1","name": "🅱️┃戏曲┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/戏曲.js"},
{"key": "csp_Bili_TYjs","name": "🅱️┃体育┃健身","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/体育.js"},
{"key": "csp_Bili_xiangsh","name": "🅱️┃相声┃小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/相声.js"},
{"key": "csp_Bili_FBqx","name": "🅱️┃球队┃球星","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/球队.js"},
{"key": "csp_Bili_Meinvw","name": "🅱️┃美女┃舞蹈","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/美女.js"},
{"key": "csp_Bili_yanchh","name": "🅱️┃歌手┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/歌手.js"},
{"key": "csp_Bili_Nvtuan","name": "🅱️┃女团┃热舞","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/女团.js"},
{"key": "csp_Bili_MTV","name": "🅱️┃歌曲┃演唱","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/歌曲.js"},
{"key": "csp_Bili_Yinl2","name": "🅱️┃音悦┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./lib/cat/音悦.js"},
{
"key": "csp_XYQHiker_虎牙直播",
"name": "🐯 虎牙┃直播",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 0,
"filterable": 1,
"jar": "./lib/cat/custom_spider.jar",
"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/虎牙直播.json"
},
{
"key": "csp_XYQHiker_斗鱼直播",
"name": "🐠 斗鱼┃直播",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 0,
"filterable": 1,
"jar": "./lib/cat/custom_spider.jar",
"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/斗鱼直播.json"
},
{
"key": "金牌影视",
"name": "🎬金牌|影视🎬",
"type": 3,
"api": "http://150.158.112.123/jar/py/jp.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
"key": "drpy_js_金牌",
"name": "金牌影视[js]",
"type": 3,
"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js",
"ext": "./lib/cat/金牌影视.js"
},
{
"key": "柚子资源",
"name": "🍊柚子资源",
"type": 0,
"api": "https://api.yzzy-api.com/inc/api.php",
"searchable": 1,
"quickSearch": 1,
"categories": [
"动作片",
"喜剧片",
"爱情片",
"科幻片",
"恐怖片",
"剧情片",
"战争片",
"国产剧",
"台湾剧",
"韩国剧",
"欧美剧",
"香港剧",
"泰国剧",
"日本剧",
"福利",
"记录片",
"动画片",
"海外剧",
"倫理片",
"大陆综艺",
"港台综艺",
"日韩综艺",
"欧美综艺",
"国产动漫",
"日韩动漫",
"欧美动漫",
"港台动漫",
"海外动漫",
"搞笑",
"音乐",
"影视",
"汽车",
"短剧大全",
"预告片",
"预告片",
"体育"
]
},
{"key":"drpy_js_Alist","name":"网盘 | Alist[js]","type":3,"api":"./lib/cat/alist.min.js","ext":"./libs/cat/alist.json"},
{"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": "./libs/cat/alist1.json"},
{"key": "WebDAV","name": "WebDAV","type": 3,"api": "csp_WebDAV","searchable": 1,"changeable": 0,"ext": "./libs/cat/webdav.json"},
{"key":"csp_AList","name":"小雅|云盘","type":3,"playerType":1,"api":"csp_AList","searchable":1,"quickSearch":1,"filterable":1,
"ext":{"vodPic":"https://up.mediy.cn/033_喜欢_adf390021f221477b26a94f5eaf02643.png",
"drives":[
{"name": "Ecve","server": "https://pan.ecve.cn/"},
{"name": "小鸭","server": "https://pan.mediy.cn/"},
{"name": "秋雨","server": "https://share.qiuyu.org/"},
{"name": "小雅","server": "http://alist.xiaoya.pro/"},
{"name": "七米蓝","server": "https://al.chirmyram.com/"},
{"name": "蓼茶","server": "http://175.178.16.226:62494/"},
{"name": "柯南","server": "https://alist.523.monster/"},
{"name": "老谭","server": "https://pan.cqtjy.cn/ali"}
]}},

6191
js/crypto-js.js Normal file

File diff suppressed because it is too large Load Diff

BIN
js/custom_spider.jar Normal file

Binary file not shown.

1
js/drpy2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

68
js/gbk.js Normal file

File diff suppressed because one or more lines are too long

577
js/jinja.js Normal file
View File

@ -0,0 +1,577 @@
/*!
* Jinja Templating for JavaScript v0.1.8
* https://github.com/sstur/jinja-js
*
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
*
* In the interest of simplicity, it deviates from Jinja2 as follows:
* - Line statements, cycle, super, macro tags and block nesting are not implemented
* - auto escapes html by default (the filter is "html" not "e")
* - Only "html" and "safe" filters are built in
* - Filters are not valid in expressions; `foo|length > 1` is not valid
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
*
* Notes:
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
* - `.2` is not a valid number literal; use `0.2`
*
*/
/*global require, exports, module, define */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
})(this, (function (jinja) {
"use strict";
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
//non-primitive literals (array and object literals)
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
//bare identifiers such as variables and in object literals: {foo: 'value'}
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
//extended (english) operators
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
var LEADING_SPACE = /^\s+/;
var TRAILING_SPACE = /\s+$/;
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
var TAGS = {
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
};
var delimeters = {
'{%': 'directive',
'{{': 'output',
'{#': 'comment'
};
var operators = {
and: '&&',
or: '||',
not: '!',
is: '==',
isnot: '!='
};
var constants = {
'true': true,
'false': false,
'null': null
};
function Parser() {
this.nest = [];
this.compiled = [];
this.childBlocks = 0;
this.parentBlocks = 0;
this.isSilent = false;
}
Parser.prototype.push = function (line) {
if (!this.isSilent) {
this.compiled.push(line);
}
};
Parser.prototype.parse = function (src) {
this.tokenize(src);
return this.compiled;
};
Parser.prototype.tokenize = function (src) {
var lastEnd = 0, parser = this, trimLeading = false;
matchAll(src, START_TOKEN, function (open, index, src) {
//here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]);
match = (match ? match[0] : '');
//here we sub out strings so we don't get false matches
var simplified = match.replace(STRINGS, '@');
//if we don't have a close tag or there is a nested open tag
if (!match || ~simplified.indexOf(open)) {
return index + 1;
}
var inner = match.slice(0, 0 - open.length);
//check for white-space collapse syntax
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
if (inner.slice(-1) === '-') var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, '').trim();
//if we're in raw mode and we are not looking at an "endraw" tag, move along
if (parser.rawMode && (open + inner) !== '{%endraw') {
return index + 1;
}
var text = src.slice(lastEnd, index);
lastEnd = index + open.length + match.length;
if (trimLeading) text = trimLeft(text);
if (wsCollapseLeft) text = trimRight(text);
if (wsCollapseRight) trimLeading = true;
if (open === '{{{') {
//liquid-style: make {{{x}}} => {{x|safe}}
open = '{{';
inner += '|safe';
}
parser.textHandler(text);
parser.tokenHandler(open, inner);
});
var text = src.slice(lastEnd);
if (trimLeading) text = trimLeft(text);
this.textHandler(text);
};
Parser.prototype.textHandler = function (text) {
this.push('write(' + JSON.stringify(text) + ');');
};
Parser.prototype.tokenHandler = function (open, inner) {
var type = delimeters[open];
if (type === 'directive') {
this.compileTag(inner);
} else if (type === 'output') {
var extracted = this.extractEnt(inner, STRINGS, '@');
//replace || operators with ~
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
//put back || operators
extracted.src = extracted.src.map(function (part) {
return part.split('~').join('||');
});
var parts = this.injectEnt(extracted, '@');
if (parts.length > 1) {
var filters = parts.slice(1).map(this.parseFilter.bind(this));
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
} else {
this.push('filter(' + this.parseExpr(parts[0]) + ');');
}
}
};
Parser.prototype.compileTag = function (str) {
var directive = str.split(' ')[0];
var handler = tagHandlers[directive];
if (!handler) {
throw new Error('Invalid tag: ' + str);
}
handler.call(this, str.slice(directive.length).trim());
};
Parser.prototype.parseFilter = function (src) {
src = src.trim();
var match = src.match(/[:(]/);
var i = match ? match.index : -1;
if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i);
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {terms: true});
return '[' + JSON.stringify(name) + ',' + args + ']';
};
Parser.prototype.extractEnt = function (src, regex, placeholder) {
var subs = [], isFunc = typeof placeholder == 'function';
src = src.replace(regex, function (str) {
var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) {
subs.push(str);
return replacement;
}
return str;
});
return {src: src, subs: subs};
};
Parser.prototype.injectEnt = function (extracted, placeholder) {
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
var arr = (isArr) ? src : [src];
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
arr.forEach(function (src, index) {
arr[index] = src.replace(re, function () {
return subs[i++];
});
});
return isArr ? arr : arr[0];
};
//replace complex literals without mistaking subscript notation with array literals
Parser.prototype.replaceComplex = function (s) {
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
return this.injectEnt(parsed, 'v');
};
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
Parser.prototype.parseExpr = function (src, opts) {
opts = opts || {};
//extract string literals -> @
var parsed1 = this.extractEnt(src, STRINGS, '@');
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
return (op in operators) ? before + operators[op] + after : s;
});
//sub out non-string literals (numbers/true/false/null) -> #
// the distinction is necessary because @ can be object identifiers, # cannot
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
return (s in constants || NUMBER.test(s)) ? '#' : null;
});
//sub out object/variable identifiers -> i
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
//remove white-space
parsed3.src = parsed3.src.replace(/\s+/g, '');
//the rest of this is simply to boil the expression down and check validity
var simplified = parsed3.src;
//sub out complex literals (objects/arrays) -> ~
// the distinction is necessary because @ and # can be subscripts but ~ cannot
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
//now @ represents strings, # represents other primitives and ~ represents non-primitives
//replace complex variables (those with dot/subscript accessors) -> v
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
//empty subscript or complex variables in subscript, are not permitted
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
simplified = simplified.replace(/[@#~v]/g, 'i');
//sub out operators
simplified = simplified.replace(OPERATORS, '%');
//allow 'not' unary operator
simplified = simplified.replace(/!+[i]/g, 'i');
var terms = opts.terms ? simplified.split(',') : [simplified];
terms.forEach(function (term) {
//simplify logical grouping
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
if (!term.match(/^i(%i)*/)) {
throw new Error('Invalid expression: ' + src + " " + term);
}
});
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
parsed2.src = this.injectEnt(parsed3, 'i');
parsed1.src = this.injectEnt(parsed2, '#');
return this.injectEnt(parsed1, '@');
};
Parser.prototype.parseVar = function (src) {
var args = Array.prototype.slice.call(arguments);
var str = args.pop(), index = args.pop();
//quote bare object identifiers (might be a reserved word like {while: 1})
if (src === 'i' && str.charAt(index + 1) === ':') {
return '"i"';
}
var parts = ['"i"'];
src.replace(ACCESSOR, function (part) {
if (part === '.i') {
parts.push('"i"');
} else if (part === '[i]') {
parts.push('get("i")');
} else {
parts.push(part.slice(1, -1));
}
});
return 'get(' + parts.join(',') + ')';
};
//escapes a name to be used as a javascript identifier
Parser.prototype.escName = function (str) {
return str.replace(/\W/g, function (s) {
return '$' + s.charCodeAt(0).toString(16);
});
};
Parser.prototype.parseQuoted = function (str) {
if (str.charAt(0) === "'") {
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
if (s === "\\'") return "'";
return s.charAt(0) === '\\' ? s : ('\\' + s);
});
str = '"' + str + '"';
}
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
return JSON.parse(str);
};
//the context 'this' inside tagHandlers is the parser instance
var tagHandlers = {
'if': function (expr) {
this.push('if (' + this.parseExpr(expr) + ') {');
this.nest.unshift('if');
},
'else': function () {
if (this.nest[0] === 'for') {
this.push('}, function() {');
} else {
this.push('} else {');
}
},
'elseif': function (expr) {
this.push('} else if (' + this.parseExpr(expr) + ') {');
},
'endif': function () {
this.nest.shift();
this.push('}');
},
'for': function (str) {
var i = str.indexOf(' in ');
var name = str.slice(0, i).trim();
var expr = str.slice(i + 4).trim();
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
this.nest.unshift('for');
},
'endfor': function () {
this.nest.shift();
this.push('});');
},
'raw': function () {
this.rawMode = true;
},
'endraw': function () {
this.rawMode = false;
},
'set': function (stmt) {
var i = stmt.indexOf('=');
var name = stmt.slice(0, i).trim();
var expr = stmt.slice(i + 1).trim();
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
},
'block': function (name) {
if (this.isParent) {
++this.parentBlocks;
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
} else if (this.hasParent) {
this.isSilent = false;
++this.childBlocks;
blockName = 'block_' + (this.escName(name) || this.childBlocks);
this.push('function ' + blockName + '() {');
}
this.nest.unshift('block');
},
'endblock': function () {
this.nest.shift();
if (this.isParent) {
this.push('});');
} else if (this.hasParent) {
this.push('}');
this.isSilent = true;
}
},
'extends': function (name) {
name = this.parseQuoted(name);
var parentSrc = this.readTemplateFile(name);
this.isParent = true;
this.tokenize(parentSrc);
this.isParent = false;
this.hasParent = true;
//silence output until we enter a child block
this.isSilent = true;
},
'include': function (name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false;
}
};
//liquid style
tagHandlers.assign = tagHandlers.set;
//python/django style
tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) {
var defaults = {autoEscape: 'toJson'};
var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function (obj) {
var keys = [];
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys;
};
var isArray = Array.isArray || function (obj) {
return _toString.call(obj) === '[object Array]';
};
var create = Object.create || function (obj) {
function F() {
}
F.prototype = obj;
return new F();
};
var toString = function (val) {
if (val == null) return '';
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
};
var extend = function (dest, src) {
var keys = getKeys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
dest[key] = src[key];
}
return dest;
};
//get a value, lexically, starting in current context; a.b -> get("a","b")
var get = function () {
var val, n = arguments[0], c = stack.length;
while (c--) {
val = stack[c][n];
if (typeof val != 'undefined') break;
}
for (var i = 1, len = arguments.length; i < len; i++) {
if (val == null) continue;
n = arguments[i];
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
}
return (val == null) ? '' : val;
};
var set = function (n, val) {
stack[stack.length - 1][n] = val;
};
var push = function (ctx) {
stack.push(ctx || {});
};
var pop = function () {
stack.pop();
};
var write = function (str) {
output.push(str);
};
var filter = function (val) {
for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i], name = arr[0], filter = filters[name];
if (filter) {
arr[0] = val;
//now arr looks like [val, arg1, arg2]
val = filter.apply(data, arr);
} else {
throw new Error('Invalid filter: ' + name);
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
//auto escape if not explicitly safe or already escaped
val = filters[opts.autoEscape].call(data, val);
}
output.push(val);
};
var each = function (obj, loopvar, fn1, fn2) {
if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
push(ctx);
for (var i = 0; i < len; i++) {
extend(ctx.loop, {index: i + 1, index0: i});
fn1(ctx[loopvar] = arr[i]);
}
if (len === 0 && fn2) fn2();
pop();
};
var block = function (fn) {
push();
fn();
pop();
};
var render = function () {
return output.join('');
};
data = data || {};
opts = extend(defaults, opts || {});
var filters = extend({
html: function (val) {
return toString(val)
.split('&').join('&amp;')
.split('<').join('&lt;')
.split('>').join('&gt;')
.split('"').join('&quot;');
},
safe: function (val) {
return val;
},
toJson: function (val) {
if (typeof val === 'object') {
return JSON.stringify(val);
}
return toString(val);
}
}, opts.filters || {});
var stack = [create(data || {})], output = [];
return {
get: get,
set: set,
push: push,
pop: pop,
write: write,
filter: filter,
each: each,
block: block,
render: render
};
};
var runtime;
jinja.compile = function (markup, opts) {
opts = opts || {};
var parser = new Parser();
parser.readTemplateFile = this.readTemplateFile;
var code = [];
code.push('function render($) {');
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
code.push.apply(code, parser.parse(markup));
code.push('return $.render();');
code.push('}');
code = code.join('\n');
if (opts.runtime === false) {
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
} else {
runtime = runtime || (runtime = getRuntime.toString());
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
}
return {render: fn};
};
jinja.render = function (markup, data, opts) {
var tmpl = jinja.compile(markup);
return tmpl.render(data, opts);
};
jinja.templateFiles = [];
jinja.readTemplateFile = function (name) {
var templateFiles = this.templateFiles || [];
var templateFile = templateFiles[name];
if (templateFile == null) {
throw new Error('Template file not found: ' + name);
}
return templateFile;
};
/*!
* Helpers
*/
function trimLeft(str) {
return str.replace(LEADING_SPACE, '');
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, '');
}
function matchAll(str, reg, fn) {
//copy as global
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
var match;
while ((match = reg.exec(str))) {
var result = fn(match[0], match.index, str);
if (typeof result == 'number') {
reg.lastIndex = result;
}
}
}
}));

224
js/jp.py Normal file
View File

@ -0,0 +1,224 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import sys
import threading
import uuid
import requests
sys.path.append('..')
from base.spider import Spider
import time
from Crypto.Hash import MD5, SHA1
class Spider(Spider):
'''
配置示例
{
"key": "xxxx",
"name": "xxxx",
"type": 3,
"api": ".所在路径/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"site": "https://www.jiabaide.cn,域名2,域名3"
}
},
'''
def init(self, extend=""):
if extend:
hosts=json.loads(extend)['site']
self.host = self.host_late(hosts)
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
result = {}
classes = []
filters={}
for k in cdata['data']:
classes.append({
'type_name': k['typeName'],
'type_id': str(k['typeId']),
})
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
for tid, d in fdata['data'].items():
current_sort_values = sort_values.copy()
if tid == '1':
del current_sort_values[0]
filters[tid] = [
{"key": "type", "name": "类型",
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
"value": [{"n": i["itemText"], "v": i["itemText"]}
for i in d["plotList"]]}]),
{"key": "area", "name": "地区",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
{"key": "year", "name": "年份",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
{"key": "lang", "name": "语言",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
{"key": "sort", "name": "排序", "value": current_sort_values}
]
result['class'] = classes
result['filters'] = filters
return result
def homeVideoContent(self):
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
data=[]
for i in data1['data'].values():
data.extend(i['list'])
data.extend(data2['data'])
vods=self.getvod(data)
return {'list':vods}
def categoryContent(self, tid, pg, filter, extend):
params = {
"area": extend.get('area', ''),
"filterStatus": "1",
"lang": extend.get('lang', ''),
"pageNum": pg,
"pageSize": "30",
"sort": extend.get('sort', '1'),
"sortBy": "1",
"type": extend.get('type', ''),
"type1": tid,
"v_class": extend.get('v_class', ''),
"year": extend.get('year', '')
}
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
result = {}
result['list'] = self.getvod(data['data']['list'])
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
vod=self.getvod([data['data']])[0]
vod['vod_play_from']='金牌'
vod['vod_play_url'] = '#'.join(
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
vod['episodelist'])
vod.pop('episodelist', None)
return {'list':[vod]}
def searchContent(self, key, quick, pg="1"):
params = {
"keyword": key,
"pageNum": pg,
"pageSize": "8",
"sourceCode": "1"
}
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
vods=self.getvod(data['data']['result']['list'])
return {'list':vods,'page':pg}
def playerContent(self, flag, id, vipFlags):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'DNT': '1',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'Origin': self.host,
'Referer': f'{self.host}/'
}
ids=id.split('@@')
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
vlist=[]
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
return {'parse':0,'url':vlist,'header':self.header}
def localProxy(self, param):
pass
def host_late(self, url_list):
if isinstance(url_list, str):
urls = [u.strip() for u in url_list.split(',')]
else:
urls = url_list
if len(urls) <= 1:
return urls[0] if urls else ''
results = {}
threads = []
def test_host(url):
try:
start_time = time.time()
response = requests.head(url, timeout=1.0, allow_redirects=False)
delay = (time.time() - start_time) * 1000
results[url] = delay
except Exception as e:
results[url] = float('inf')
for url in urls:
t = threading.Thread(target=test_host, args=(url,))
threads.append(t)
t.start()
for t in threads:
t.join()
return min(results.items(), key=lambda x: x[1])[0]
def md5(self, sign_key):
md5_hash = MD5.new()
md5_hash.update(sign_key.encode('utf-8'))
md5_result = md5_hash.hexdigest()
return md5_result
def js(self, param):
return '&'.join(f"{k}={v}" for k, v in param.items())
def getheaders(self, param=None):
if param is None:param = {}
t=str(int(time.time()*1000))
param['key']='cb808529bae6b6be45ecfab29a4889bc'
param['t']=t
sha1_hash = SHA1.new()
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
sign = sha1_hash.hexdigest()
deviceid = str(uuid.uuid4())
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'sign': sign,
't': t,
'deviceid':deviceid
}
return headers
def convert_field_name(self, field):
field = field.lower()
if field.startswith('vod') and len(field) > 3:
field = field.replace('vod', 'vod_')
if field.startswith('type') and len(field) > 4:
field = field.replace('type', 'type_')
return field
def getvod(self, array):
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]

33
js/jrk.js Normal file
View File

@ -0,0 +1,33 @@
var rule = {
title:'JRKAN直播',
host:'https://www.jrs20.com//?lan=1',
// JRKAN备用域名:www.jrkankan.com / www.jrkan365.com / jrsyyds.com / www.jryyds.com / jrskan.com / jrsbxj.com /Jrkan备用域名1: www.jrkan2022.com 备用域名2: www.jrs23.com 备用域名2: www.jrskk.com 最新网址发布:www.qiumi1314.co
url:'/fyclass',
searchUrl:'',
searchable:0,
quickSearch:0,
class_name:'全部',
class_url:'/',
//class_url:'?live',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:true,
lazy:"",
limit:6,
double:false,
推荐:'*',
// 一级:'.loc_match:eq(2) ul;li:gt(1):lt(4)&&Text;img&&src;li:lt(2)&&Text;a:eq(1)&&href',//play.sportsteam333.com
一级:"js:var items=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);var tabs=pdfa(html,'body&&.d-touch');tabs.forEach(function(it){var pz=pdfh(it,'.name:eq(1)&&Text');var ps=pdfh(it,'.name:eq(0)&&Text');var pk=pdfh(it,'.name:eq(2)&&Text');var img=pd(it,'img&&src');var timer=pdfh(it,'.lab_time&&Text');var url=pd(it,'a.me&&href');items.push({desc:timer+'🏆'+ps,title:pz+'🆚'+pk,pic_url:img,url:url})});setResult(items);",
二级:{
"title":".sub_list li:lt(2)&&Text;.sub_list li:eq(0)&&Text",
"img":"img&&src",
"desc":";;;.lab_team_home&&Text;.lab_team_away&&Text",
"content":".sub_list ul&&Text",
"tabs":"js:TABS=['实时直播']",
"lists":"js:LISTS=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=request(input);let data=pdfa(html,'.sub_playlist&&a');TABS.forEach(function(tab){let d=data.map(function(it){let name=pdfh(it,'strong&&Text');let url=pd(it,'a&&data-play');return name+'$'+url});LISTS.push(d)});",
},
搜索:'',
}

360
js/jsencrypt.js Normal file

File diff suppressed because one or more lines are too long

1737
js/json5.js Normal file

File diff suppressed because one or more lines are too long

843
js/mg.js Normal file
View File

@ -0,0 +1,843 @@
var rule = {
title: '百忙无果[官]',
host: 'https://pianku.api.%6d%67%74%76.com',
homeUrl: '',
// searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/pc/search/v1?q=**&pn=fypage&pc=10',
// 新版接口搜索变成v2并且加了验证蛋疼
// searchUrl: 'https://mobileso.bz.mgtv.com/pc/search/v2?allowedRC=1&src=mgtv&did=cf03b959-6945-4cb6-bcb3-88762459354d&timestamp=2024-06-21T15%3A52%3A55Z&signVersion=1&signNonce=8dae67a1fafc4bda984ec8deb47666ad&q=**&pn=fypage&pc=10&corr=1&_support=10000000&signature=4e27fddcd2a1a66d6c1764ed6b74bab7',
// 用手机的吧,搞不定这个
searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/msite/search/v2?q=**&pn=fypage&pc=10',
detailUrl: 'https://pcweb.api.mgtv.com/episode/list?page=1&size=50&video_id=fyid',
searchable: 2,
quickSearch: 0,
filterable: 1,
multi: 1,
// 分类链接fypage参数支持1个()表达式
// https://www.mgtv.com/lib/3?lastp=list_index&kind=a1&year=all&chargeInfo=a1&sort=c2
url: '/rider/list/pcweb/v3?platform=pcweb&channelId=fyclass&pn=fypage&pc=80&hudong=1&_support=10000000&kind=a1&area=a1',
filter_url: 'year={{fl.year or "all"}}&sort={{fl.sort or "all"}}&chargeInfo={{fl.chargeInfo or "all"}}',
headers: {
'User-Agent': 'PC_UA'
},
timeout: 5000,
class_name: '电视剧&电影&综艺&动漫&纪录片&教育&少儿',
class_url: '2&3&1&50&51&115&10',
filter: {
"1": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}],
"2": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}],
"3": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}],
"50": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}],
"51": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}],
"115": [{
"key": "chargeInfo",
"name": "付费类型",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "免费",
"v": "b1"
}, {
"n": "vip",
"v": "b2"
}, {
"n": "VIP用券",
"v": "b3"
}, {
"n": "付费点播",
"v": "b4"
}]
}, {
"key": "sort",
"name": "排序",
"value": [{
"n": "最新",
"v": "c1"
}, {
"n": "最热",
"v": "c2"
}, {
"n": "知乎高分",
"v": "c4"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "all"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}]
}]
},
limit: 20,
play_parse: true,
lazy: $js.toString(() => {
try {
let api = "" + input.split("?")[0];
console.log(api);
let response = fetch(api, {
method: 'get',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
}
});
let bata = JSON.parse(response);
if (bata.url.includes("mgtv")) {
input = {
parse: 0,
url: bata.url,
jx: 0,
danmaku: "https://danmu.zxz.ee/?type=xml&id=" + input.split("?")[0]
};
} else {
input = {
parse: 0,
url: input.split("?")[0],
jx: 1,
danmaku: "https://danmu.zxz.ee/?type=xml&id=" + input.split("?")[0]
};
}
} catch {
input = {
parse: 0,
url: input.split("?")[0],
jx: 1,
danmaku: "https://danmu.zxz.ee/?type=xml&id=" + input.split("?")[0]
};
}
}),
// 手动调用解析请求json的url,此lazy不方便
// lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};',
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: 'json:data.hitDocs;title;img;updateInfo||rightCorner.text;playPartId',
// 一级:'json:data.hitDocs;title;img;updateInfo;playPartId',
二级: $js.toString(() => {
fetch_params.headers.Referer = "https://www.mgtv.com";
fetch_params.headers["User-Agent"] = MOBILE_UA;
pdfh = jsp.pdfh;
pdfa = jsp.pdfa;
pd = jsp.pd;
VOD = {};
let d = [];
let html = request(input);
let json = JSON.parse(html);
let host = "https://www.mgtv.com";
let ourl = json.data.list.length > 0 ? json.data.list[0].url : json.data.series[0].url;
if (!/^http/.test(ourl)) {
ourl = host + ourl
}
fetch_params.headers["User-Agent"] = MOBILE_UA;
html = request(ourl);
if (html.includes("window.location =")) {
print("开始获取ourl");
ourl = pdfh(html, "meta[http-equiv=refresh]&&content").split("url=")[1];
print("获取到ourl:" + ourl);
html = request(ourl)
}
try {
let details = pdfh(html, ".m-details&&Html").replace(/h1>/, "h6>").replace(/div/g, "br");
print(details);
let actor = "",
director = "",
time = "";
if (/播出时间/.test(details)) {
actor = pdfh(html, "p:eq(5)&&Text").substr(0, 25);
director = pdfh(html, "p:eq(4)&&Text");
time = pdfh(html, "p:eq(3)&&Text")
} else {
actor = pdfh(html, "p:eq(4)&&Text").substr(0, 25);
director = pdfh(html, "p:eq(3)&&Text");
time = "已完结"
}
let _img = pd(html, ".video-img&&img&&src");
let JJ = pdfh(html, ".desc&&Text").split("简介:")[1];
let _desc = time;
VOD.vod_name = pdfh(html, ".vt-txt&&Text");
VOD.type_name = pdfh(html, "p:eq(0)&&Text").substr(0, 6);
VOD.vod_area = pdfh(html, "p:eq(1)&&Text");
VOD.vod_actor = actor;
VOD.vod_director = director;
VOD.vod_remarks = _desc;
VOD.vod_pic = _img;
VOD.vod_content = JJ;
if (!VOD.vod_name) {
VOD.vod_name = VOD.type_name;
}
} catch (e) {
log("获取影片信息发生错误:" + e.message)
}
function getRjpg(imgUrl, xs) {
xs = xs || 3;
let picSize = /jpg_/.test(imgUrl) ? imgUrl.split("jpg_")[1].split(".")[0] : false;
let rjpg = false;
if (picSize) {
let a = parseInt(picSize.split("x")[0]) * xs;
let b = parseInt(picSize.split("x")[1]) * xs;
rjpg = a + "x" + b + ".jpg"
}
let img = /jpg_/.test(imgUrl) && rjpg ? imgUrl.replace(imgUrl.split("jpg_")[1], rjpg) : imgUrl;
return img
}
if (json.data.total === 1 && json.data.list.length === 1) {
let data = json.data.list[0];
let url = "https://www.mgtv.com" + data.url;
d.push({
title: data.t4,
desc: data.t2,
pic_url: getRjpg(data.img),
url: url
})
} else if (json.data.list.length > 1) {
for (let i = 1; i <= json.data.total_page; i++) {
if (i > 1) {
json = JSON.parse(fetch(input.replace("page=1", "page=" + i), {}))
}
json.data.list.forEach(function(data) {
let url = "https://www.mgtv.com" + data.url;
if (data.isIntact == "1") {
d.push({
title: data.t4,
desc: data.t2,
pic_url: getRjpg(data.img),
url: url
})
}
})
}
} else {
print(input + "暂无片源")
}
VOD.vod_play_from = "mgtv";
VOD.vod_play_url = d.map(function(it) {
return it.title + "$" + it.url
}).join("#");
setResult(d);
}),
搜索: $js.toString(() => {
fetch_params.headers.Referer = "https://www.mgtv.com";
fetch_params.headers["User-Agent"] = MOBILE_UA;
let d = [];
let html = request(input);
let json = JSON.parse(html);
json.data.contents.forEach(function(data) {
if (data.type && data.type == 'media') {
let item = data.data[0];
let desc = item.desc.join(',');
let fyclass = '';
if (item.source === "imgo") {
let img = item.img ? item.img : '';
try {
fyclass = item.rpt.match(/idx=(.*?)&/)[1] + '$';
} catch (e) {
log(e.message);
fyclass = '';
}
log(fyclass);
d.push({
title: item.title.replace(/<B>|<\/B>/g, ''),
img: img,
content: '',
desc: desc,
url: fyclass + item.url.match(/.*\/(.*?)\.html/)[1]
})
}
}
});
setResult(d);
}),
}

2
js/node-rsa.js Normal file

File diff suppressed because one or more lines are too long

267
js/nongmin.js Normal file
View File

@ -0,0 +1,267 @@
import { Crypto, load, _ } from 'assets://js/lib/cat.js';
let siteUrl = 'https://www.wwgz.cn';
let siteKey = '';
let siteType = 0;
let headers = {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'Referer': siteUrl + '/'
};
let PARSE_URL = 'https://nmvod.cn:3166/webcloud/relay.php';
let jxUrl = ['https://api.cnmcom.com/webcloud/nma.php?url=','https://api.cnmcom.com/webcloud/nmb.php?url=', 'https://api.cnmcom.com/webcloud/nmc.php?vid=', 'https://vip.wwgz.cn:5200/nmplay/webcloud/m3u8.php?url='];
async function request(reqUrl, postData, post) {
let res = await req(reqUrl, {
method: post ? 'post' : 'get',
headers: headers,
data: postData || {},
postType: post ? 'form' : '',
});
let content = res.content;
return content;
}
async function init(cfg) {
siteKey = cfg.skey;
siteType = cfg.stype;
if (cfg.ext) {
siteUrl = cfg.ext;
}
const html1 = (await req(siteUrl + '/player/initial.js', {
method: 'get',
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'Referer': siteUrl + '/',
}
})).content;
PARSE_URL = html1.split('src="')[1].split('?url=')[0];
const html = (await req(PARSE_URL, {
method: 'get',
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'Referer': siteUrl + '/',
}
})).content;
//console.log('html', html);
const url = html.match(/src = '(.*?)' \+ videoUrl;/);
jxUrl[0] = url[1];
}
async function home(filter) {
let classes = [{
type_id: '1',
type_name: '电影',
},{
type_id: '2',
type_name: '剧集',
},{
type_id: '3',
type_name: '综艺',
},{
type_id: '4',
type_name: '动漫',
},{
type_id: '26',
type_name: '短剧',
}];
let filterObj = genFilterObj();
return JSON.stringify({
class: classes,
filters: filterObj
});
}
async function homeVod() {
let url = siteUrl;
let videos = await getVideos(url);
return JSON.stringify({
list: videos,
});
}
async function category(tid, pg, filter, ext) {
if (!pg) pg = 1;
if (pg <= 0) pg = 1;
let id = ext['id'] || tid;
let year = ext['year'] || '';
let area = ext['area'] || '';
let url = siteUrl + '/index.php?m=vod-list-id-'+id+'-pg-'+pg+'-order--by-time-class-0-year-'+year+'-letter--area-'+area+'-lang-.html';
let videos = await getVideos(url);
return JSON.stringify({
list: videos,
page: pg,
});
}
async function detail(id) {
try {
const html = await request(siteUrl + id);
let $ = load(html);
let content = $('.detail-con p').text();
let director = _.map($('.desc_item:eq(2) font a'), (n) => {
return $(n).text();
}).join(' ');
let actor = _.map($('.desc_item:eq(1) font a'), (n) => {
return $(n).text();
}).join(' ');
let playFrom = $('.hd > ul > li > a').text();
if (playFrom.indexOf('云播') >= 0) {
playFrom = '云播';
} else {
playFrom = '微信公众号:玉玉应用笔记';
}
let play1Url = siteUrl + $('.greenBtn').attr('href');
//('play1Url', play1Url);
let html2 = await request(play1Url);
let nameUrls = html2.split("mac_url='")[1].split("';")[0];
const video = {
vod_play_from: playFrom,
vod_play_url: nameUrls,
vod_content: content,
vod_director: director,
vod_actor: actor,
};
const list = [video];
const result = { list };
return JSON.stringify(result);
} catch (e) {
console.log('err', e);
}
return null;
}
async function search(wd, quick, pg) {
let url = siteUrl + '/index.php?m=vod-search';
const html = await request(url, {wd: wd}, true);
const $ = load(html);
const cards = $('#data_list li')
let videos = _.map(cards, (n) => {
let id = $($(n).find('a')[0]).attr('href');
let name = $($(n).find('span.sTit')[0]).text();
let pic = $($(n).find('img')[0]).attr('src');
let remarks = $($(n).find('span.sStyle')[0]).text().trim();
return {
vod_id: id,
vod_name: name,
vod_pic: pic,
vod_remarks: remarks,
};
});
return JSON.stringify({
list: videos,
});
}
async function play(flag, id, flags) {
let playUrl = id;
if (flag === '云播') {
playUrl = jxUrl[3] + id;
} else {
playUrl = jxUrl[0] + id;
}
const html = (await req(playUrl, {
method: 'get',
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
'Referer': PARSE_URL + '?',
}
})).content;
//const html = await request(playUrl);
const $ = load(html);
for(const n of $('script')) {
if($(n).text().indexOf("url: '") >= 0) {
let url = $(n).text().split("url: '")[1].split("'")[0];
if(url) {
playUrl = url;
}
return JSON.stringify({
parse: 0,
url: playUrl,
});
}
if($(n).text().indexOf("var url='") >= 0) {
let url = $(n).text().split("var url='")[1].split("';")[0];
if(url) {
playUrl = url;
}
return JSON.stringify({
parse: 0,
url: playUrl,
});
}
}
return JSON.stringify({
parse: 1,
url: playUrl,
});
}
function genFilterObj() {
return {
'1': [{'key': 'id', 'name': '类型', 'value': [{'n': '全部类型', 'v': '1'}, {'n': '动作', 'v': '5'}, {'n': '喜剧', 'v': '6'}, {'n': '爱情', 'v': '7'}, {'n': '科幻', 'v': '8'}, {'n': '恐怖', 'v': '9'}, {'n': '剧情', 'v': '10'}, {'n': '战争', 'v': '11'},{'n': '惊悚', 'v': '16'},{'n': '奇幻', 'v': '17'}]},
{'key': 'area', 'name': '地区', 'value': [{'n': '全部地区', 'v': ''}, {'n': '大陆', 'v': '大陆'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '美国', 'v': '美国'}, {'n': '韩国', 'v': '韩国'},{'n': '日本', 'v': '日本'}]},
{'key': 'year', 'name': '年份', 'value': [{'n': '全部年份', 'v': ''}, {'n': '2024', 'v': '2024'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}]}
],
'2': [{'key': 'id', 'name': '类型', 'value': [{'n': '全部类型', 'v': '2'}, {'n': '国产剧', 'v': '12'}, {'n': '港台剧', 'v': '13'},{'n': '日韩剧', 'v': '14'}, {'n': '欧美剧', 'v': '15'}]},
{'key': 'area', 'name': '地区', 'value': [{'n': '全部地区', 'v': ''}, {'n': '大陆', 'v': '大陆'}, {'n': '台湾', 'v': '台湾'}, {'n': '香港', 'v': '香港'}, {'n': '韩国', 'v': '韩国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '泰国', 'v': '泰国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]},
{'key': 'year', 'name': '年份', 'value': [{'n': '全部年份', 'v': ''}, {'n': '2024', 'v': '2024'},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}]}
]
};
}
async function getRecommend(url) {
const html = await request(url);
const $ = load(html);
const cards = $('ul.list_06 li')
let videos = _.map(cards, (n) => {
let id = $($(n).find('a')[0]).attr('href');
let name = $($(n).find('a')[0]).attr('title');
let pic = $($(n).find('img')[0]).attr('src');
let remarks = $($(n).find('font')[0]).text().trim().replaceAll('0.0', '');
return {
vod_id: id,
vod_name: name,
vod_pic: pic,
vod_remarks: remarks,
};
});
return videos;
}
async function getVideos(url) {
const html = await request(url);
const $ = load(html);
const cards = $('ul.resize_list li')
let videos = [];
_.forEach(cards, (n) => {
let id = $($(n).find('a')[0]).attr('href');
let name = $($(n).find('a')[0]).attr('title');
let pic = $($(n).find('img')[0]).attr('src');
let remarks = $(n).find('span.sBottom').text().trim();
if(pic) {
videos.push({
vod_id: id,
vod_name: name,
vod_pic: pic,
vod_remarks: remarks,
});
}
});
return videos;
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search,
};
}

2
js/pako.min.js vendored Normal file

File diff suppressed because one or more lines are too long

192
js/py_央视少儿.js Normal file
View File

@ -0,0 +1,192 @@
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64
import re
class Spider(Spider): # 元类 默认的元类 type
def getName(self):
return "央视片库"
def init(self,extend=""):
print("============{0}============".format(extend))
pass
def isVideoFormat(self,url):
pass
def manualVideoCheck(self):
pass
def homeContent(self,filter):
result = {}
cateManual = {
"动画片": "动画片",
#"特别节目": "特别节目"
}
classes = []
for k in cateManual:
classes.append({
'type_name':k,
'type_id':cateManual[k]
})
result['class'] = classes
if(filter):
result['filters'] = self.config['filter']
return result
def homeVideoContent(self):
result = {
'list':[]
}
return result
def categoryContent(self,tid,pg,filter,extend):
result = {}
month = ""
year = ""
if 'month' in extend.keys():
month = extend['month']
if 'year' in extend.keys():
year = extend['year']
if year == '':
month = ''
prefix = year + month
url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955899450127&area=&sc=&fc=%E5%8A%A8%E7%94%BB%E7%89%87&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
if tid=="电视剧":
url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955853485115&area=&sc=&fc=%E7%94%B5%E8%A7%86%E5%89%A7&year=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
elif tid=="纪录片":
url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955924871139&fc=%E7%BA%AA%E5%BD%95%E7%89%87&channel=&sc=&year=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
elif tid=="4":
url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955953877151&channel=&sc=&fc=%E7%89%B9%E5%88%AB%E8%8A%82%E7%9B%AE&bigday=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
suffix = ""
jo = self.fetch(url.format(pg),headers=self.header).json()
vodList=jo["data"]["list"]
videos = []
for vod in vodList:
lastVideo =vod['url']
brief=vod['brief']
if len(brief) == 0:
brief = ' '
if len(lastVideo) == 0:
lastVideo = '_'
guid = tid+'###'+vod["title"]+'###'+lastVideo+'###'+vod['image']+'###'+brief
title = vod["title"]
img = vod['image']
videos.append({
"vod_id":guid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":''
})
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self,array):
aid = array[0].split('###')
if aid[2].find("http")<0:
return {}
tid = aid[0]
logo = aid[3]
lastVideo = aid[2]
title = aid[1]
date = aid[0]
if lastVideo == '_':
return {}
rsp = self.fetch(lastVideo)
htmlTxt=rsp.text
column_id = ""
videoList = []
patternTxt=r"'title':\s*'(.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'url':\s*'(.+?)'"
titleIndex=0
UrlIndex=3
if tid=="电视剧" or tid=="纪录片":
patternTxt=r"'title':\s*'(.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'url':\s*'(.+?)'"
titleIndex=0
UrlIndex=3
elif tid=="特别节目":
patternTxt=r'class="tp1"><a\s*href="(https://.+?)"\s*target="_blank"\s*title="(.+?)"></a></div>'
titleIndex=1
UrlIndex=0
#https://api.cntv.cn/NewVideo/getVideoListByAlbumIdNew?id=VIDA3YcIusJ9mh4c9mw5XHyx230113&serviceId=tvcctv//由于方式不同暂时不做
pattern = re.compile(patternTxt)
ListRe=pattern.findall(htmlTxt)
for value in ListRe:
videoList.append(value[titleIndex]+"$"+value[UrlIndex])
if len(videoList) == 0:
return {}
vod = {
"vod_id":array[0],
"vod_name":title,
"vod_pic":logo,
"type_name":tid,
"vod_year":date,
"vod_area":"",
"vod_remarks":date,
"vod_actor":"",
"vod_director":column_id,
"vod_content":aid[4]
}
vod['vod_play_from'] = '🌸荷城茶秀接口🌸CCTV频道'
vod['vod_play_url'] = "#".join(videoList)
result = {
'list':[
vod
]
}
return result
def searchContent(self,key,quick):
result = {
'list':[]
}
return result
def playerContent(self,flag,id,vipFlags):
result = {}
rsp = self.fetch(id)
htmlTxt=rsp.text
pattern = re.compile(r'var\sguid\s*=\s*"(.+?)";')
ListRe=pattern.findall(htmlTxt)
if ListRe==[]:
return result
url = "https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid={0}".format(ListRe[0])
jo = self.fetch(url,headers=self.header).json()
link = jo['hls_url'].strip()
rsp = self.fetch(link,headers=self.header)
content = rsp.text.strip()
arr = content.split('\n')
urlPrefix = self.regStr(link,'(http[s]?://[a-zA-z0-9.]+)/')
subUrl = arr[-1].split('/')
subUrl[3] = '1200'
subUrl[-1] = '1200.m3u8'
hdUrl = urlPrefix + '/'.join(subUrl)
url = urlPrefix + arr[-1]
hdRsp = self.fetch(hdUrl,headers=self.header)
if hdRsp.status_code == 200:
url = hdUrl
result["parse"] = 0
result["playUrl"] = ''
result["url"] = url
result["header"] = ''
return result
config = {
"player": {},
"filter": {"CCTV":[{"key":"cid","name":"频道","value":[{"n":"全部","v":""},{"n":"CCTV-1综合","v":"EPGC1386744804340101"},{"n":"CCTV-2财经","v":"EPGC1386744804340102"},{"n":"CCTV-3综艺","v":"EPGC1386744804340103"},{"n":"CCTV-4中文国际","v":"EPGC1386744804340104"},{"n":"CCTV-5体育","v":"EPGC1386744804340107"},{"n":"CCTV-6电影","v":"EPGC1386744804340108"},{"n":"CCTV-7国防军事","v":"EPGC1386744804340109"},{"n":"CCTV-8电视剧","v":"EPGC1386744804340110"},{"n":"CCTV-9纪录","v":"EPGC1386744804340112"},{"n":"CCTV-10科教","v":"EPGC1386744804340113"},{"n":"CCTV-11戏曲","v":"EPGC1386744804340114"},{"n":"CCTV-12社会与法","v":"EPGC1386744804340115"},{"n":"CCTV-13新闻","v":"EPGC1386744804340116"},{"n":"CCTV-14少儿","v":"EPGC1386744804340117"},{"n":"CCTV-15音乐","v":"EPGC1386744804340118"},{"n":"CCTV-16奥林匹克","v":"EPGC1634630207058998"},{"n":"CCTV-17农业农村","v":"EPGC1563932742616872"},{"n":"CCTV-5+体育赛事","v":"EPGC1468294755566101"}]},{"key":"fc","name":"分类","value":[{"n":"全部","v":""},{"n":"新闻","v":"新闻"},{"n":"体育","v":"体育"},{"n":"综艺","v":"综艺"},{"n":"健康","v":"健康"},{"n":"生活","v":"生活"},{"n":"科教","v":"科教"},{"n":"经济","v":"经济"},{"n":"农业","v":"农业"},{"n":"法治","v":"法治"},{"n":"军事","v":"军事"},{"n":"少儿","v":"少儿"},{"n":"动画","v":"动画"},{"n":"纪实","v":"纪实"},{"n":"戏曲","v":"戏曲"},{"n":"音乐","v":"音乐"},{"n":"影视","v":"影视"}]},{"key":"fl","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"month","name":"月份","value":[{"n":"全部","v":""},{"n":"12","v":"12"},{"n":"11","v":"11"},{"n":"10","v":"10"},{"n":"09","v":"09"},{"n":"08","v":"08"},{"n":"07","v":"07"},{"n":"06","v":"06"},{"n":"05","v":"05"},{"n":"04","v":"04"},{"n":"03","v":"03"},{"n":"02","v":"02"},{"n":"01","v":"01"}]}]}
}
header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36",
"Origin": "https://tv.cctv.com",
"Referer": "https://tv.cctv.com/"
}
def localProxy(self,param):
return [200, "video/MP2T", action, ""]

204
js/tx.js Normal file
View File

@ -0,0 +1,204 @@
var rule = {
title: '腾云驾雾[官]',
host: 'https://v.%71%71.com',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchable: 2,
filterable: 1,
multi: 1,
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
headers: {
'User-Agent': 'PC_UA'
},
timeout: 5000,
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
cate_exclude: '会员|游戏|全部',
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
class_name: '电影&电视剧&综艺&动漫&少儿&纪录片',
class_url: 'movie&tv&variety&cartoon&child&doco',
limit: 20,
play_parse: true,
lazy: $js.toString(() => {
let d = [];
const blockedField = 'https://123.yp22.cn/d/le/53SqFaimyxG6LrduZ';
try {
// 发起请求并获取响应,添加请求头
let headers = {
'User-Agent': 'okhttp/4.12.0'
};
let responseText = request("http://150.158.112.123/%E5%85%AC%E4%BC%97%E5%8F%B7~%E7%8E%89%E7%8E%89%E5%BA%94%E7%94%A8%E7%AC%94%E8%AE%B0/jiexi.php?url=" + input, { headers: headers });
console.log("响应文本:", responseText); // 查看原始响应内容
//备用http://llyh.xn--yi7aa.top/api/?key=5b317c16d457b31a3150d87c0a362a9e&url=
// 解析 JSON 数据
let response = JSON.parse(responseText);
// 查找以 'url' 开头的字段
let urlField = Object.keys(response).find(key => key.startsWith('url'));
// 提取找到的字段值
let urlValue = urlField ? response[urlField] : null;
console.log("提取的随机字段值:", urlValue); // 查看提取的值
if (response.url.includes(blockedField)) {
throw new Error('该链接已被屏蔽');
};
if (urlValue) {
// 处理 urlValue或将其用于 input
input = {
url: urlValue,
parse: 0,
header: rule.headers
};
} else {
// 处理没有找到字段的情况
console.error("没有找到以 'url' 开头的字段");
}
} catch (error) {
console.error("处理请求或数据时发生错误:", error);
}
setResult(d);
}),
//lazy:'js:input="http:\\/\\/43.248.100.147:6068\\/KEY\\/XGJ\\/root\\/key\\/60.php?url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
let html = fetch(input, fetch_params);
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function(it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(fetch(dataUrl, fetch_params));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function(item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function(it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = fetch(o_url, fetch_params);
eval(o_html);
QZOutputJson.results.forEach(function(it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function(it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function(it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_play_from = yg.length < 1 ? "四季快云" : "四季快云$$$预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function(it) {
return it.map(function(its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = request(input);
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function(it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
// let url = pdfh(it, ".result_title&&a&&href");
let url = pdfh(it, "div&&r-data");
// log(longText);
// log(shortText);
// log('url:'+url);
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
}

212
js/tx4k.js Normal file
View File

@ -0,0 +1,212 @@
var rule = {
title: '腾云驾雾[官]',
//parseUrl: 'http://pan.qiaoji8.com/tvbox/neibu.php?url=',
//parseUrl: 'http://jx.hjfggzs.top/api/diy/?key=ASSNxYwYLK3KDm2IA0&url=',
parseUrl: 'http://222.186.57.24:7600/jx.php?url=',
host: 'https://v.%71%71.com',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchable: 2,
filterable: 1,
multi: 1,
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
headers: {
'User-Agent': 'PC_UA'
},
timeout: 5000,
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
cate_exclude: '会员|游戏|全部',
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
class_name: '电视剧&电影&综艺&动漫&少儿&纪录片',
class_url: 'tv&movie&variety&cartoon&child&doco',
//预处理: $js.toString(() => {
// let html = request('http://www.mpanso.com/ceshi/titi.json');
// rule.parseUrl = JSON.parse(html).parses[0].url
//}),
limit: 20,
play_parse:true,
// play_parse:true,
lazy: $js.toString(() => {
let d = [];
try {
// 发起请求并获取响应,添加请求头
let headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' // 替换为您的 User-Agent 字符串
};
let responseText = request(rule.parseUrl + input, { headers: headers });
//let responseText = request("http://jx.jwl.icu/jx.php?url=" + input, { headers: headers });
//let responseText = request("http://110.42.99.99:3722/lg.php/?url=" + input, { headers: headers });
console.log("响应文本:", responseText); // 查看原始响应内容
// 解析 JSON 数据
let response = JSON.parse(responseText);
// 查找以 'url' 开头的字段
let urlField = Object.keys(response).find(key => key.startsWith('url'));
// 提取找到的字段值
let urlValue = urlField ? response[urlField] : null;
console.log("提取的随机字段值:", urlValue); // 查看提取的值
if (urlValue) {
// 处理 urlValue或将其用于 input
input = {
url: urlValue,
parse: 0,
header: rule.headers
};
} else {
// 处理没有找到字段的情况
console.error("没有找到以 'url' 开头的字段");
}
} catch (error) {
console.error("处理请求或数据时发生错误:", error);
}
setResult(d);
}),
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
let html = fetch(input, fetch_params);
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function (it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(fetch(dataUrl, fetch_params));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function (item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function (it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = fetch(o_url, fetch_params);
eval(o_html);
QZOutputJson.results.forEach(function (it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function (it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function (it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_content = '四季快云\r\n';
VOD.vod_play_from = yg.length < 1 ? "四季快云" : "四季快云$$$预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function (it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function (it) {
return it.map(function (its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = request(input);
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function (it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
// let url = pdfh(it, ".result_title&&a&&href");
let url = pdfh(it, "div&&r-data");
// log(longText);
// log(shortText);
// log('url:'+url);
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
}

BIN
js/xyq.jar Normal file

Binary file not shown.

83
js/youku.js Normal file

File diff suppressed because one or more lines are too long

65
js/中医.js Normal file
View File

@ -0,0 +1,65 @@
{
"classes": [
{
"type_name": "中医药",
"type_id": "中医药"
},
{
"type_name": "中医基础",
"type_id": "中医基础"
},
{
"type_name": "中药基础",
"type_id": "中药基础"
},
{
"type_name": "伤寒论",
"type_id": "伤寒论"
},
{
"type_name": "难论",
"type_id": "难论"
},
{
"type_name": "神农本草经",
"type_id": "神农本草经"
},
{
"type_name": "金匮要略",
"type_id": "金匮要略"
},
{
"type_name": "脉经",
"type_id": "脉经"
},
{
"type_name": "中藏经",
"type_id": "中藏经"
},
{
"type_name": "针灸甲乙经",
"type_id": "针灸甲乙经"
},
{
"type_name": "濒湖脉学",
"type_id": "濒湖脉学"
},
{
"type_name": "本草纲目",
"type_id": "本草纲目"
},
{
"type_name": "汤头歌诀",
"type_id": "汤头歌诀"
},
{
"type_name": "药性赋",
"type_id": "药性赋"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

72
js/企鹅直播.js Normal file
View File

@ -0,0 +1,72 @@
{
"author": "率性而活",
"ua":"Mozilla/5.0 (Linux; Android 8.1.0; OPPO R11t Build/OPM1.171019.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.19 SP-engine/2.15.0 baiduboxapp/11.19.5.10 (Baidu; P1 8.1.0)",
//125.88.199.34 m.live.qq.com
//"dcVipFlag": "true",
//"dcPlayUrl": "true",
"homeUrl": "https://m.live.qq.com/directory/game/Basketball",
"cateManual": {
"篮球": "@directory/game/Basketball",
"足球":"@directory/game/Football",
"搏击":"@directory/game/Fight",
"网球排球":"@directory/game/Tennis",
"英文原声":"@directory/game/English",
"台球":"@directory/game/Billiards",
"棒球/橄榄球/冰球":"@directory/game/MLB",
"NBA":"@directory/game/NBA",
"CBA":"@directory/game/CBA",
"颜值":"@directory/game/YZ",
"棋牌/游戏":"@directory/game/Game"
},
"homeVodNode": "//a[contains(@href,'/10')]","homeVodName": "/div/following-sibling::p[1]/text()","homeVodId": "/@href","homeVodIdR": "/(\\S+)","homeVodImg": "//div[contains(@style,'http')]/@style","homeVodImgR": "(http.*?jpg)","homeVodMark": "",
"cateUrl2": "https://m.live.qq.com/{cateId}",
"cateVodNode": "//a[contains(@href,'/10')]",
"cateVodName": "/div/following-sibling::p[1]/text()",
"cateVodId": "/@href",
"cateVodIdR": "/(\\S+)",
"cateVodImg": "//div[contains(@style,'http')]/@style",
"cateVodImgR": "(http.*?jpg)",
"cateVodMark": "",
//
"dtUrl": "https://m.live.qq.com/{vid}",
"dtNode": "//body",
"dtName": "//p[contains(@class,'p-title')]/text()",
"dtNameR": "(“.*?”)",
"dtImg": "//div[contains(@class,'share-bar')]/@data-pic",
"dtImgR": "",
"dtCate": "",
"dtCateR": "",
"dtYear": "",
"dtYearR": "",
"dtArea": "",
"dtAreaR": "",
"dtDirector": "",
"dtDirectorR": "",
"dtActor": "",
"dtActorR": "",
"dtDesc": "",
"dtDescR": "",
"dtFromNode": "//p[contains(@class,'p-title')]",
"dtFromName": "/text()",
"dtFromNameR": "(\\企鹅体育)",
"dtUrlNode": "//div[contains(@class,'wenzi')]",
"dtUrlSubNode": "/a",
"dtUrlId": "/text()",
"dtUrlIdR": "m.live.qq.com/(\\S+)",
"dtUrlName": "/text()",
"dtUrlNameR": "(\\d+)",
"playUrl": "https://m.live.qq.com/{playUrl}",
"playUa":"{\"User-Agent\":\"okhttp/3.12.11\"}"
}

90
js/体育.js Normal file
View File

@ -0,0 +1,90 @@
{
"classes": [
{
"type_name": "UFC",
"type_id": "UFC"
},
{
"type_name": "田径",
"type_id": "田径"
},
{
"type_name": "赛艇",
"type_id": "赛艇"
},
{
"type_name": "拳击",
"type_id": "拳击"
},
{
"type_name": "皮划艇",
"type_id": "皮划艇赛事"
},
{
"type_name": "自行车",
"type_id": "自行车赛事"
},
{
"type_name": "击剑",
"type_id": "击剑"
},
{
"type_name": "体操",
"type_id": "体操"
},
{
"type_name": "举重",
"type_id": "举重"
},
{
"type_name": "柔道",
"type_id": "柔道"
},
{
"type_name": "藤球",
"type_id": "藤球"
},
{
"type_name": "摔跤",
"type_id": "摔跤"
},
{
"type_name": "水上项目",
"type_id": "水上项目"
},
{
"type_name": "现代五项",
"type_id": "现代五项"
},
{
"type_name": "马术",
"type_id": "马术"
},
{
"type_name": "跆拳道",
"type_id": "跆拳道"
},
{
"type_name": "射击",
"type_id": "射击"
},
{
"type_name": "射箭",
"type_id": "射箭"
},
{
"type_name": "铁人三项",
"type_id": "铁人三项"
},
{
"type_name": "帆船帆板",
"type_id": "帆船帆板"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

26
js/兔小贝.js Normal file
View File

@ -0,0 +1,26 @@
var rule = {
title:'兔小贝',
host:'https://www.tuxiaobei.com',
homeUrl:'',
url:'/list/mip-data?typeId=fyclass&page=fypage&callback=',
detailUrl:'/play/fyid',
searchUrl:'/search/index?key=**',
searchable:2,
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
class_url:'2&3&4&25',
class_name:'儿歌&故事&国学&启蒙',
//class_name:'#page-viewport&&ul&&li;.text&&Text;a&&href;/(.*)',
cate_exclude:'应用',
推荐:'.pic-list.list-box;.items;.text&&Text;mip-img&&src;.all&&Text;a&&href',
double:true,
limit:5,
play_parse:true,
lazy:'js:fetch_params.headers["user-agent"] = IOS_UA;let html=fetch(input,fetch_params);let src = jsp.pdfh(html,"body&&#videoWrap&&video-src");input=src;',
// 一级:'json:data.items;name;image;collect_num;category_id+video_id',
一级:'json:data.items;name;image;duration_string;video_id',
二级:'*',
搜索:'.list-con&&.items;.text&&Text;mip-img&&src;.time&&Text;a&&href',
}

1944
js/初中.js Normal file

File diff suppressed because it is too large Load Diff

2631
js/初中课堂.json Normal file

File diff suppressed because it is too large Load Diff

55
js/央视大全.js Normal file
View File

@ -0,0 +1,55 @@
[{
"type_id": "EPGC1386744804340101",
"type_name": "CCTV-1综合"
},{
"type_id": "EPGC1386744804340102",
"type_name": "CCTV-2财经"
},{
"type_id": "EPGC1386744804340103",
"type_name": "CCTV3-综艺"
},{
"type_id": "EPGC1386744804340104",
"type_name": "CCTV4-中文国际"
},{
"type_id": "EPGC1386744804340107",
"type_name": "CCTV5-体育"
},{
"type_id": "EPGC1468294755566101",
"type_name": "CCTV5+体育赛事"
},{
"type_id": "EPGC1386744804340108",
"type_name": "CCTV6-电影"
},{
"type_id": "EPGC1386744804340109",
"type_name": "CCTV-7国防军事"
},{
"type_id": "EPGC1386744804340110",
"type_name": "CCTV-8电视剧"
},{
"type_id": "EPGC1386744804340112",
"type_name": "CCTV-9纪录"
},{
"type_id": "EPGC1386744804340113",
"type_name": "CCTV-10科教"
},{
"type_id": "EPGC1386744804340114",
"type_name": "CCTV-11戏曲"
},{
"type_id": "EPGC1386744804340115",
"type_name": "CCTV-12社会与法"
},{
"type_id": "EPGC1386744804340116",
"type_name": "CCTV-13新闻"
},{
"type_id": "EPGC1386744804340117",
"type_name": "CCTV-14少儿"
},{
"type_id": "EPGC1386744804340118",
"type_name": "CCTV-15音乐"
},{
"type_id": "EPGC1634630207058998",
"type_name": "CCTV-16奥林匹克"
},{
"type_id": "EPGC1563932742616872",
"type_name": "CCTV-17农业农村"
}]

12
js/央视经典.js Normal file
View File

@ -0,0 +1,12 @@
{
"classes": [
{"type_name":"典籍里的中国","type_id": "典籍里的中国"},
{"type_name":"朗读者","type_id": "朗读者"},
{"type_name":"我爱发明","type_id": "CCTV 我爱发明"},
{"type_name":"《读书的力量》","type_id": "《读书的力量》"},
{"type_name":"国宝发现","type_id": "国宝发现"},
{"type_name":"国宝档案","type_id": "国宝档案"},
{"type_name":"人体奥秘","type_id": "小灯塔人体奥秘"},
{"type_name":"给男孩的性教育课","type_id": "小灯塔给男孩的性教育课"}
]
}

60
js/女团.js Normal file
View File

@ -0,0 +1,60 @@
{
"classes": [
{"type_name": "中国女团","type_id":"中国女团4K"},
{"type_name": "日本女团","type_id":"日本女团4K"},
{"type_name": "韩国女团","type_id":"韩国女团4K"},
{"type_name": "SNH48","type_id":"SNH48MV合集"},
{"type_name": "S.H.E","type_id":"S.H.EMV合集"},
{"type_name": "Twins","type_id":"TwinsMV合集"},
{"type_name": "火箭少女101","type_id":"火箭少女101MV合集"},
{"type_name": "BY2","type_id":"BY2MV合集"},
{"type_name": "S.I.N.G","type_id":"S.I.N.GMV合集"},
{"type_name": "3unshine","type_id":"3unshineMV合集"},
{"type_name": "蜜蜂少女队","type_id":"蜜蜂少女队MV合集"},
{"type_name": "七朵组合","type_id":"七朵组合MV合集"},
{"type_name": "GNZ48","type_id":"GNZ48MV合集"},
{"type_name": "TWICE","type_id":"TWICEMV合集"},
{"type_name": "4MINUTE","type_id":"4MINUTEMV合集"},
{"type_name": "EXID","type_id":"EXIDMV合集"},
{"type_name": "KARA","type_id":"KARAMV合集"},
{"type_name": "TARA","type_id":"TARAMV合集"},
{"type_name": "BLACKPINK","type_id":"BLACKPINKMV合集"},
{"type_name": "LOONA","type_id":"LOONAMV合集"},
{"type_name": "ITZY","type_id":"ITZYMV合集"},
{"type_name": "RedVelvet","type_id":"RedVelvetMV合集"},
{"type_name": "Everglow","type_id":"EverglowMV合集"},
{"type_name": "Mamamoo","type_id":"MamamooMV合集"},
{"type_name": "少女时代","type_id":"少女时代MV合集"},
{"type_name": "S.E.S","type_id":"S.E.SMV合集"},
{"type_name": "FIN.K.L","type_id":"FIN.K.LMV合集"},
{"type_name": "2NE1","type_id":"2NE1MV合集"},
{"type_name": "WonderGirls","type_id":"WonderGirlsMV合集"},
{"type_name": "IZ*ONE","type_id":"IZ*ONEMV合集"},
{"type_name": "Sistar","type_id":"SistarMV合集"},
{"type_name": "Apink","type_id":"ApinkMV合集"},
{"type_name": "AOA","type_id":"AOAMV合集"},
{"type_name": "GFRIEND","type_id":"GFRIENDMV合集"},
{"type_name": "f(x)","type_id":"f(x)MV合集"},
{"type_name": "(G)I-DLE","type_id":"(G)I-DLEMV合集"},
{"type_name": "Itzy","type_id":"ItzyMV合集"},
{"type_name": "Oh!GG","type_id":"Oh!GGMV合集"},
{"type_name": "GirlCrush","type_id":"GirlCrushMV合集"},
{"type_name": "AKB48","type_id":"AKB48MV合集"},
{"type_name": "SKE48","type_id":"SKE48MV合集"},
{"type_name": "NMB48","type_id":"NMB48MV合集"},
{"type_name": "JKT48","type_id":"JKT48MV合集"},
{"type_name": "HKT48","type_id":"HKT48MV合集"},
{"type_name": "AKB48TeamTP","type_id":"AKB48TeamTPMV合集"},
{"type_name": "Perfume","type_id":"PerfumeMV合集"},
{"type_name": "桃色幸运草Z","type_id":"桃色幸运草ZMV合集"},
{"type_name": "乃木坂46乃","type_id":"乃木坂46乃MV合集"},
{"type_name": "樱坂46","type_id":"樱坂46MV合集"},
{"type_name": "日向坂46","type_id":"日向坂46MV合集"},
{"type_name": "E-girls","type_id":"E-girlsMV合集"},
{"type_name": "NiziU","type_id":"NiziUMV合集"},
{"type_name": "BiSH","type_id":"BiSHMV合集"},
{"type_name": "早安少女组","type_id":"早安少女组MV合集"}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

798
js/小学.js Normal file
View File

@ -0,0 +1,798 @@
{
"classes": [{
"type_name": "1年级语文",
"type_id": "1年级语文"
}, {
"type_name": "1年级数学",
"type_id": "1年级数学"
}, {
"type_name": "1年级英语",
"type_id": "1年级英语"
}, {
"type_name": "2年级语文",
"type_id": "2年级语文"
}, {
"type_name": "2年级数学",
"type_id": "2年级数学"
}, {
"type_name": "2年级英语",
"type_id": "2年级英语"
}, {
"type_name": "3年级语文",
"type_id": "3年级语文"
}, {
"type_name": "3年级数学",
"type_id": "3年级数学"
}, {
"type_name": "3年级英语",
"type_id": "3年级英语"
}, {
"type_name": "4年级语文",
"type_id": "4年级语文"
}, {
"type_name": "4年级数学",
"type_id": "4年级数学"
}, {
"type_name": "4年级英语",
"type_id": "4年级英语"
}, {
"type_name": "5年级语文",
"type_id": "5年级语文"
}, {
"type_name": "5年级数学",
"type_id": "5年级数学"
}, {
"type_name": "5年级英语",
"type_id": "5年级英语"
}, {
"type_name": "6年级语文",
"type_id": "6年级语文"
}, {
"type_name": "6年级数学",
"type_id": "6年级数学"
}, {
"type_name": "6年级英语",
"type_id": "6年级英语"
}],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
"filter": {
"1年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级语文"
}, {
"n": "人教版",
"v": "人教版1年级语文"
}, {
"n": "北师大版",
"v": "北师大版1年级语文"
}, {
"n": "苏教版",
"v": "苏教版1年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"1年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级英语"
},{
"n": "外研版",
"v": "外研版1年级英语"
}, {
"n": "人教版",
"v": "人教版1年级英语"
}, {
"n": "北师大版",
"v": "北师大版1年级英语"
}, {
"n": "苏教版",
"v": "苏教版1年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"1年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级数学"
}, {
"n": "人教版",
"v": "人教版1年级数学"
},{
"n": "西师大版",
"v": "西师大版1年级数学"
}, {
"n": "北师大版",
"v": "北师大版1年级数学"
}, {
"n": "苏教版",
"v": "苏教版1年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级语文"
}, {
"n": "人教版",
"v": "人教版2年级语文"
}, {
"n": "北师大版",
"v": "北师大版2年级语文"
}, {
"n": "苏教版",
"v": "苏教版2年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级英语"
},{
"n": "外研版",
"v": "外研版2年级英语"
}, {
"n": "人教版",
"v": "人教版2年级英语"
}, {
"n": "北师大版",
"v": "北师大版2年级英语"
}, {
"n": "苏教版",
"v": "苏教版2年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级数学"
}, {
"n": "人教版",
"v": "人教版2年级数学"
},{
"n": "西师大版",
"v": "西师大版2年级数学"
}, {
"n": "北师大版",
"v": "北师大版2年级数学"
}, {
"n": "苏教版",
"v": "苏教版2年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级语文"
}, {
"n": "人教版",
"v": "人教版3年级语文"
}, {
"n": "北师大版",
"v": "北师大版3年级语文"
}, {
"n": "苏教版",
"v": "苏教版3年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级英语"
},{
"n": "外研版",
"v": "外研版3年级英语"
}, {
"n": "人教版",
"v": "人教版3年级英语"
}, {
"n": "北师大版",
"v": "北师大版3年级英语"
}, {
"n": "苏教版",
"v": "苏教版3年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级数学"
}, {
"n": "人教版",
"v": "人教版3年级数学"
},{
"n": "西师大版",
"v": "西师大版3年级数学"
}, {
"n": "北师大版",
"v": "北师大版3年级数学"
}, {
"n": "苏教版",
"v": "苏教版3年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级语文"
}, {
"n": "人教版",
"v": "人教版4年级语文"
}, {
"n": "北师大版",
"v": "北师大版4年级语文"
}, {
"n": "苏教版",
"v": "苏教版4年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级英语"
},{
"n": "外研版",
"v": "外研版4年级英语"
}, {
"n": "人教版",
"v": "人教版4年级英语"
}, {
"n": "北师大版",
"v": "北师大版4年级英语"
}, {
"n": "苏教版",
"v": "苏教版4年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级数学"
}, {
"n": "人教版",
"v": "人教版4年级数学"
},{
"n": "西师大版",
"v": "西师大版4年级数学"
}, {
"n": "北师大版",
"v": "北师大版4年级数学"
}, {
"n": "苏教版",
"v": "苏教版4年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级语文"
}, {
"n": "人教版",
"v": "人教版5年级语文"
}, {
"n": "北师大版",
"v": "北师大版5年级语文"
}, {
"n": "苏教版",
"v": "苏教版5年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级英语"
},{
"n": "外研版",
"v": "外研版5年级英语"
}, {
"n": "人教版",
"v": "人教版5年级英语"
}, {
"n": "北师大版",
"v": "北师大版5年级英语"
}, {
"n": "苏教版",
"v": "苏教版5年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级数学"
}, {
"n": "人教版",
"v": "人教版5年级数学"
},{
"n": "西师大版",
"v": "西师大版5年级数学"
}, {
"n": "北师大版",
"v": "北师大版5年级数学"
}, {
"n": "苏教版",
"v": "苏教版5年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级语文"
}, {
"n": "人教版",
"v": "人教版6年级语文"
}, {
"n": "北师大版",
"v": "北师大版6年级语文"
}, {
"n": "苏教版",
"v": "苏教版6年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级英语"
},{
"n": "外研版",
"v": "外研版6年级英语"
}, {
"n": "人教版",
"v": "人教版6年级英语"
}, {
"n": "北师大版",
"v": "北师大版6年级英语"
}, {
"n": "苏教版",
"v": "苏教版6年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级数学"
}, {
"n": "人教版",
"v": "人教版6年级数学"
},{
"n": "西师大版",
"v": "西师大版6年级数学"
}, {
"n": "北师大版",
"v": "北师大版6年级数学"
}, {
"n": "苏教版",
"v": "苏教版6年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}]
}
}

764
js/小学课堂.json Normal file
View File

@ -0,0 +1,764 @@
{
"classes": [{
"type_name": "1年级语文",
"type_id": "1年级语文"
}, {
"type_name": "1年级数学",
"type_id": "1年级数学"
}, {
"type_name": "1年级英语",
"type_id": "1年级英语"
}, {
"type_name": "2年级语文",
"type_id": "2年级语文"
}, {
"type_name": "2年级数学",
"type_id": "2年级数学"
}, {
"type_name": "2年级英语",
"type_id": "2年级英语"
}, {
"type_name": "3年级语文",
"type_id": "3年级语文"
}, {
"type_name": "3年级数学",
"type_id": "3年级数学"
}, {
"type_name": "3年级英语",
"type_id": "3年级英语"
}, {
"type_name": "4年级语文",
"type_id": "4年级语文"
}, {
"type_name": "4年级数学",
"type_id": "4年级数学"
}, {
"type_name": "4年级英语",
"type_id": "4年级英语"
}, {
"type_name": "5年级语文",
"type_id": "5年级语文"
}, {
"type_name": "5年级数学",
"type_id": "5年级数学"
}, {
"type_name": "5年级英语",
"type_id": "5年级英语"
}, {
"type_name": "6年级语文",
"type_id": "6年级语文"
}, {
"type_name": "6年级数学",
"type_id": "6年级数学"
}, {
"type_name": "6年级英语",
"type_id": "6年级英语"
}],
"cookie": "SESSDATA=01c79709%2C1711618905%2C244c3%2A91CjA9UUnRb_kJg03J5FqUbin76yMY90o1-ckJsM1ItQH21ns4hgcS6Le6oMR3SKtC18QSVmxSbGRhN3cyS3NReERsOHRfYVlhTWJKZjZyTF9wUWJXbjNfaF9qWklFMFpoeVg1ZUhFb0Q0MGFiN3FYd1N3UEFEY1oxX29IdmFSRVVLamcybGhhSkJnIIEC; bili_jct=e9d6e9df733afde2a03693d63a4e77dc; DedeUserID=186957646; DedeUserID__ckMd5=4f717c8832ee1e62; sid=elhiqom1",
"filter": {
"1年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级语文"
}, {
"n": "人教版",
"v": "人教版1年级语文"
}, {
"n": "北师大版",
"v": "北师大版1年级语文"
}, {
"n": "苏教版",
"v": "苏教版1年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"1年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级英语"
}, {
"n": "人教版",
"v": "人教版1年级英语"
}, {
"n": "北师大版",
"v": "北师大版1年级英语"
}, {
"n": "苏教版",
"v": "苏教版1年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"1年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版1年级数学"
}, {
"n": "人教版",
"v": "人教版1年级数学"
}, {
"n": "北师大版",
"v": "北师大版1年级数学"
}, {
"n": "苏教版",
"v": "苏教版1年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级语文"
}, {
"n": "人教版",
"v": "人教版2年级语文"
}, {
"n": "北师大版",
"v": "北师大版2年级语文"
}, {
"n": "苏教版",
"v": "苏教版2年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级英语"
}, {
"n": "人教版",
"v": "人教版2年级英语"
}, {
"n": "北师大版",
"v": "北师大版2年级英语"
}, {
"n": "苏教版",
"v": "苏教版2年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"2年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版2年级数学"
}, {
"n": "人教版",
"v": "人教版2年级数学"
}, {
"n": "北师大版",
"v": "北师大版2年级数学"
}, {
"n": "苏教版",
"v": "苏教版2年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级语文"
}, {
"n": "人教版",
"v": "人教版3年级语文"
}, {
"n": "北师大版",
"v": "北师大版3年级语文"
}, {
"n": "苏教版",
"v": "苏教版3年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级英语"
}, {
"n": "人教版",
"v": "人教版3年级英语"
}, {
"n": "北师大版",
"v": "北师大版3年级英语"
}, {
"n": "苏教版",
"v": "苏教版3年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"3年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版3年级数学"
}, {
"n": "人教版",
"v": "人教版3年级数学"
}, {
"n": "北师大版",
"v": "北师大版3年级数学"
}, {
"n": "苏教版",
"v": "苏教版3年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级语文"
}, {
"n": "人教版",
"v": "人教版4年级语文"
}, {
"n": "北师大版",
"v": "北师大版4年级语文"
}, {
"n": "苏教版",
"v": "苏教版4年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级英语"
}, {
"n": "人教版",
"v": "人教版4年级英语"
}, {
"n": "北师大版",
"v": "北师大版4年级英语"
}, {
"n": "苏教版",
"v": "苏教版4年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"4年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版4年级数学"
}, {
"n": "人教版",
"v": "人教版4年级数学"
}, {
"n": "北师大版",
"v": "北师大版4年级数学"
}, {
"n": "苏教版",
"v": "苏教版4年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级语文"
}, {
"n": "人教版",
"v": "人教版5年级语文"
}, {
"n": "北师大版",
"v": "北师大版5年级语文"
}, {
"n": "苏教版",
"v": "苏教版5年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级英语"
}, {
"n": "人教版",
"v": "人教版5年级英语"
}, {
"n": "北师大版",
"v": "北师大版5年级英语"
}, {
"n": "苏教版",
"v": "苏教版5年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"5年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版5年级数学"
}, {
"n": "人教版",
"v": "人教版5年级数学"
}, {
"n": "北师大版",
"v": "北师大版5年级数学"
}, {
"n": "苏教版",
"v": "苏教版5年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级语文": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级语文"
}, {
"n": "人教版",
"v": "人教版6年级语文"
}, {
"n": "北师大版",
"v": "北师大版6年级语文"
}, {
"n": "苏教版",
"v": "苏教版6年级语文"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级英语": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级英语"
}, {
"n": "人教版",
"v": "人教版6年级英语"
}, {
"n": "北师大版",
"v": "北师大版6年级英语"
}, {
"n": "苏教版",
"v": "苏教版6年级英语"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}],
"6年级数学": [{
"key": "tid",
"name": "分类",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "沪教版",
"v": "沪教版6年级数学"
}, {
"n": "人教版",
"v": "人教版6年级数学"
}, {
"n": "北师大版",
"v": "北师大版6年级数学"
}, {
"n": "苏教版",
"v": "苏教版6年级数学"
}]
}, {
"key": "duration",
"name": "时长",
"value": [{
"n": "全部",
"v": "0"
}, {
"n": "60分钟以上",
"v": "4"
}, {
"n": "30~60分钟",
"v": "3"
}, {
"n": "10~30分钟",
"v": "2"
}, {
"n": "10分钟以下",
"v": "1"
}]
}]
}
}

476
js/少儿教育.json Normal file
View File

@ -0,0 +1,476 @@
{
"classes": [
{
"type_name": "儿童早教",
"type_id": "儿童早教"
},
{
"type_name": "儿童启蒙故事",
"type_id": "儿童启蒙故事"
},
{
"type_name": "儿童英语启蒙",
"type_id": "儿童英语启蒙"
},
{
"type_name": "儿童歌曲",
"type_id": "儿童歌曲"
},
{
"type_name": "儿童绘画",
"type_id": "儿童绘画"
},
{
"type_name": "睡前故事",
"type_id": "睡前故事"
},
{
"type_name": "儿童动画",
"type_id": "儿童动画"
},
{
"type_name": "儿童音乐",
"type_id": "儿童音乐"
},
{
"type_name": "儿童安全教育",
"type_id": "儿童安全教育"
},
{
"type_name": "贝瓦儿歌",
"type_id": "贝瓦儿歌"
},
{
"type_name": "悟空识字",
"type_id": "悟空识字"
},
{
"type_name": "宝宝巴士",
"type_id": "宝宝巴士"
},
{
"type_name": "儿歌多多",
"type_id": "儿歌多多"
},
{
"type_name": "学而思",
"type_id": "学而思"
}],
"cookie": "SESSDATA=01c79709%2C1711618905%2C244c3%2A91CjA9UUnRb_kJg03J5FqUbin76yMY90o1-ckJsM1ItQH21ns4hgcS6Le6oMR3SKtC18QSVmxSbGRhN3cyS3NReERsOHRfYVlhTWJKZjZyTF9wUWJXbjNfaF9qWklFMFpoeVg1ZUhFb0Q0MGFiN3FYd1N3UEFEY1oxX29IdmFSRVVLamcybGhhSkJnIIEC; bili_jct=e9d6e9df733afde2a03693d63a4e77dc; DedeUserID=186957646; DedeUserID__ckMd5=4f717c8832ee1e62; sid=elhiqom1",
"filter": {
"儿童早教": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童启蒙故事": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童英语启蒙": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童绘画": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"睡前故事": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童动画": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童音乐": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿童安全教育": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"贝瓦儿歌": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"悟空识字": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"宝宝巴士": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"儿歌多多": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"学而思": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
]
}}

4157
js/幼儿.js Normal file

File diff suppressed because it is too large Load Diff

152
js/搭讪.js Normal file
View File

@ -0,0 +1,152 @@
{
"classes": [
{
"type_name": "搭讪",
"type_id": "搭讪"
},
{
"type_name": "搭讪技巧",
"type_id": "搭讪技巧"
},
{
"type_name": "女追男",
"type_id": "女追男"
},
{
"type_name": "男追女",
"type_id": "男追女"
},
{
"type_name": "街头搭讪",
"type_id": "街头搭讪"
},
{
"type_name": "夜店搭讪",
"type_id": "夜店搭讪"
},
{
"type_name": "商超搭讪",
"type_id": "商超搭讪"
},
{
"type_name": "校园搭讪",
"type_id": "校园搭讪"
},
{
"type_name": "搭讪失败",
"type_id": "搭讪失败"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
"filter": {
"搭讪": [
{"key": "order","name": "排序","value": [
{"n": "综合排序","v": "0"},
{"n": "最多点击","v": "click"},
{"n": "最新发布","v": "pubdate"},
{"n": "最多弹幕","v": "dm"},
{"n": "最多收藏","v": "stow"}
]
},
{
"key": "tid",
"name": "分类",
"value": [
{
"n": "搭讪",
"v": "搭讪"
},
{
"n": "搭讪技巧",
"v": "搭讪技巧"
},
{
"n": "搭讪经验",
"v": "搭讪经验"
},
{
"n": "搭讪套路",
"v": "搭讪套路"
},
{
"n": "搭讪话术",
"v": "搭讪话术"
}
]
},
{"key": "duration","name": "时长","value": [
{"n": "全部时长","v": "0"},
{"n": "60分钟以上","v": "4"},
{"n": "30~60分钟","v": "3"},
{"n": "10~30分钟","v": "2"},
{"n": "10分钟以下","v": "1"}
]
}
],
"女生搭配": [
{"key": "order","name": "排序","value": [
{"n": "综合排序","v": "0"},
{"n": "最多点击","v": "click"},
{"n": "最新发布","v": "pubdate"},
{"n": "最多弹幕","v": "dm"},
{"n": "最多收藏","v": "stow"}
]
},
{
"key": "tid",
"name": "分类",
"value": [
{
"n": "内衣",
"v": "内衣"
},
{
"n": "裙子",
"v": "裙子"
},
{
"n": "裤子",
"v": "裤子"
},
{
"n": "卫衣",
"v": "卫衣"
},
{
"n": "雪纺衣服",
"v": "雪纺衣服"
},
{
"n": "丝袜",
"v": "丝袜"
},
{
"n": "牛仔裙",
"v": "牛仔裙"
}
]
},
{"key": "duration","name": "时长","value": [
{"n": "全部时长","v": "0"},
{"n": "60分钟以上","v": "4"},
{"n": "30~60分钟","v": "3"},
{"n": "10~30分钟","v": "2"},
{"n": "10分钟以下","v": "1"}
]
}
]
}
}

200
js/搭配.js Normal file
View File

@ -0,0 +1,200 @@
{
"classes": [
{
"type_name": "内衣",
"type_id": "内衣"
},
{
"type_name": "男生搭配",
"type_id": "男生搭配"
},
{
"type_name": "女生搭配",
"type_id": "女生搭配"
},
{
"type_name": "裙子",
"type_id": "裙子"
},
{
"type_name": "紧身裤",
"type_id": "紧身裤"
},
{
"type_name": "吊带衫",
"type_id": "吊带衫"
},
{
"type_name": "娃娃衣",
"type_id": "娃娃衣"
},
{
"type_name": "牛仔裙",
"type_id": "牛仔裙"
},
{
"type_name": "丝袜",
"type_id": "丝袜"
},
{
"type_name": "雪纺",
"type_id": "雪纺衣服"
},
{
"type_name": "礼服",
"type_id": "礼服"
},
{
"type_name": "裤子",
"type_id": "裤子"
},
{
"type_name": "西装",
"type_id": "西装"
},
{
"type_name": "领带",
"type_id": "领带"
},
{
"type_name": "衬衫",
"type_id": "衬衫"
},
{
"type_name": "卫衣",
"type_id": "卫衣"
},
{
"type_name": "T恤",
"type_id": "T恤"
},
{
"type_name": "Polo衫",
"type_id": "Polo衫"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
"filter": {
"男生搭配": [
{"key": "order","name": "排序","value": [
{"n": "综合排序","v": "0"},
{"n": "最多点击","v": "click"},
{"n": "最新发布","v": "pubdate"},
{"n": "最多弹幕","v": "dm"},
{"n": "最多收藏","v": "stow"}
]
},
{
"key": "tid",
"name": "分类",
"value": [
{
"n": "裤子",
"v": "裤子"
},
{
"n": "T恤",
"v": "T恤"
},
{
"n": "卫衣",
"v": "卫衣"
},
{
"n": "牛仔衣",
"v": "牛仔衣"
},
{
"n": "领带",
"v": "领带"
},
{
"n": "西装",
"v": "西装"
},
{
"n": "运动装备",
"v": "运动装备"
}
]
},
{"key": "duration","name": "时长","value": [
{"n": "全部时长","v": "0"},
{"n": "60分钟以上","v": "4"},
{"n": "30~60分钟","v": "3"},
{"n": "10~30分钟","v": "2"},
{"n": "10分钟以下","v": "1"}
]
}
],
"女生搭配": [
{"key": "order","name": "排序","value": [
{"n": "综合排序","v": "0"},
{"n": "最多点击","v": "click"},
{"n": "最新发布","v": "pubdate"},
{"n": "最多弹幕","v": "dm"},
{"n": "最多收藏","v": "stow"}
]
},
{
"key": "tid",
"name": "分类",
"value": [
{
"n": "内衣",
"v": "内衣"
},
{
"n": "裙子",
"v": "裙子"
},
{
"n": "裤子",
"v": "裤子"
},
{
"n": "卫衣",
"v": "卫衣"
},
{
"n": "雪纺衣服",
"v": "雪纺衣服"
},
{
"n": "丝袜",
"v": "丝袜"
},
{
"n": "牛仔裙",
"v": "牛仔裙"
}
]
},
{"key": "duration","name": "时长","value": [
{"n": "全部时长","v": "0"},
{"n": "60分钟以上","v": "4"},
{"n": "30~60分钟","v": "3"},
{"n": "10~30分钟","v": "2"},
{"n": "10分钟以下","v": "1"}
]
}
]
}
}

43
js/斗鱼直播.js Normal file

File diff suppressed because one or more lines are too long

38
js/有声小说吧.js Normal file
View File

@ -0,0 +1,38 @@
var rule = {
title:'有声小说吧',
编码:'gb18030',
host:'http://m.ysxs8.vip',
url:'/downlist/fyclass_fypage.html',
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
searchable:2,
quickSearch:0,
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
// homeUrl:'/fenlei/',
// class_parse: '.pd-class:eq(0) dd;a&&Text;a&&href;.*/(.*?).html',
class_name:'网络玄幻&恐怖悬疑&传统武侠&都市言情&官场刑侦&历史军事&探险盗墓&职场商战&明朝那些事儿&评书下载&相声戏曲&人物传记&广播剧&百家讲坛&外语读物&有声文学&儿童读物&管理营销',
class_url:'r52&r17&r12&r13&r14&r15&r45&r81&r36&r3&r7&r16&r18&r32&r35&r41&r4&r6',
play_parse:true,
lazy:'',
limit:6,
// double:true,
推荐:'.list-ul .list-li;.list-name&&Text;*;.module-slide-author&&Text;*',
一级:'.book-ol&&li;h4&&Text;img&&data-original;.book-meta&&Text;a&&href',
二级:{
// title:'h2&&Text;.book-cell .book-rand-a:eq(2)&&Text',
title:'h1&&Text;.book-cell .book-rand-a:eq(0)&&a&&Text',
img:'.book img&&src',
// desc:';;;;.book-des p&&Text',
desc:';;;.book-rand-a:eq(2)&&Text;.book-des p&&Text',
content:'.book-des--p&&Text',
tabs:'.playlist-top&&h2',
// lists:'js:pd=jsp.pd;let url=pd(html,".bookbutton&&a&&href");log(url);html=request(url);let v=pd(html,".booksite&&script&&Html");var document={};var VideoListJson;VideoListJson=eval(v.split("VideoListJson=")[1].split(",urlinfo")[0]);log(typeof VideoListJson);let list1=VideoListJson[0][1];LISTS=[list1];log(LISTS);',
// 有声小说有防盗链,我服了(上面的列表数据正常拿到了,没法播放)
// lists:'#playlist:eq(#id)&&ul&&li',
lists:'#playlist ul li',
},
搜索:'*',
}

304
js/模板.js Normal file
View File

@ -0,0 +1,304 @@
if (typeof Object.assign != 'function') {
Object.assign = function () {
var target = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
function getMubans() {
var mubanDict = { // 模板字典
mxpro: {
title: '',
host: '',
// homeUrl:'/',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: {
"title": "h1&&Text;.module-info-tag&&Text",
"img": ".lazyload&&data-original",
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
"content": ".module-info-introduction&&Text",
"tabs": ".module-tab-item",
"lists": ".module-play-list:eq(#id) a"
},
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
},
mxone5: {
title: '',
host: '',
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: {
"title": "h1&&Text;.tag-link&&Text",
"img": ".module-item-pic&&img&&data-src",
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
"content": ".vod_content&&Text",
"tabs": ".module-tab-item",
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
},
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
},
首图: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
"img": ".myui-content__thumb .lazyload&&data-original",
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
"content": ".content&&Text",
"tabs": ".nav-tabs:eq(0) li",
"lists": ".myui-content__list:eq(#id) li"
},
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
},
首图2: {
title: '',
host: '',
url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
// "Cookie": ""
},
// class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
"img": ".stui-content__thumb .lazyload&&data-original",
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
"content": ".detail&&Text",
"tabs": ".stui-vodlist__head h3",
"lists": ".stui-content__playlist:eq(#id) li"
},
搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
},
默认: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/-------------.html?wd=**',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: '',
limit: 6,
double: true, // 推荐内容是否双层定位
},
vfed: {
title: '',
host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
},
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
二级: {
"title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
"img": ".fed-list-info&&a&&data-original",
"desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
"content": ".fed-part-esan&&Text",
"tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
"lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
},
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
},
海螺3: {
title: '',
host: '',
searchUrl: '/v_search/**----------fypage---.html',
url: '/vod_____show/fyclass--------fypage---.html',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '明星|专题|最新|排行',
limit: 40,
play_parse: true,
lazy: '',
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
double: true,
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: {
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
"img": ".hl-lazy&&data-original",
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
"content": ".hl-content-text&&Text",
"tabs": ".hl-tabs&&a",
"lists": ".hl-plays-list:eq(#id)&&li"
},
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
海螺2: {
title: '',
host: '',
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
url: '/index.php/vod/show/id/fyclass/page/fypage/',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
limit: 40,
play_parse: true,
lazy: '',
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
double: true,
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: {
"title": "h2&&Text;.deployment&&Text",
"img": ".lazy&&data-original",
"desc": ".deployment&&Text",
"content": ".ec-show&&Text",
"tabs": "#tag&&a",
"lists": ".play_list_box:eq(#id)&&li"
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
短视: {
title: '',
host: '',
// homeUrl:'/',
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: {
"title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
"img": ".img&&img&&data-src",
"desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
"content": ".zkjj_a&&Text",
"tabs": ".py-tabs&&option",
"lists": ".player:eq(#id) li"
},
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
},
短视2:{
title: '',
host: '',
class_name:'电影&电视剧&综艺&动漫',
class_url:'1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
quickSearch: 0,
headers:{'User-Agent':'MOBILE_UA'},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable:0,//是否启用分类筛选,
filter_url:'',
filter: {},
filter_def:{},
detailUrl:'/index.php/vod/detail/id/fyid.html',
play_parse: true,
lazy: '',
limit: 6,
推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
二级:{
"title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
"img":".detail-pic&&data-original",
"desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
"content":"#height_limit&&Text",
"tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
"tab_text":".swiper-slide&&Text",
"lists":".anthology-list-box:eq(#id) li"
},
搜索:'json:list;name;pic;;id',
}
};
return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {muban,getMubans};

1111
js/歌手.js Normal file

File diff suppressed because it is too large Load Diff

925
js/歌曲.js Normal file
View File

@ -0,0 +1,925 @@
{
"classes": [
{
"type_name": "演唱会",
"type_id": "演唱会"
},
{"type_name":"A阿杜","type_id":"阿杜演唱会4K"},
{
"type_name": "A阿黛尔",
"type_id": "阿黛尔演唱会"
},
{
"type_name": "Blackpink",
"type_id": "blackpink演唱会"
},
{
"type_name": "Beyond",
"type_id": "beyond演唱会"
},
{
"type_name": "B坂井泉水",
"type_id": "坂井泉水演唱会"
},
{
"type_name": "B宝丽金",
"type_id": "宝丽金演唱会"
},
{
"type_name": "B布兰妮",
"type_id": "布兰妮演唱会"
},
{
"type_name": "C陈瑞",
"type_id": "陈瑞歌曲"
},
{
"type_name": "C崔健",
"type_id": "崔健演唱会"
},
{
"type_name": "C陈意文",
"type_id": "陈意文歌曲"
},
{
"type_name": "C蔡依林",
"type_id": "蔡依林演唱会"
},
{
"type_name": "C草蜢",
"type_id": "草蜢演唱会"
},
{
"type_name": "Coldplay",
"type_id": "coldplay演唱会"
},
{
"type_name": "C陈慧娴",
"type_id": "陈慧娴演唱会"
},
{
"type_name": "C陈百强",
"type_id": "陈百强演唱会"
},
{
"type_name": "C陈淑桦",
"type_id": "陈淑桦演唱会"
},
{
"type_name": "C陈慧琳",
"type_id": "陈慧琳演唱会"
},
{
"type_name": "D邓丽君",
"type_id": "邓丽君演唱会"
},
{
"type_name": "D邓紫棋",
"type_id": "邓紫棋演唱会"
},
{
"type_name": "D刀郎",
"type_id": "刀郎演唱会"
},
{
"type_name": "D达明一派",
"type_id": "刘以达歌曲"
},
{
"type_name": "F费玉清",
"type_id": "费玉清演唱会"
},
{
"type_name": "F飞图",
"type_id": "飞图演唱会"
},
{
"type_name": "G谷村新司",
"type_id": "谷村新司演唱会"
},
{
"type_name": "G郭富城",
"type_id": "郭富城演唱会"
},
{
"type_name": "G高胜美",
"type_id": "高胜美演唱会"
},
{
"type_name": "G关淑怡",
"type_id": "关淑怡演唱会"
},
{
"type_name": "H黄凯芹",
"type_id": "黄凯芹演唱会"
},
{
"type_name": "J降央卓玛",
"type_id": "降央卓玛演唱会"
},
{
"type_name": "J江慧",
"type_id": "江慧歌曲"
},
{
"type_name": "J吉永小百合",
"type_id": "吉永小百合歌曲"
},
{
"type_name": "J金庸",
"type_id": "金庸影视歌曲"
},
{
"type_name": "K柯以敏",
"type_id": "柯以敏演唱会"
},
{
"type_name": "K邝美云",
"type_id": "邝美云歌曲"
},
{
"type_name": "L刘德华",
"type_id": "刘德华演唱会"
},
{
"type_name": "L李贞贤",
"type_id": "李贞贤演唱会"
},
{
"type_name": "L李秀英",
"type_id": "李秀英演唱会"
},
{
"type_name": "L李志",
"type_id": "李志歌曲"
},
{
"type_name": "Lady Gaga",
"type_id": "Lady Gaga演唱会"
},
{
"type_name": "L龙飘飘",
"type_id": "龙飘飘演唱会"
},
{
"type_name": "L罗大佑",
"type_id": "罗大佑演唱会"
},
{
"type_name": "L林志炫",
"type_id": "林志炫演唱会"
},
{
"type_name": "L林忆莲",
"type_id": "林忆莲演唱会"
},
{
"type_name": "L李知恩",
"type_id": "李知恩演唱会"
},
{
"type_name": "L梁静茹",
"type_id": "梁静茹演唱会"
},
{
"type_name": "L冷漠",
"type_id": "冷漠演唱会"
},
{
"type_name": "L李克勤",
"type_id": "李克勤演唱会"
},
{
"type_name": "L林子祥",
"type_id": "林子祥演唱会"
},
{
"type_name": "L黎明",
"type_id": "黎明演唱会"
},
{
"type_name": "L刘若英",
"type_id": "刘若英演唱会"
},
{
"type_name": "M莫文蔚",
"type_id": "莫文蔚演唱会"
},
{
"type_name": "M孟庭苇",
"type_id": "孟庭苇演唱会"
},
{
"type_name": "M麦当娜",
"type_id": "麦当娜演唱会"
},
{
"type_name": "M迈克杰克逊",
"type_id": "迈克杰克逊演唱会"
},
{
"type_name": "N雅尼紫禁城",
"type_id": "雅尼紫禁城演唱会"
},
{
"type_name": "P潘越云",
"type_id": "潘越云演唱会"
},
{
"type_name": "P潘美辰",
"type_id": "潘美辰演唱会"
},
{
"type_name": "Q齐秦",
"type_id": "齐秦演唱会"
},
{
"type_name": "R任贤齐",
"type_id": "任贤齐演唱会"
},
{
"type_name": "S苏慧伦",
"type_id": "苏慧伦演唱会"
},
{
"type_name": "T童安格",
"type_id": "童安格演唱会"
},
{
"type_name": "TFBOYS",
"type_id": "TFBOYS演唱会"
},
{
"type_name": "T太极乐队",
"type_id": "太极乐队演唱会"
},
{
"type_name": "T唐朝摇滚",
"type_id": "唐朝摇滚演唱会"
},
{
"type_name": "T谭咏麟",
"type_id": "谭咏麟演唱会"
},
{
"type_name": "W王琪",
"type_id": "王琪歌曲"
},
{
"type_name": "W伍珂玥",
"type_id": "伍珂玥演唱会"
},
{
"type_name": "W王杰",
"type_id": "王杰演唱会"
},
{
"type_name": "W伍佰",
"type_id": "伍佰演唱会"
},
{
"type_name": "W温兆伦",
"type_id": "温兆伦演唱会"
},
{
"type_name": "W王菲",
"type_id": "王菲演唱会"
},
{
"type_name": "X徐小凤",
"type_id": "徐小凤演唱会"
},
{
"type_name": "X席琳迪翁",
"type_id": "席琳迪翁演唱会"
},
{
"type_name": "X许嵩",
"type_id": "黄许嵩演唱会"
},
{
"type_name": "X许美静",
"type_id": "许美静演唱会"
},
{
"type_name": "X许冠杰",
"type_id": "许冠杰演唱会"
},
{
"type_name": "X小虎队",
"type_id": "小虎队演唱会"
},
{
"type_name": "X熊天平",
"type_id": "熊天平演唱会"
},
{
"type_name": "X许巍",
"type_id": "许巍演唱会"
},
{
"type_name": "Y叶启田",
"type_id": "叶启田演唱会"
},
{
"type_name": "Y杨钰莹",
"type_id": "杨钰莹演唱会"
},
{
"type_name": "Y叶玉卿",
"type_id": "叶玉卿演唱会"
},
{
"type_name": "Y杨千嬅",
"type_id": "杨千嬅演唱会"
},
{
"type_name": "Y怡正宵",
"type_id": "怡正宵演唱会"
},
{
"type_name": "Z左麟右李",
"type_id": "左麟右李演唱会"
},
{
"type_name": "Z张楚",
"type_id": "张楚演唱会"
},
{
"type_name": "Z张真",
"type_id": "张真歌曲"
},
{
"type_name": "Z张震岳",
"type_id": "张震岳演唱会"
},
{
"type_name": "Z赵传",
"type_id": "赵传演唱会"
},
{
"type_name": "Z周华健",
"type_id": "周华健演唱会"
},
{
"type_name": "Z周启生",
"type_id": "周启生演唱会"
},
{
"type_name": "Z张信哲",
"type_id": "张信哲演唱会"
},
{
"type_name": "Z张也",
"type_id": "张也歌曲"
},
{
"type_name": "Z周慧敏",
"type_id": "周慧敏演唱会"
},
{
"type_name": "Z张碧晨",
"type_id": "张碧晨演唱会"
},
{
"type_name": "Z中岛美雪",
"type_id": "中岛美雪演唱会"
},
{
"type_name": "Z张学友",
"type_id": "张学友演唱会"
},
{
"type_name": "Z张卫健",
"type_id": "张卫健歌曲"
},
{
"type_name": "Z猪哥亮",
"type_id": "猪哥亮歌曲"
},
{
"type_name": "Z周杰伦",
"type_id": "周杰伦演唱会"
},
{
"type_name": "Z周深",
"type_id": "周深演唱会"
},
{
"type_name": "Z张蔷",
"type_id": "张蔷演唱会"
},
{
"type_name": "Z张帝",
"type_id": "张帝演唱会"
},
{
"type_name": "Z张琳",
"type_id": "张琳,灰太狼"
},
{
"type_name": "Z张国荣",
"type_id": "张国荣演唱会"
},
{
"type_name": "Z周传雄",
"type_id": "周传雄演唱会"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
"filter": {"演唱会": [
{"key": "order","name": "排序","value": [
{"n": "综合排序","v": "0"},
{"n": "最多点击","v": "click"},
{"n": "最新发布","v": "pubdate"},
{"n": "最多弹幕","v": "dm"},
{"n": "最多收藏","v": "stow"}
]
},
{
"key": "tid",
"name": "分类",
"value": [
{"n":"全部","v":"演唱会4K"},
{"n":"A阿杜","v":"阿杜演唱会4K"},
{"n":"A阿黛尔","v":"阿黛尔演唱会4K"},
{"n":"BBeyond","v":"Beyond演唱会4K"},
{"n":"BBy2","v":"By2演唱会4K"},
{"n":"BBIGBANG","v":"BIGBANG演唱会4K"},
{"n":"B布兰妮","v":"布兰妮演唱会4K"},
{"n":"C程响","v":"程响演唱会4K"},
{"n":"C陈奕迅","v":"陈奕迅演唱会4K"},
{"n":"C蔡依林","v":"蔡依林演唱会4K"},
{"n":"C初音未来","v":"初音未来演唱会4K"},
{"n":"C蔡健雅","v":"蔡健雅演唱会4K"},
{"n":"C陈小春","v":"陈小春演唱会4K"},
{"n":"C草蜢","v":"草蜢演唱会4K"},
{"n":"C陈慧娴","v":"陈慧娴演唱会4K"},
{"n":"C崔健","v":"崔健演唱会4K"},
{"n":"C仓木麻衣","v":"仓木麻衣演唱会4K"},
{"n":"D戴荃","v":"戴荃演唱会4K"},
{"n":"D动力火车","v":"动力火车演唱会4K"},
{"n":"D邓丽君","v":"邓丽君演唱会4K"},
{"n":"D丁当","v":"丁当演唱会4K"},
{"n":"D刀郎","v":"刀郎演唱会4K"},
{"n":"D邓紫棋","v":"邓紫棋演唱会4K"},
{"n":"D戴佩妮","v":"戴佩妮演唱会4K"},
{"n":"D邓丽君","v":"邓丽君演唱会4K"},
{"n":"F飞儿乐队","v":"飞儿乐队演唱会4K"},
{"n":"F费玉清","v":"费玉清演唱会4K"},
{"n":"F费翔","v":"费翔演唱会4K"},
{"n":"F方大同","v":"方大同演唱会4K"},
{"n":"F房东的猫","v":"房东的猫演唱会4K"},
{"n":"F凤飞飞","v":"凤飞飞演唱会4K"},
{"n":"F凤凰传奇","v":"凤凰传奇演唱会4K"},
{"n":"G郭采洁","v":"郭采洁MV4K"},
{"n":"G光良","v":"光良演唱会4K"},
{"n":"G郭静","v":"郭静演唱会4K"},
{"n":"G郭富城","v":"郭富城演唱会4K"},
{"n":"H胡彦斌","v":"胡彦斌演唱会4K"},
{"n":"H胡夏","v":"胡夏演唱会4K"},
{"n":"H韩红","v":"韩红演唱会4K"},
{"n":"H黄品源","v":"黄品源演唱会4K"},
{"n":"H黄小琥","v":"黄小琥演唱会4K"},
{"n":"H花儿乐队","v":"花儿乐队演唱会4K"},
{"n":"H黄家强","v":"黄家强演唱会4K"},
{"n":"H后街男孩","v":"后街男孩演唱会4K"},
{"n":"J经典老歌","v":"经典老歌4K"},
{"n":"J贾斯丁比伯","v":"贾斯丁比伯演唱会4K"},
{"n":"J金池","v":"金池演唱会4K"},
{"n":"J金志文","v":"金志文演唱会4K"},
{"n":"J焦迈奇","v":"焦迈奇演唱会4K"},
{"n":"K筷子兄弟","v":"筷子兄弟演唱会4K"},
{"n":"L李玟","v":"李玟演唱会4K"},
{"n":"L林忆莲","v":"林忆莲演唱会4K"},
{"n":"L李克勤","v":"李克勤演唱会4K"},
{"n":"L刘宪华","v":"刘宪华演唱会4K"},
{"n":"L李圣杰","v":"李圣杰演唱会4K"},
{"n":"L林宥嘉","v":"林宥嘉演唱会4K"},
{"n":"L梁静茹","v":"梁静茹演唱会4K"},
{"n":"L李健","v":"李健演唱会4K"},
{"n":"L林俊杰","v":"林俊杰演唱会4K"},
{"n":"L李玉刚","v":"李玉刚演唱会4K"},
{"n":"L林志炫","v":"林志炫演唱会4K"},
{"n":"L李荣浩","v":"李荣浩演唱会4K"},
{"n":"L李宇春","v":"李宇春演唱会4K"},
{"n":"L洛天依","v":"洛天依演唱会4K"},
{"n":"L林子祥","v":"林子祥演唱会4K"},
{"n":"L李宗盛","v":"李宗盛演唱会4K"},
{"n":"L黎明","v":"黎明演唱会4K"},
{"n":"L刘德华","v":"刘德华演唱会4K"},
{"n":"L罗大佑","v":"罗大佑演唱会4K"},
{"n":"L林肯公园","v":"林肯公园演唱会4K"},
{"n":"LLadyGaga","v":"LadyGaga演唱会4K"},
{"n":"L旅行团乐队","v":"旅行团乐队演唱会4K"},
{"n":"M莫文蔚","v":"莫文蔚演唱会4K"},
{"n":"M毛不易","v":"毛不易演唱会4K"},
{"n":"M梅艳芳","v":"梅艳芳演唱会4K"},
{"n":"M迈克尔杰克逊","v":"迈克尔杰克逊演唱会4K"},
{"n":"N南拳妈妈","v":"南拳妈妈演唱会4K"},
{"n":"P朴树","v":"朴树演唱会4K"},
{"n":"Q齐秦","v":"齐秦演唱会4K"},
{"n":"Q青鸟飞鱼","v":"青鸟飞鱼演唱会4K"},
{"n":"R容祖儿","v":"容祖儿演唱会4K"},
{"n":"R热歌","v":"热歌MV4K"},
{"n":"R任贤齐","v":"任贤齐演唱会4K"},
{"n":"S水木年华","v":"水木年华演唱会4K"},
{"n":"S孙燕姿","v":"孙燕姿演唱会4K"},
{"n":"S苏打绿","v":"苏打绿演唱会4K"},
{"n":"SSHE","v":"SHE演唱会4K"},
{"n":"S孙楠","v":"孙楠演唱会4K"},
{"n":"T陶喆","v":"陶喆演唱会4K"},
{"n":"T谭咏麟","v":"谭咏麟演唱会4K"},
{"n":"T田馥甄","v":"田馥甄演唱会4K"},
{"n":"T谭维维","v":"谭维维演唱会4K"},
{"n":"T逃跑计划","v":"逃跑计划演唱会4K"},
{"n":"T田震","v":"田震演唱会4K"},
{"n":"T谭晶","v":"谭晶演唱会4K"},
{"n":"T屠洪刚","v":"屠洪刚演唱会4K"},
{"n":"T泰勒·斯威夫特","v":"泰勒·斯威夫特演唱会4K"},
{"n":"W王力宏","v":"王力宏演唱会4K"},
{"n":"W王杰","v":"王杰演唱会4K"},
{"n":"W吴克群","v":"吴克群演唱会4K"},
{"n":"W王心凌","v":"王心凌演唱会4K"},
{"n":"W汪峰","v":"汪峰演唱会4K"},
{"n":"W伍佰","v":"伍佰演唱会4K"},
{"n":"W王菲","v":"王菲演唱会4K"},
{"n":"W五月天","v":"五月天演唱会4K"},
{"n":"W汪苏泷","v":"汪苏泷演唱会4K"},
{"n":"X徐佳莹","v":"徐佳莹演唱会4K"},
{"n":"X弦子","v":"弦子演唱会4K"},
{"n":"X萧亚轩","v":"萧亚轩演唱会4K"},
{"n":"X许巍","v":"许巍演唱会4K"},
{"n":"X薛之谦","v":"薛之谦演唱会4K"},
{"n":"X许嵩","v":"许嵩演唱会4K"},
{"n":"X小虎队","v":"小虎队演唱会4K"},
{"n":"X萧敬腾","v":"萧敬腾演唱会4K"},
{"n":"X谢霆锋","v":"谢霆锋演唱会4K"},
{"n":"X徐小凤","v":"徐小凤演唱会4K"},
{"n":"X信乐队","v":"信乐队演唱会4K"},
{"n":"Y夜愿乐队","v":"夜愿乐队演唱会4K"},
{"n":"Y原创音乐","v":"原创音乐演唱会4K"},
{"n":"Y羽泉","v":"羽泉演唱会4K"},
{"n":"Y粤语","v":"粤语MV4K"},
{"n":"Y郁可唯","v":"郁可唯演唱会4K"},
{"n":"Y叶倩文","v":"叶倩文演唱会4K"},
{"n":"Y杨坤","v":"杨坤演唱会4K"},
{"n":"Y庾澄庆","v":"庾澄庆演唱会4K"},
{"n":"Y尤长靖","v":"尤长靖演唱会4K"},
{"n":"Y易烊千玺","v":"易烊千玺演唱会4K"},
{"n":"Y袁娅维","v":"袁娅维演唱会4K"},
{"n":"Y杨丞琳","v":"杨丞琳演唱会4K"},
{"n":"Y杨千嬅","v":"杨千嬅演唱会4K"},
{"n":"Y杨宗纬","v":"杨宗纬演唱会4K"},
{"n":"Z周杰伦","v":"周杰伦演唱会4K"},
{"n":"Z张学友","v":"张学友演唱会4K"},
{"n":"Z张信哲","v":"张信哲演唱会4K"},
{"n":"Z张宇","v":"张宇演唱会4K"},
{"n":"Z周华健","v":"周华健演唱会4K"},
{"n":"Z张韶涵","v":"张韶涵演唱会4K"},
{"n":"Z周深","v":"周深演唱会4K"},
{"n":"Z纵贯线","v":"纵贯线演唱会4K"},
{"n":"Z赵雷","v":"赵雷演唱会4K"},
{"n":"Z周传雄","v":"周传雄演唱会4K"},
{"n":"Z张国荣","v":"张国荣演唱会4K"},
{"n":"Z周慧敏","v":"周慧敏演唱会4K"},
{"n":"Z张惠妹","v":"张惠妹演唱会4K"},
{"n":"Z周笔畅","v":"周笔畅演唱会4K"},
{"n":"Z郑中基","v":"郑中基演唱会4K"},
{"n":"Z张艺兴","v":"张艺兴演唱会4K"},
{"n":"Z张震岳","v":"张震岳演唱会4K"},
{"n":"Z张雨生","v":"张雨生演唱会4K"},
{"n":"Z郑智化","v":"郑智化演唱会4K"},
{"n":"Z卓依婷","v":"卓依婷演唱会4K"},
{"n":"Z中岛美雪","v":"中岛美雪演唱会4K"}
]},
{"key": "duration","name": "时长","value": [
{"n": "全部时长","v": "0"},
{"n": "60分钟以上","v": "4"},
{"n": "30~60分钟","v": "3"},
{"n": "10~30分钟","v": "2"},
{"n": "10分钟以下","v": "1"}
]}],
"粤语歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"2022年热门歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"KTV热门歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"滚石歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"经典老歌": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"古风歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"闽南语歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"印度歌舞": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"网红翻唱歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"DJ歌曲": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
],
"韩国女团演唱会": [
{
"key": "duration",
"name": "时长",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "60分钟以上",
"v": "4"
},
{
"n": "30~60分钟",
"v": "3"
},
{
"n": "10~30分钟",
"v": "2"
},
{
"n": "10分钟以下",
"v": "1"
}
]
}
]
}
}

36
js/武享吧.js Normal file
View File

@ -0,0 +1,36 @@
var rule = {
title:'武享吧',
host:'https://www.hula8.net',
url: '/fyclass/page/fypage',
searchUrl: '/page/fypage/?s=**',
searchable:2,
quickSearch:0,
headers:{
'User-Agent': 'PC_UA',
'Referer': 'https://www.hula8.net/',
'Cookie':'esc_search_captcha=1;result=12'
},
timeout:5000,//网站的全局请求超时,默认是3000毫秒
class_parse: '#menu-xinjian&&li;a&&Text;a&&href;net/(.*)',
play_parse:true,
cate_exclude:'首 页|赛事预告|美国格斗赛|亚洲格斗赛|其他格斗赛|日本搏击赛|裸拳赛',
limit:6,
推荐: 'div.apc-grid-item;*;*;.views&&Text;a&&href',
一级: '.site-main&&article;img&&alt;img&&data-original;.grid-inf-l&&Text;a&&href',
二级: {
"title": "h1&&Text;.module-info-tag&&Text",
"img": ".aligncenter&&data-original",
"desc": ";;;.views:eq(0)&&Text;",
"content": "h1&&Text",
"tabs": "js:TABS=['道长在线']",
"lists": `js:
var html = JSON.parse(request(input).match(/var bevideo_vids_.*?=({[\\s\\S]*?});/)[1]);
let list = [];
list = html.m3u8dplayer.map(function(item) {
return item.pre + "$" + item.video
});
LISTS = [list];
`
},
搜索: '*;*;*;.entry-meta&&Text;*',
}

102
js/球队.js Normal file
View File

@ -0,0 +1,102 @@
{
"classes": [
{
"type_name": "梅西",
"type_id": "梅西"
},
{
"type_name": "C罗",
"type_id": "C罗"
},
{
"type_name": "罗纳尔多",
"type_id": "罗纳尔多"
},
{
"type_name": "亨利",
"type_id": "亨利"
},
{
"type_name": "小罗",
"type_id": "小罗"
},
{
"type_name": "齐达内",
"type_id": "齐达内"
},
{
"type_name": "贝克汉姆",
"type_id": "贝克汉姆"
},
{
"type_name": "内马尔",
"type_id": "内马尔"
},
{
"type_name": "德布劳内",
"type_id": "德布劳内"
},
{
"type_name": "欧冠",
"type_id": "欧冠"
},
{
"type_name": "世界杯",
"type_id": "世界杯"
},
{
"type_name": "西甲",
"type_id": "西甲"
},
{
"type_name": "英超",
"type_id": "英超"
},
{
"type_name": "意甲",
"type_id": "意甲"
},
{
"type_name": "德甲",
"type_id": "德甲"
},
{
"type_name": "国米",
"type_id": "国米"
},
{
"type_name": "皇马",
"type_id": "皇马"
},
{
"type_name": "巴萨",
"type_id": "巴萨"
},
{
"type_name": "巴黎圣日耳曼",
"type_id": "巴黎圣日耳曼"
},
{
"type_name": "曼联",
"type_id": "曼联"
},
{
"type_name": "曼城",
"type_id": "曼城"
},
{
"type_name": "巴萨",
"type_id": "巴萨"
},
{
"type_name": "C罗",
"type_id": "C罗"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

103
js/相声.js Normal file
View File

@ -0,0 +1,103 @@
{
"classes": [
{
"type_name": "单口相声",
"type_id": "单口相声"
},
{
"type_name": "群口相声",
"type_id": "群口相声"
},
{
"type_name": "德云社",
"type_id": "德云社"
},
{
"type_name": "青曲社",
"type_id": "青曲社"
},
{
"type_name": "郭德纲",
"type_id": "郭德纲"
},
{
"type_name": "岳云鹏",
"type_id": "岳云鹏"
},
{
"type_name": "曹云金",
"type_id": "曹云金"
},
{
"type_name": "评书",
"type_id": "评书"
},
{
"type_name": "小曲",
"type_id": "小区"
},
{
"type_name": "二人转",
"type_id": "二人转"
},
{
"type_name": "春晚小品",
"type_id": "春晚小品"
},
{
"type_name": "赵本山",
"type_id": "赵本山"
},
{
"type_name": "陈佩斯",
"type_id": "陈佩斯"
},
{
"type_name": "冯巩",
"type_id": "冯巩"
},
{
"type_name": "宋小宝",
"type_id": "宋小宝"
},
{
"type_name": "赵丽蓉",
"type_id": "赵丽蓉"
},
{
"type_name": "郭达",
"type_id": "郭达"
},
{
"type_name": "潘长江",
"type_id": "潘长江"
},
{
"type_name": "郭冬临",
"type_id": "郭冬临"
},
{
"type_name": "严顺开",
"type_id": "严顺开"
},
{
"type_name": "文松",
"type_id": "文松"
},
{
"type_name": "开心麻花",
"type_id": "开心麻花"
},
{
"type_name": "屌丝男士",
"type_id": "屌丝男士"
},
{
"type_name": "喜剧综艺",
"type_id": "喜剧综艺"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

70
js/童趣.js Normal file
View File

@ -0,0 +1,70 @@
var rule = {
title:'童趣',
host:'https://www.boosj.com',
homeUrl:'/baby/',
// url: '/search_res_3362_fyfilter',
url: '/search_res_3362_fyclassfyfilter',
// filter_url:'{{fl.year}}fyclass_fypage_{{fl.by}}.html{{fl.area}}',
filter_url:'_fypage_{{fl.by}}.html{{fl.area}}',
filter:{
"_":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_28":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_582":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3364":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3366":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3367":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3622":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3782":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3822":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_3842":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4402":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4583":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4762":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4842":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4843":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4844":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_4845":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_5102":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}],
"_5142":[{"key":"area","name":"年龄段","value":[{"n":"全部","v":""},{"n":"6岁以上","v":"?p367=370"},{"n":"3~6岁","v":"?p367=369"},{"n":"0~3岁","v":"?p367=368"}]},{"key":"by","name":"排序","value":[{"n":"全部","v":""},{"n":"最新发布","v":"lately"},{"n":"最多播放","v":"pop"},{"n":"最多评论","v":"view"}]}]
},
filter_def:{
_:{cateId:'_'},
_28:{cateId:'_28'},
_582:{cateId:'_582'},
_3364:{cateId:'_3364'},
_3366:{cateId:'_3366'},
_3367:{cateId:'_3367'},
_3622:{cateId:'_3622'},
_3782:{cateId:'_3782'},
_3822:{cateId:'_3822'},
_3842:{cateId:'_3842'},
_4402:{cateId:'_4402'},
_4583:{cateId:'_4583'},
_4762:{cateId:'_4762'},
_4842:{cateId:'_4842'},
_4843:{cateId:'_4843'},
_4844:{cateId:'_4844'},
_4845:{cateId:'_4845'},
_5102:{cateId:'_5102'},
_5142:{cateId:'_5142'}
},
searchUrl: 'https://search.boosj.com/m_ajax?q=**&p=fypage&typeId=3362',
searchable:2,
quickSearch:0,
filterable:1,
headers:{
'User-Agent': 'MOBILE_UA'
},
timeout:5000,//网站的全局请求超时,默认是3000毫秒
class_name:'全部&辅食&动画&儿童舞蹈&少儿英语&儿童歌曲&才艺&播视自制&故事&亲子教育&美术&其他&儿童游戏&识物&绘本&古诗&科普&儿童玩具&播视童趣儿童玩具',
class_url:'_&_28&_582&_3364&_3366&_3367&_3622&_3782&_3822&_3842&_4402&_4583&_4762&_4842&_4843&_4844&_4845&_5102&_5142',
play_parse:true,
lazy:"js:var body=JSON.parse(request('https://gslb.boosj.com/ipv2.json'));body._id=input.match(/\\d+/)[0];var json=JSON.parse(request(buildUrl(body.gslb,body)));input=json.url+'?'+json.t",
limit:6,
推荐: 'div.pubpic;a&&title;img&&src;;a&&href',
// double: true, // 推荐内容是否双层定位
一级: "div.bj-col4:has(h3);a&&title;img&&data-original;.played&&Text;a&&href",
二级: '*',
detailUrl:'/fyid.html',
搜索: 'json:body.result;resourceName;imageUrl;intro;id;clickNumStr',
}

47
js/美女.js Normal file
View File

@ -0,0 +1,47 @@
{
"classes": [
{"type_name": "抖音合集","type_id":"抖音合集"},
{"type_name": "快手美女合集","type_id":"快手美女合集"},
{"type_name": "4K小姐姐","type_id": "4K小姐姐"},
{"type_name": "小姐姐","type_id":"小姐姐超清"},
{"type_name": "黑丝","type_id":"黑丝"},
{"type_name": "超短裤","type_id":"超短裤"},
{"type_name": "超短裙","type_id":"超短裙"},
{"type_name": "牛仔裤","type_id":"牛仔裤"},
{"type_name": "选美","type_id":"选美"},
{"type_name": "模特","type_id":"模特"},
{"type_name": "泳装秀","type_id":"泳装秀"},
{"type_name": "内衣秀","type_id":"内衣秀"},
{"type_name": "练习室","type_id":"练习室"},
{"type_name": "美女舞蹈","type_id":"美女舞蹈"},
{"type_name": "舞蹈综合","type_id":"舞蹈综合"},
{"type_name": "舞蹈教程","type_id":"舞蹈教程"},
{"type_name": "古风舞蹈","type_id":"古风舞蹈"},
{"type_name": "印度歌舞","type_id":"印度歌舞"},
{"type_name": "明星舞蹈","type_id":"明星舞蹈"},
{"type_name": "韩舞","type_id":"韩舞"},
{"type_name": "古典舞","type_id":"古典舞"},
{"type_name": "翻跳","type_id":"翻跳"},
{"type_name": "中国舞","type_id":"中国舞"},
{"type_name": "古风舞","type_id":"古风舞"},
{"type_name": "现代舞","type_id":"现代舞"},
{"type_name": "爵士舞","type_id":"爵士舞"},
{"type_name": "芭蕾","type_id":"芭蕾"},
{"type_name": "宅舞","type_id": "宅舞"},
{"type_name": "街舞","type_id": "街舞"},
{"type_name": "编舞","type_id":"编舞"},
{"type_name": "POPPING","type_id":"POPPING"},
{"type_name": "桃源恋歌","type_id":"桃源恋歌"},
{"type_name": "新宝岛","type_id":"新宝岛"},
{"type_name": "拉丁舞","type_id":"拉丁舞"},
{"type_name": "蹦迪","type_id":"蹦迪"},
{"type_name": "民族舞","type_id":"民族舞"},
{"type_name": "抖肩舞","type_id":"抖肩舞"},
{"type_name": "齐舞","type_id":"齐舞"},
{"type_name": "机械舞","type_id":"机械舞"},
{"type_name": "广场舞","type_id":"广场舞"},
{"type_name": "极乐净土","type_id":"极乐净土"},
{"type_name": "BDF","type_id":"BDF"}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

305
js/美食合集.js Normal file
View File

@ -0,0 +1,305 @@
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64
class Spider(Spider): # 元类 默认的元类 type
def getName(self):
return "搭讪"
def init(self,extend=""):
print("============{0}============".format(extend))
pass
def isVideoFormat(self,url):
pass
def manualVideoCheck(self):
pass
def homeContent(self,filter):
result = {}
cateManual = {
"美食":"美食",
"披萨":"披萨",
"火锅":"火锅",
"烧烤":"烧烤",
"烤鱼":"烤鱼",
"海鲜":"海鲜",
"津菜":"津菜",
"川菜":"川菜",
"湘菜":"湘菜",
"鲁菜":"鲁菜",
"苏菜":"苏菜",
"闽菜":"闽菜",
"粤菜":"粤菜",
"东北菜":"东北菜",
"冀菜":"冀菜",
"豫菜":"豫菜",
"鄂菜":"鄂菜",
"本帮菜":"本帮菜",
"客家菜":"客家菜",
"赣菜":"赣菜",
"京菜":"京菜",
"浙菜":"浙菜",
"徽菜":"徽菜",
"湘菜":"湘菜",
"凉菜":"凉菜",
"蒸菜":"蒸菜",
"日料":"日料",
"点心":"点心",
"面食":"面食",
"汉堡":"汉堡",
"小吃":"小吃",
"素食":"素食",
"韩国菜":"韩国菜",
"泰国菜":"泰国菜",
"穆斯林菜":"穆斯林菜",
"土耳其菜系":"土耳其菜系",
"法国菜":"法国菜",
"意大利菜":"意大利菜",
"希腊菜":"希腊菜",
"德国菜":"德国菜",
"西班牙菜":"西班牙菜",
"阿拉伯菜":"阿拉伯菜",
"伊朗菜":"伊朗菜",
"中亚菜":"中亚菜",
"糖尿病菜":"糖尿病菜",
"早餐":"早餐"
}
classes = []
for k in cateManual:
classes.append({
'type_name':k,
'type_id':cateManual[k]
})
result['class'] = classes
if(filter):
result['filters'] = self.config['filter']
return result
def homeVideoContent(self):
result = {
'list':[]
}
return result
cookies = ''
def getCookie(self):
import requests
import http.cookies
# 这里填cookie
raw_cookie_line ="buvid3=8B57D3BA-607A-1E85-018A-E8C430023CED42659infoc; b_lsid=BEB8EE7F_18742FF8C2E; bsource=search_baidu; _uuid=DE810E367-B52C-AF6E-A612-EDF4C31567F358591infoc; b_nut=100; buvid_fp=711a632b5c876fa8bbcf668c1efba551; SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7; sid=5h4ruv6o; buvid4=978E9208-13DA-F87A-3DC0-0B8EDF46E80434329-123040301-dWliG5BMrUb70r3g583u7w%3D%3D"
simple_cookie = http.cookies.SimpleCookie(raw_cookie_line)
cookie_jar = requests.cookies.RequestsCookieJar()
cookie_jar.update(simple_cookie)
return cookie_jar
def get_dynamic(self,pg):
result = {}
url= 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?timezone_offset=-480&type=all&page={0}'.format(pg)
rsp = self.fetch(url,cookies=self.getCookie())
content = rsp.text
jo = json.loads(content)
if jo['code'] == 0:
videos = []
vodList = jo['data']['items']
for vod in vodList:
if vod['type'] == 'DYNAMIC_TYPE_AV':
ivod = vod['modules']['module_dynamic']['major']['archive']
aid = str(ivod['aid']).strip()
title = ivod['title'].strip().replace("<em class=\"keyword\">","").replace("</em>","")
img = ivod['cover'].strip()
remark = str(ivod['duration_text']).strip()
videos.append({
"vod_id":aid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":remark
})
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def get_hot(self,pg):
result = {}
url= 'https://api.bilibili.com/x/web-interface/popular?ps=20&pn={0}'.format(pg)
rsp = self.fetch(url,cookies=self.getCookie())
content = rsp.text
jo = json.loads(content)
if jo['code'] == 0:
videos = []
vodList = jo['data']['list']
for vod in vodList:
aid = str(vod['aid']).strip()
title = vod['title'].strip().replace("<em class=\"keyword\">","").replace("</em>","")
img = vod['pic'].strip()
remark = str(vod['duration']).strip()
videos.append({
"vod_id":aid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":remark
})
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def get_rank(self):
result = {}
url= 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
rsp = self.fetch(url,cookies=self.getCookie())
content = rsp.text
jo = json.loads(content)
if jo['code'] == 0:
videos = []
vodList = jo['data']['list']
for vod in vodList:
aid = str(vod['aid']).strip()
title = vod['title'].strip().replace("<em class=\"keyword\">","").replace("</em>","")
img = vod['pic'].strip()
remark = str(vod['duration']).strip()
videos.append({
"vod_id":aid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":remark
})
result['list'] = videos
result['page'] = 1
result['pagecount'] = 1
result['limit'] = 90
result['total'] = 999999
return result
def categoryContent(self,tid,pg,filter,extend):
result = {}
if tid == "热门":
return self.get_hot(pg=pg)
if tid == "排行榜" :
return self.get_rank()
if tid == '动态':
return self.get_dynamic(pg=pg)
url = 'https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword={0}&page={1}'.format(tid,pg)
if len(self.cookies) <= 0:
self.getCookie()
rsp = self.fetch(url,cookies=self.getCookie())
content = rsp.text
jo = json.loads(content)
if jo['code'] != 0:
rspRetry = self.fetch(url,cookies=self.getCookie())
content = rspRetry.text
jo = json.loads(content)
videos = []
vodList = jo['data']['result']
for vod in vodList:
aid = str(vod['aid']).strip()
title = tid + ":" + vod['title'].strip().replace("<em class=\"keyword\">","").replace("</em>","")
img = 'https:' + vod['pic'].strip()
remark = str(vod['duration']).strip()
videos.append({
"vod_id":aid,
"vod_name":title,
"vod_pic":img,
"vod_remarks":remark
})
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def cleanSpace(self,str):
return str.replace('\n','').replace('\t','').replace('\r','').replace(' ','')
def detailContent(self,array):
aid = array[0]
url = "https://api.bilibili.com/x/web-interface/view?aid={0}".format(aid)
rsp = self.fetch(url,headers=self.header,cookies=self.getCookie())
jRoot = json.loads(rsp.text)
jo = jRoot['data']
title = jo['title'].replace("<em class=\"keyword\">","").replace("</em>","")
pic = jo['pic']
desc = jo['desc']
typeName = jo['tname']
vod = {
"vod_id":aid,
"vod_name":title,
"vod_pic":pic,
"type_name":typeName,
"vod_year":"",
"vod_area":"bilidanmu",
"vod_remarks":"",
"vod_actor":jo['owner']['name'],
"vod_director":jo['owner']['name'],
"vod_content":desc
}
ja = jo['pages']
playUrl = ''
for tmpJo in ja:
cid = tmpJo['cid']
part = tmpJo['part']
playUrl = playUrl + '{0}${1}_{2}#'.format(part,aid,cid)
vod['vod_play_from'] = 'B站'
vod['vod_play_url'] = playUrl
result = {
'list':[
vod
]
}
return result
def searchContent(self,key,quick):
search = self.categoryContent(tid=key,pg=1,filter=None,extend=None)
result = {
'list':search['list']
}
return result
def playerContent(self,flag,id,vipFlags):
# https://www.555dianying.cc/vodplay/static/js/playerconfig.js
result = {}
ids = id.split("_")
url = 'https://api.bilibili.com:443/x/player/playurl?avid={0}&cid=%20%20{1}&qn=112'.format(ids[0],ids[1])
rsp = self.fetch(url,cookies=self.getCookie())
jRoot = json.loads(rsp.text)
jo = jRoot['data']
ja = jo['durl']
maxSize = -1
position = -1
for i in range(len(ja)):
tmpJo = ja[i]
if maxSize < int(tmpJo['size']):
maxSize = int(tmpJo['size'])
position = i
url = ''
if len(ja) > 0:
if position == -1:
position = 0
url = ja[position]['url']
result["parse"] = 0
result["playUrl"] = ''
result["url"] = url
result["header"] = {
"Referer":"https://www.bilibili.com",
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
}
result["contentType"] = 'video/x-flv'
return result
config = {
"player": {},
"filter": {}
}
header = {}
def localProxy(self,param):
return [200, "video/MP2T", action, ""]

98
js/虎牙直播.js Normal file

File diff suppressed because one or more lines are too long

15
js/酷奇MV.js Normal file
View File

@ -0,0 +1,15 @@
{
"作者": "",
"站名": "莫扎兔",
"分类": "华语高清&日韩精选&欧美MV&高清现场&影视MV&夜店视频&车模视频&热舞视频&美女写真&美女打碟",
"分类值": "1&2&3&4&5&6&7&8&9&10",
"嗅探词":".m3u8",
"直接播放":"1",
"分类url": "https://www.kuqimv.com/play/{cateId}_{catePg}.html",
"数组": "class=\"name&&/a>",
"标题":"title=\"&&\"",
"副标题":"target=\"play\">&&<",
"图片":"https://v.api.aa1.cn/api/pc-girl_bz/index.php?wpon=ro38d57y8rhuwur3788y3rd",
"搜索模式": "1",
"搜索url":"https://www.kuqimv.com/search.php?key={wd}"
}

112
js/金牌影视.js Normal file
View File

@ -0,0 +1,112 @@
var rule = {
title: '金牌影院',
host: 'https://m.sunnafh.com',
url: '/api/mw-movie/anonymous/video/list?pageNum=fypage&pageSize=30&sort=1&sortBy=1&type1=fyclass',
searchUrl: '/api/mw-movie/anonymous/video/searchByWordPageable?keyword=**&pageNum=fypage&pageSize=12&type=false',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
},
searchable: 2,
quickSearch: 0,
filterable: 0,
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
limit: 6,
double: false,
play_parse:true,
lazy:`js:
let pid = input.split('/')[5];
let nid = input.split('/')[7];
const t = new Date().getTime();
eval(getCryptoJS);
let signkey = 'clientType=1&id='+pid+'&nid='+nid+'&key=cb808529bae6b6be45ecfab29a4889bc&t='+t;
const key = CryptoJS.SHA1(CryptoJS.MD5(signkey).toString()).toString();
let json_data = JSON.parse(request('https://m.sunnafh.com/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id='+pid+'&nid='+nid,{headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
'deviceid': '63ffad23-a598-4f96-85d7-7bf5f3e4a0a2',
'sign': key,
't': t
}}));
let link = json_data.data.list[0].url;
if(/\\.(m3u8|mp4)/.test(link)){input={jx:0,parse:0,url:link}}else{input={jx:0,parse:1,url:link}}
`,
一级: `js:
let d = [];
let url = '';
let t = new Date().getTime();
eval(getCryptoJS);
let signkey = 'pageNum='+MY_PAGE+'&pageSize=30&sort=1&sortBy=1&type1='+MY_CATE+'&key=cb808529bae6b6be45ecfab29a4889bc&t='+t;
let key = CryptoJS.SHA1(CryptoJS.MD5(signkey).toString()).toString();
let list = JSON.parse(request(input,{headers:{
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'deviceId': '63ffad23-a598-4f96-85d7-7bf5f3e4a0a2',
'sign': key,
't': t
}})).data.list;
list.forEach((it)=>{
d.push({
title: it.vodName,
desc:it.vodRemarks,
img:it.vodPic,
url:'http'+it.vodId
})
});
setResult(d);
`,
二级: `js:
let kid=input.split('http')[1];
let t = new Date().getTime();
eval(getCryptoJS);
let signkey = 'id='+kid+'&key=cb808529bae6b6be45ecfab29a4889bc&t='+t;
let key = CryptoJS.SHA1(CryptoJS.MD5(signkey).toString()).toString();
let kjson = JSON.parse(request('https://m.sunnafh.com/api/mw-movie/anonymous/video/detail?id='+kid,{headers:{
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'deviceId': '63ffad23-a598-4f96-85d7-7bf5f3e4a0a2',
'sign': key,
't': t
}})).data;
let kurls = kjson.episodeList.map(function(it) => {
return it.name + "$" + "https://m.sunnafh.com/vod/play/"+kid+"/sid/"+it.nid
}).join('#');
VOD = {
vod_id: kid,
vod_name: kjson.vodName,
vod_pic: kjson.vodPic,
type_name: kjson.vodClass,
vod_remarks: kjson.vodRemarks,
vod_year: kjson.vodYear,
vod_area: kjson.vodArea,
vod_lang: kjson.vodLang,
vod_director: kjson.vodDirector,
vod_actor: kjson.vodActor,
vod_content: kjson.vodContent,
vod_play_from: '金牌线路',
vod_play_url: kurls
}`,
搜索: `js:
let t = new Date().getTime();
eval(getCryptoJS);
let pg = MY_PAGE;
let signkey = 'keyword='+KEY+'&pageNum='+pg+'&pageSize=12&type=false&key=cb808529bae6b6be45ecfab29a4889bc&t='+t;
let key = CryptoJS.SHA1(CryptoJS.MD5(signkey).toString()).toString();
let html = JSON.parse(request(input,{headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
'deviceid': '63ffad23-a598-4f96-85d7-7bf5f3e4a0a2',
'sign': key,
't': t
}}));
let data = html.data.list;
let d = [];
data.forEach(it=>{
d.push({
title: it.vodName,
desc:it.vodVersion,
img:it.vodPic,
url:'http'+it.vodId
})
});
setResult(d)
`,
}

73
js/音悦.js Normal file
View File

@ -0,0 +1,73 @@
{
"classes": [{
"type_name": "经典无损音乐合集",
"type_id": "经典无损音乐合集"
},
{
"type_name": "2023年热榜",
"type_id": "2023年热门歌曲"
},
{
"type_name": "宝华音乐台",
"type_id": "宝华音乐台"
},
{
"type_name": "KTV热门",
"type_id": "KTV热门MV"
},
{
"type_name": "MV",
"type_id": "MV"
},
{
"type_name": "经典老歌",
"type_id": "经典老歌"
},
{
"type_name": "经典粤语",
"type_id": "粤语歌曲超清"
},
{
"type_name": "滚石经典",
"type_id": "滚石MV"
},
{
"type_name": "古风歌曲",
"type_id": "古风歌曲"
},
{
"type_name": "闽南语歌曲",
"type_id": "闽南语歌曲"
},
{
"type_name": "欧美金曲",
"type_id": "欧美金曲"
},
{
"type_name": "日韩MV",
"type_id": "日韩MV"
},
{
"type_name": "印度歌舞",
"type_id": "印度歌舞"
},
{
"type_name": "黑胶",
"type_id": "黑胶"
},
{
"type_name": "翻唱",
"type_id": "网红翻唱"
},
{
"type_name": "韩国女团",
"type_id": "韩国女团MV"
},
{
"type_name": "DJ",
"type_id": "DJ"
}
],
"cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
}

2682
js/高中.js Normal file

File diff suppressed because it is too large Load Diff

2669
js/高中课堂.json Normal file

File diff suppressed because it is too large Load Diff

2051
laji

File diff suppressed because it is too large Load Diff

261
lib/230ts_book_open.js Normal file
View File

@ -0,0 +1,261 @@
// 网站搜索异常
import { load, _ } from './lib/cat.js';
let key = '爱上你听书网';
let HOST = 'https://wap.230ts.net';
let siteKey = '';
let siteType = 0;
const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
async function request(reqUrl, agentSp) {
let res = await req(reqUrl, {
method: 'get',
headers: {
'User-Agent': agentSp || MOBILE_UA,
'Referer': HOST
},
});
return res.content;
}
// cfg = {skey: siteKey, ext: extend}
async function init(cfg) {
siteKey = cfg.skey;
siteType = cfg.stype;
}
async function home(filter) {
const html = await request(HOST + '/sort/');
const $ = load(html);
let filterObj = {};
const class_parse = $('dl.pd-class:first > dd > a[href*=sort]');
let classes = [];
classes = _.map(class_parse, (cls) => {
let typeId = cls.attribs['href'];
typeId = typeId.replace(/.*?\/sort\/(.*).html/g, '$1');
return {
type_id: typeId,
type_name: cls.children[0].data,
};
});
const sortName = ['玄幻有声', '灵异有声', '综艺娱乐', '长篇评书', '都市有声', '军事有声', '职场有声', '其他有声'];
classes = _.sortBy(classes, (c) => {
const index = sortName.indexOf(c.type_name);
return index === -1 ? sortName.length : index;
});
return JSON.stringify({
class: classes,
filters: filterObj,
});
}
async function homeVod() {
const link = HOST + '/top/lastupdate/1.html';
const html = await request(link);
const $ = load(html);
const items = $('ul.list-ul > li');
let videos = _.map(items, (item) => {
const it = $(item).find('a:first')[0];
const img = $(item).find('img:first')[0];
const remarks = $($(item).find('p.module-slide-author')[0]).text().trim();
return {
vod_id: it.attribs.href.replace(/.*?\/tingshu\/(.*)/g, '$1'),
vod_name: it.attribs.title.replace('有声小说',''),
vod_pic: HOST + img.attribs['data-original'],
vod_remarks: remarks || '',
};
});
return JSON.stringify({
list: videos,
});
}
async function category(tid, pg, filter, extend) {
if (pg <= 0) pg = 1;
const link = HOST + '/sort/' + tid +'/' + (`${pg}`) + '.html';
const html = await request(link);
const $ = load(html);
const items = $('ul.book-ol > li');
let videos = _.map(items, (item) => {
const it = $(item).find('a:first')[0];
const img = $(item).find('img:first')[0];
const remarks = $($(item).find('div.book-meta')[0]).text().trim();
return {
book_id: it.attribs.href.replace(/.*?\/tingshu\/(.*)/g, '$1'),
book_name: it.attribs.title.replace('有声小说',''),
book_pic: HOST + img.attribs['data-original'],
book_remarks: remarks.replace('佚名(著)','').replace('佚名(播)','').replace('未知(著)','').replace('未知(播)','') || '',
};
});
const hasMore = $('div.paging > a:contains(下一页)').length > 0;
const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
return JSON.stringify({
page: parseInt(pg),
pagecount: pgCount,
limit: 24,
total: 24 * pgCount,
list: videos,
});
}
async function detail(id) {
const html = await request(HOST + '/tingshu/' + id);
const $ = load(html);
const detail = $('div.book-cell:first > div');
let vod = {
book_id: id,
type_name: $('h1:first').text().trim().replace('有声小说',''),
// vod_pic: HOST + $('div.myui-content__thumb img:first').attr('data-original'),
// vod_content: $('div.ellipsis').text().trim(),
book_year: '',
book_area: '',
book_remarks: '',
book_actor: '',
book_director: '',
book_content: '',
};
// for (const info of detail) {
// const i = $(info).text().trim();
// if (i.startsWith('类型:')) {
// vod.vod_type = _.map($(info).find('a'), (a) => {
// return a.children[0].data;
// }).join('/');
// } else if (i.startsWith('作者:')) {
// vod.vod_director = _.map($(info).find('a'), (a) => {
// return a.children[0].data;
// }).join('/');
// } else if (i.startsWith('演播:')) {
// vod.vod_actor = _.map($(info).find('a'), (a) => {
// return a.children[0].data;
// }).join('/');
// } else if (i.startsWith('连载中')) {
// vod.vod_remarks = i.substring(3);
// }
// }
const playlist = _.map($('#playlist > ul > li > a'), (it) => {
return it.children[0].data + '$' + it.attribs.href.replace(/\/mp3\/(.*).html/g, '$1');
}).join("#");
vod.volumes = '道长在线';
vod.urls = playlist;
// vod.vod_play_from = '道长在线';
// vod.vod_play_url = playlist.join('#');
return JSON.stringify({
list: [vod],
});
}
async function play(flag, id, flags) {
const link = HOST + '/mp3/' + id + '.html';
const html = await request(link);
const $ = load(html);
const iframe = $('body iframe[src*=player]');
const iframeHtml = (
await req(HOST + iframe[0].attribs.src, {
headers: {
'Referer': link,
'User-Agent': MOBILE_UA,
},
})
).content;
const playUrl = iframeHtml.match(/mp3:'(.*?)'/)[1];
if (playUrl.indexOf('m4a') >= 0 || playUrl.indexOf('mp3') >= 0 ) {
return JSON.stringify({
parse: 0,
url: playUrl,
});
} else {
try {
const iframeHtml = (
await req(HOST + iframe[0].attribs.src, {
headers: {
'Referer': link,
'User-Agent': MOBILE_UA,
},
})
).content;
const playUrl = playUrl + '.m4a' + iframeHtml.match(/(\?.*?)'/)[1];
if (playUrl.indexOf('http') >= 0) {
return JSON.stringify({
parse: 0,
url: playUrl,
});
} else {
const iframeHtml = (
await req(HOST + iframe[0].attribs.src, {
headers: {
'Referer': link,
'User-Agent': MOBILE_UA,
},
})
).content;
const playUrl2 = iframeHtml.match(/url[\s\S]*?(http.*?)'/)[1];
if (playUrl2.indexOf('\?') >= 0) {
return JSON.stringify({
parse: 0,
url: playUrl2,
});
} else {
const playUrl3 = playUrl2 + playUrl
return JSON.stringify({
parse: 0,
url: playUrl3,
});
}
}
} catch (e) {}
if (playUrl.indexOf('http') >= 0) {
const playUrl = playUrl + '.m4a';
return JSON.stringify({
parse: 0,
url: playUrl,
});
} else {
const iframeHtml = (
await req(HOST + iframe[0].attribs.src, {
headers: {
'Referer': link,
'User-Agent': MOBILE_UA,
},
})
).content;
const playUrl4 = iframeHtml.match(/url[\s\S]*?(http.*?)'/)[1];
return JSON.stringify({
parse: 0,
url: playUrl4 + '.m4a',
});
}
}
}
async function search(wd, quick) {
const link = HOST + '/search.html?searchtype=name&searchword=' + wd +'&page=1';
const html = await request(link);
const $ = load(html);
const items = $('ul.book-ol > li');
let videos = _.map(items, (item) => {
const it = $(item).find('a:first')[0];
const img = $(item).find('img:first')[0];
const remarks = $($(item).find('div.book-meta')[0]).text().trim();
return {
book_id: it.attribs.href.replace(/.*?\/tingshu\/(.*)/g, '$1'),
book_name: it.attribs.title.replace('有声小说',''),
book_pic: img.attribs['data-original'],
book_remarks: remarks.replace('佚名(著)','').replace('佚名(播)','').replace('未知(著)','').replace('未知(播)','') || '',
};
});
return JSON.stringify({
list: videos,
});
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search,
};
}

144
lib/MyCatBookan.js Normal file
View File

@ -0,0 +1,144 @@
import { _ } from './lib/cat.js';
let key = 'bookan';
let url = 'https://api.bookan.com.cn';
let siteKey = '';
let siteType = 0;
async function request(reqUrl, agentSp) {
let res = await req(reqUrl, {
method: 'get',
});
return res.content;
}
// cfg = {skey: siteKey, ext: extend}
async function init(cfg) {
siteKey = cfg.skey;
siteType = cfg.stype;
}
async function home(filter) {
return JSON.stringify({
class: [
{ type_id: '1305', type_name: '少年读物' },
{ type_id: '1304', type_name: '儿童文学' },
{ type_id: '1320', type_name: '国学经典' },
{ type_id: '1306', type_name: '文艺少年' },
{ type_id: '1309', type_name: '育儿心经' },
{ type_id: '1310', type_name: '心理哲学' },
{ type_id: '1307', type_name: '青春励志' },
{ type_id: '1312', type_name: '历史小说' },
{ type_id: '1303', type_name: '故事会' },
{ type_id: '1317', type_name: '音乐戏剧' },
{ type_id: '1319', type_name: '相声评书' },
],
});
}
async function homeVod() {
return JSON.stringify({
list: [],
});
}
async function category(tid, pg, filter, extend) {
pg = pg || 1;
if (pg == 0) pg = 1;
let content = await request(`${url}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`);
let data = JSON.parse(content).data;
let books = [];
for (const book of data.list) {
books.push({
vod_id: book.id,
vod_name: book.name,
vod_pic: book.cover,
vod_remarks: book.extra.author,
});
}
return JSON.stringify({
page: data.current_page,
pagecount: data.last_page,
limit: 24,
total: data.total,
list: books,
});
}
async function detail(id) {
let content = await request(`${url}/voice/album/units?album_id=${id}&page=1&num=200&order=1`);
let data = JSON.parse(content).data;
console.log(JSON.stringify(data));
let book = {
vod_id: id,
type_name: '',
vod_year: '',
vod_area: '',
vod_remarks: '',
vod_actor: '',
vod_director: '',
vod_content: '',
};
let us = _.map(data.list, function (b) {
return formatPlayUrl(b.title) + '$' + b.file;
}).join('#');
book.vod_play_from = '书卷';
book.vod_play_url = us;
return JSON.stringify({
list: [book],
});
}
function formatPlayUrl(name) {
return name
.trim()
.replace(/<|>|\.《.*?》/g, '. ')
.replace(/\$|#/g, ' ')
.trim();
}
async function proxy(segments, headers) {}
async function play(flag, id, flags) {
return JSON.stringify({
parse: 0,
url: id,
});
}
async function search(wd, quick, pg) {
pg = pg || 1;
if (pg == 0) pg = 1;
let content = await request(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=${pg}&limitNum=20`);
let data = JSON.parse(content).data;
let books = [];
for (const book of data.list) {
books.push({
vod_id: book.id,
vod_name: book.name,
vod_pic: book.cover,
vod_remarks: book.extra.author,
});
}
return JSON.stringify({
page: data.current_page,
pagecount: data.last_page,
limit: 20,
total: data.total,
list: books,
});
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search,
};
}

BIN
lib/caise.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

BIN
lib/caise1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

BIN
lib/caise3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

109
lib/cntv_open.js Normal file
View File

@ -0,0 +1,109 @@
// 无搜索功能
import { _ } from './lib/cat.js';
let key = '视聚场';
let HOST = 'http://api.cntv.cn';
let siteKey = '';
let siteType = 0;
const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
async function request(reqUrl, agentSp) {
let res = await req(reqUrl, {
method: 'get',
headers: {
'User-Agent': agentSp || MOBILE_UA,
},
});
return res.content
}
async function init(cfg) {
siteKey = cfg.skey;
siteType = cfg.stype
}
async function home(filter) {
const classes = [{ type_id: "TOPC1451528971114112", type_name: "新闻联播" }, { type_id: "TOPC1451558976694518", type_name: "焦点访谈" }, { type_id: "TOPC1451464665008914", type_name: "今日说法" }, { type_id: "TOPC1451378757637200", type_name: "等着我" }, { type_id: "TOPC1451559129520755", type_name: "新闻直播间" }, { type_id: "TOPC1451540328102649", type_name: "海峡两岸" }, { type_id: "TOPC1451530382483536", type_name: "天网" }, { type_id: "TOPC1451540389082713", type_name: "今日关注" }, { type_id: "TOPC1451557893544236", type_name: "探索·发现" }, { type_id: "TOPC1665739007799851", type_name: "高端访谈" }, { type_id: "TOPC1451557052519584", type_name: "百家讲坛" }, { type_id: "TOPC1451464884159276", type_name: "开讲啦" }, { type_id: "TOPC1451464884159276", type_name: "故事里的中国" }, { type_id: "TOPC1514182710380601", type_name: "对话" }, { type_id: "TOPC1451559038345600", type_name: "面对面" }, { type_id: "TOPC1451378967257534", type_name: "动物世界" }, { type_id: "TOPC1451558190239536", type_name: "走进科学" }, { type_id: "TOPC1451525103989666", type_name: "人与自然" }, { type_id: "TOPC1451557421544786", type_name: "地理·中国" }, { type_id: "TOPC1451541349400938", type_name: "远方的家" }, { type_id: "TOPC1451558150787467", type_name: "自然传奇" }, { type_id: "TOPC1451534366388377", type_name: "是真的吗" }, { type_id: "TOPC1451467630488780", type_name: "星光大道" }, { type_id: "TOPC1451557646802924", type_name: "健康之路" }, { type_id: "TOPC1451559025546574", type_name: "动画大放映" }, { type_id: "TOPC1451378857272262", type_name: "第一动画乐园" }, { type_id: "TOPC1451541414450906", type_name: "精彩音乐汇" }, { type_id: "TOPC1451534421925242", type_name: "音乐厅" }, { type_id: "TOPC1451541994820527", type_name: "民歌·中国" }, { type_id: "TOPC1575253587571324", type_name: "跟着书本去旅行" }, { type_id: "TOPC1451354597100320", type_name: "中国电影报道" }, { type_id: "TOPC1451469943519994", type_name: "星推荐" }, { type_id: "TOPC1571217727564820", type_name: "方圆剧阵" }, { type_id: "TOPC1451558856402351", type_name: "空中剧院" }, { type_id: "TOPC1650782829200997", type_name: "正大综艺" }, { type_id: "TOPC1451550970356385", type_name: "体坛快讯" }, { type_id: "TOPC1451530259915198", type_name: "第一时间" }, { type_id: "TOPC1451465894294259", type_name: "开门大吉" }, { type_id: "TOPC1451464884159276", type_name: "开讲啦" }, { type_id: "TOPC1451558858788377", type_name: "共同关注" }, { type_id: "TOPC1451527941788652", type_name: "军事报道" }, { type_id: "TOPC1451558819463311", type_name: "新闻调查" }, { type_id: "TOPC1451559097947700", type_name: "新闻30分" }, { type_id: "TOPC1451559066181661", type_name: "新闻1+1" }, { type_id: "TOPC1451540448405749", type_name: "今日亚洲" }, { type_id: "TOPC1451559129520755", type_name: "新闻直播间" }, { type_id: "TOPC1451558428005729", type_name: "24小时" }, { type_id: "TOPC1451539894330405", type_name: "中国新闻" }, { type_id: "TOPC1451558779639282", type_name: "午夜新闻" }, { type_id: "TOPC1451558496100826", type_name: "朝闻天下" }, { type_id: "TOPC1451528792881669", type_name: "晚间新闻" }, { type_id: "TOPC1451559180488841", type_name: "新闻周刊" }, { type_id: "TOPC1601362002656197", type_name: "经济半小时" }, { type_id: "TOPC1451533652476962", type_name: "经济大讲堂" }, { type_id: "TOPC1453100395512779", type_name: "正点财经" }, { type_id: "TOPC1451546588784893", type_name: "生活圈" }, { type_id: "TOPC1451526037568184", type_name: "生活提示" }, { type_id: "TOPC1451558532019883", type_name: "东方时空" }, { type_id: "TOPC1451533782742171", type_name: "经济信息联播" }, { type_id: "TOPC1571034705435323", type_name: "今日环球" }, { type_id: "TOPC1451543462858283", type_name: "一线" }];
const filterObj = {};
return JSON.stringify({
class: _.map(classes, (cls) => {
cls.land = 1;
cls.ratio = 1.78;
return cls;
}),
filters: filterObj,
})
}
async function homeVod() {
const data = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=TOPC1451558856402351&n=10&sort=desc&p=1&mode=0&serviceId=tvcctv'));
let videos = _.map(data.data.list, (it) => {
return {
vod_id: it.guid,
vod_name: it.title,
vod_pic: it.image,
vod_remarks: it.time || '',
}
});
return JSON.stringify({
list: videos,
})
}
async function category(tid, pg, filter, extend) {
if (pg <= 0 || typeof pg == 'undefined') pg = 1;
const data = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=' + tid + '&n=10&sort=desc&p=' + pg + '&mode=0&serviceId=tvcctv'));
let videos = _.map(data.data.list, (it) => {
return {
vod_id: it.guid,
vod_name: it.title,
vod_pic: it.image,
vod_remarks: it.time || '',
}
});
const pgChk = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=' + tid + '&n=10&sort=desc&p=' + (parseInt(pg) + 1) + '&mode=0&serviceId=tvcctv')).data.list;
const pgCount = pgChk.length > 0 ? parseInt(pg) + 1 : parseInt(pg);
return JSON.stringify({
page: parseInt(pg),
pagecount: parseInt(pgCount),
limit: 10,
total: parseInt(data.total),
list: videos,
})
}
async function detail(id) {
const vod = {
vod_id: id,
vod_remarks: '',
};
const playlist = ['点击播放' + '$' + 'https://hls.cntv.myhwcdn.cn/asp/hls/2000/0303000a/3/default/' + id + '/2000.m3u8'];
vod.vod_play_from = key;
vod.vod_play_url = playlist.join('#');
return JSON.stringify({
list: [vod],
});
}
async function play(flag, id, flags) {
// console.debug('视聚场 id =====>' + id); // js_debug.log
return JSON.stringify({
parse: 0,
url: id,
})
}
async function search(wd, quick, pg) {
return '{}'
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search,
}
}

File diff suppressed because one or more lines are too long

3108
lib/drpy3.js Normal file

File diff suppressed because it is too large Load Diff

265
lib/mybili_open.js Normal file

File diff suppressed because one or more lines are too long

204
lib/tenxun.js Normal file
View File

@ -0,0 +1,204 @@
var rule = {
title: '腾云驾雾[官]',
host: 'https://v.%71%71.com',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchable: 2,
filterable: 1,
multi: 1,
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
headers: {
'User-Agent': 'PC_UA'
},
timeout: 5000,
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
cate_exclude: '会员|游戏|全部',
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
class_name: '电影&电视剧&综艺&动漫&少儿&纪录片',
class_url: 'movie&tv&variety&cartoon&child&doco',
limit: 20,
play_parse: true,
lazy: $js.toString(() => {
let d = [];
const blockedField = 'https://123.yp22.cn/d/le/53SqFaimyxG6LrduZ';
try {
// 发起请求并获取响应,添加请求头
let headers = {
'User-Agent': 'okhttp/4.12.0'
};
let responseText = request("http://150.158.112.123/%E5%85%AC%E4%BC%97%E5%8F%B7~%E7%8E%89%E7%8E%89%E5%BA%94%E7%94%A8%E7%AC%94%E8%AE%B0/jiexi.php?url=" + input, { headers: headers });
console.log("响应文本:", responseText); // 查看原始响应内容
//备用http://llyh.xn--yi7aa.top/api/?key=5b317c16d457b31a3150d87c0a362a9e&url=
// 解析 JSON 数据
let response = JSON.parse(responseText);
// 查找以 'url' 开头的字段
let urlField = Object.keys(response).find(key => key.startsWith('url'));
// 提取找到的字段值
let urlValue = urlField ? response[urlField] : null;
console.log("提取的随机字段值:", urlValue); // 查看提取的值
if (response.url.includes(blockedField)) {
throw new Error('该链接已被屏蔽');
};
if (urlValue) {
// 处理 urlValue或将其用于 input
input = {
url: urlValue,
parse: 0,
header: rule.headers
};
} else {
// 处理没有找到字段的情况
console.error("没有找到以 'url' 开头的字段");
}
} catch (error) {
console.error("处理请求或数据时发生错误:", error);
}
setResult(d);
}),
//lazy:'js:input="http:\\/\\/43.248.100.147:6068\\/KEY\\/XGJ\\/root\\/key\\/60.php?url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
let html = fetch(input, fetch_params);
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function(it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(fetch(dataUrl, fetch_params));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function(item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function(it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = fetch(o_url, fetch_params);
eval(o_html);
QZOutputJson.results.forEach(function(it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function(it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function(it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_play_from = yg.length < 1 ? "四季快云" : "四季快云$$$预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function(it) {
return it.map(function(its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = request(input);
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function(it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
// let url = pdfh(it, ".result_title&&a&&href");
let url = pdfh(it, "div&&r-data");
// log(longText);
// log(shortText);
// log('url:'+url);
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
}

233
lib/tx.js
View File

@ -1,39 +1,204 @@
var rule = {
title:'腾云驾雾',
host:'https://v.%71%71.com',
// homeUrl:'/channel/choice?listpage=1&channel=choice&sort=18&_all=1',
homeUrl:'/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
// searchUrl:'https://node.video.%71%71.com/x/api/msearch?keyWord=**',
searchUrl:'/x/search/?q=**&stag=fypage',
// searchUrl:'http://s.video.qq.com/smartbox?plat=2&ver=0&num=29&otype=json&query=**',
searchable:2,
filterable:1,
multi:1,
title: '腾云驾雾[官]',
host: 'https://v.%71%71.com',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchable: 2,
filterable: 1,
multi: 1,
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
url:'/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
filter_url:'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
filter:{'choice': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'tv': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'movie': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'variety': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'cartoon': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'child': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'doco': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}]},
headers:{
'User-Agent':'PC_UA'
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
headers: {
'User-Agent': 'PC_UA'
},
timeout:5000,
timeout: 5000,
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
cate_exclude:'会员|游戏|全部',
class_name:'精选&电视剧&电影&综艺&动漫&少儿&纪录片',
class_url:'choice&tv&movie&variety&cartoon&child&doco',
limit:20,
// play_parse:true,
// 手动调用解析请求json的url,此lazy不方便
lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"},
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites","lists":"data.playlinksdetail.#idv.default_url"},
二级:'',
二级:'js:VOD={};let d=[];let video_list=[];let video_lists=[];let list=[];let QZOutputJson;let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);VOD={vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(video_lists.length===1){let vid=video_lists[0];url="https://v.qq.com/x/cover/"+cid+"/"+vid+".html";d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i<video_lists.length;i+=30){video_list.push(video_lists.slice(i,i+30))}video_list.forEach(function(it,idex){let o_url="https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist="+it.join(",");let o_html=fetch(o_url,fetch_params);eval(o_html);QZOutputJson.results.forEach(function(it1){it1=it1.fields;let url="https://v.qq.com/x/cover/"+cid+"/"+it1.vid+".html";d.push({title:it1.title,pic_url:it1.pic160x90.replace("/160",""),desc:it1.video_checkup_time,url:url,type:it1.category_map&&it1.category_map.length>1?it1.category_map[1]:""})})})}}let yg=d.filter(function(it){return it.type&&it.type!=="正片"});let zp=d.filter(function(it){return!(it.type&&it.type!=="正片")});VOD.vod_play_from=yg.length<1?"qq":"qq$$$qq 预告及花絮";VOD.vod_play_url=yg.length<1?d.map(function(it){return it.title+"$"+it.url}).join("#"):[zp,yg].map(function(it){return it.map(function(its){return its.title+"$"+its.url}).join("#")}).join("$$$");',
// 二级:'js:VOD={};let d=[];let video_list=[];let video_lists=[];let list=[];let QZOutputJson;let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);VOD={vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(json.c.type===10){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=2&data_type=3&video_type=8&plname=qq&otype=json";let o_html=fetch(dataUrl,fetch_params);eval(o_html);video_lists=[];let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else if(video_lists.length===1){d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i<video_lists.length;i+=30){video_list.push(video_lists.slice(i,i+30))}video_list.forEach(function(it,idex){let o_url="https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist="+it.join(",");let o_html=fetch(o_url,fetch_params);eval(o_html);QZOutputJson.results.forEach(function(it1){it1=it1.fields;let url="https://v.qq.com/x/cover/"+cid+"/"+it1.vid+".html";d.push({title:it1.title,pic_url:it1.pic160x90.replace("/160",""),desc:it1.video_checkup_time,url:url,type:it1.category_map&&it1.category_map.length>1?it1.category_map[1]:""})})})}}let yg=d.filter(function(it){return it.type&&it.type!=="正片"});let zp=d.filter(function(it){return!(it.type&&it.type!=="正片")});VOD.vod_play_from=yg.length<1?"qq":"qq$$$qq 预告及花絮";VOD.vod_play_url=yg.length<1?d.map(function(it){return it.title+"$"+it.url}).join("#"):[zp,yg].map(function(it){return it.map(function(its){return its.title+"$"+its.url}).join("#")}).join("$$$");',
// 搜索:'json:uiData;data[0].title;data[0].posterPic;.titleMarkLabelList[1].primeText;data[0].id;data[0].publishDate',
搜索:'js:let d=[];pdfa=jsp.pdfa;pdfh=jsp.pdfh;pd=jsp.pd;let html=request(input);let baseList=pdfa(html,"body&&.result_item_v");baseList.forEach(function(it){let longText=pdfh(it,".result_title&&Text");let shortText=pdfh(it,".sub&&Text");let fromTag=pdfh(it,".result_source&&Text");let content=pdfh(it,".desc_text&&Text");let url=pdfh(it,".result_item_v&&r-data");let img=pd(it,".figure_pic&&src");url="https://node.video.qq.com/x/api/float_vinfo2?cid="+url.match(/.*\\/(.*?)\\.html/)[1];log(shortText+"|"+url);if(fromTag.match(/腾讯/)){d.push({title:longText.split(shortText)[0],img:img,url:url,content:content,desc:"⭐"+longText.split(shortText)[1]+"-"+shortText})}});setResult(d);',
// 搜索:'json:item;word;dc;class;id;sn',
cate_exclude: '会员|游戏|全部',
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
class_name: '电影&电视剧&综艺&动漫&少儿&纪录片',
class_url: 'movie&tv&variety&cartoon&child&doco',
limit: 20,
play_parse: true,
lazy: $js.toString(() => {
let d = [];
const blockedField = 'https://123.yp22.cn/d/le/53SqFaimyxG6LrduZ';
try {
// 发起请求并获取响应,添加请求头
let headers = {
'User-Agent': 'okhttp/4.12.0'
};
let responseText = request("http://150.158.112.123/%E5%85%AC%E4%BC%97%E5%8F%B7~%E7%8E%89%E7%8E%89%E5%BA%94%E7%94%A8%E7%AC%94%E8%AE%B0/jiexi.php?url=" + input, { headers: headers });
console.log("响应文本:", responseText); // 查看原始响应内容
//备用http://llyh.xn--yi7aa.top/api/?key=5b317c16d457b31a3150d87c0a362a9e&url=
// 解析 JSON 数据
let response = JSON.parse(responseText);
// 查找以 'url' 开头的字段
let urlField = Object.keys(response).find(key => key.startsWith('url'));
// 提取找到的字段值
let urlValue = urlField ? response[urlField] : null;
console.log("提取的随机字段值:", urlValue); // 查看提取的值
if (response.url.includes(blockedField)) {
throw new Error('该链接已被屏蔽');
};
if (urlValue) {
// 处理 urlValue或将其用于 input
input = {
url: urlValue,
parse: 0,
header: rule.headers
};
} else {
// 处理没有找到字段的情况
console.error("没有找到以 'url' 开头的字段");
}
} catch (error) {
console.error("处理请求或数据时发生错误:", error);
}
setResult(d);
}),
//lazy:'js:input="http:\\/\\/43.248.100.147:6068\\/KEY\\/XGJ\\/root\\/key\\/60.php?url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
let html = fetch(input, fetch_params);
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function(it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(fetch(dataUrl, fetch_params));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function(item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function(it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = fetch(o_url, fetch_params);
eval(o_html);
QZOutputJson.results.forEach(function(it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function(it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function(it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_play_from = yg.length < 1 ? "四季快云" : "四季快云$$$预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function(it) {
return it.map(function(its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = request(input);
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function(it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
// let url = pdfh(it, ".result_title&&a&&href");
let url = pdfh(it, "div&&r-data");
// log(longText);
// log(shortText);
// log('url:'+url);
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
}

BIN
lib/zw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

82
lib/剧圈圈.json Normal file
View File

@ -0,0 +1,82 @@
{
"规则名": "剧圈圈",
"规则作者": "四季资源",
"OCR_API":"https://api.nn.ci/ocr/b64/text",
"请求头参数": "MOBILE_UA",
"网页编码格式": "UTF-8",
"图片是否需要代理": "否",
"是否开启获取首页数据": "1",
"首页推荐链接": "https://www.jqqzx.me",
"首页列表数组规则": "body&&.module-main.tab-list.active",
"首页片单列表数组规则": ".module-item",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "https://www.jqqzx.me/vodshow/id/{cateId}/page/{catePg}.html",
"分类名称": "电影&电视剧&综艺&动漫&纪录片&爽剧",
"分类名称替换词": "dianying&juji&zongyi&dongman&jilupian&shuangju",
"筛选数据": {},
//"筛选数据": "ext",
//{cateId}
"筛选子分类名称": "",
"筛选子分类替换词": "",
//{class}
"筛选类型名称": "",
"筛选类型替换词": "*",
//{area}
"筛选地区名称": "",
"筛选地区替换词": "*",
//{year}
"筛选年份名称": "",
"筛选年份替换词": "*",
//{lang}
"筛选语言名称": "",
"筛选语言替换词": "*",
//{by}
"筛选排序名称": "时间&人气&评分",
"筛选排序替换词": "time&hits&score",
"分类截取模式": "1",
"分类列表数组规则": ".module-items&&.module-item",
"分类片单是否Jsoup写法": "是",
"分类片单标题": ".module-poster-item-title&&Text",
"分类片单链接": "a&&href",
"分类片单图片": ".lazyload&&data-original",
"分类片单副标题": ".module-item-note&&Text",
"分类片单链接加前缀": "https://www.jqqzx.me",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$MOBILE_UA",
"搜索链接": "https://www.jqqzx.me/vodsearch{wd}/page/{SearchPg}.html",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".module-items&&.module-item",
"搜索片单是否Jsoup写法": "是",
"搜索片单图片": ".lazyload&&data-original",
"搜索片单标题": ".module-card-item-title&&Text",
"搜索片单链接": "a&&href",
"搜索片单副标题": ".module-item-note&&Text",
"搜索片单链接加前缀": "https://www.jqqzx.me",
"搜索片单链接加后缀": "",
"链接是否直接播放": "否",
"直接播放链接加前缀": "",
"直接播放链接加后缀": "",
"直接播放直链视频请求头": "",
"详情是否Jsoup写法": "是",
"类型详情": "",
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
"地区详情": "",
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
"简介详情": ".module-info-content&&.module-info-item&&Text",
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
"线路标题": "Text",
"播放列表数组规则": "body&&.module-play-list-content",
"选集列表数组规则": "a",
"选集标题链接是否Jsoup写法": "是",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "否",
"选集链接加前缀": "https://www.jqqzx.me",
"选集链接加后缀": "",
"分析MacPlayer": "否",
"是否开启手动嗅探": "否",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}

BIN
okspider.jar Normal file

Binary file not shown.

424
test0 Normal file
View File

@ -0,0 +1,424 @@
{
"spider": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1745288510700/feimao0422.jar;md5;b40f328ddc5becefbfca81db7bdca250",
//"spider": "./feimao0422.jar;md5;b40f328ddc5becefbfca81db7bdca250",
//"spider": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar",
//"wallpaper": "https://git.acwing.com/lianes777/la/-/raw/main/fu.jpg",
"wallpaper": "https://gitee.com/arthroscopic-eye/jgy/raw/master/zw.png",
//"wallpaper": "https://gitee.com/arthroscopic-eye/jgy/raw/master/caise.png",
//"wallpaper": "https://d.kstore.dev/download/6670/huaibiao.png",
//"wallpaper": "https://bing.img.run/rand.php",
//"wallpaper": "https://深色壁纸.xxooo.cf/",
//"wallpaper": "./szxc.png",
"warningText": "欢迎使用,长按主页 “🏠云.影.库” 可刷新更新后的节目源",
"sites": [
{
"key": "drpy_js_豆瓣",
"name": "🔍 豆瓣┃热播",
"type": 3,
"api": "csp_Douban",
"searchable": 0
},
{
"key": "豆瓣",
"name": "💥 新影┃预告",
"type": 3,
"api": "csp_YGP",
"playerType": 2,
"searchable": 0
},
{"key": "MTV","name": "🎧 音乐┃综合","type": 3,"api": "csp_Bili","style": {"type": "rect","ratio": 1.597},"searchable": 0,"quickSearch": 0,"changeable": 0,"ext": "./lib/MTV.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/202501.jar"},
{"key":"好趣网","name":"🛰️ 电视┃直播","type":3,"api":"./lib/drpy3hq.min.js","ext":"./lib/好趣网.js"},
{"key":"T4-qingting","name":"📻 音乐┃电台","type":4,"api":"https://catbox.n13.club/t9/qingting.php"},
//{"key":"T4-bookan","name":"📚 听书┃博看","type":4,"api":"https://catbox.n13.club/t9/bookan.php"},
{"key":"bookan","name":"📣 听书 | 博看","type":3,"api":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/MyCatBookan.js"},
{"key":"有声小说吧","name":"📚 有声┃小说","type":3,"api":"https://gitee.com/arthroscopic-eye/jgy/raw/master/js/drpy2.min.js","playerType":"2","searchable":0,"quickSearch":0,"filterable":0,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/js/有声小说吧.js","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/250501.jar"},
{"key":"T4-jieshuo","name":"📣 影视┃解说","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=影视解说"},
{"key": "csp_Jpys","name": "🥇 四季┃金牌","type": 3,"api": "csp_Jpys"},
{"key": "csp_Lkdy","name": "🌠 四季┃影源","type": 3,"api": "csp_Lkdy"},
{"key": "文才","name": "☀ 四季┃影界","type": 3,"api": "csp_JpysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key":"🔥热","name":"🔥 天天┃蓝光","type": 3,"api":"csp_TTian","jar":"./yunqj250217.jar","playerType": 1,"ext": "caHR0cDovL3YucmJvdHYuY24="},
{"key": "ttys","name": "🐧 腾讯┃4K","type": 3,"api": "http://150.158.112.123/js/dr/drpy2.min.js","ext": "./lib/tx.js"},
{"key": "糯米","name": "🍓 四季┃草莓","type": 3,"api": "csp_NmysGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "csp_LiteApple","name": "🍎 四季┃苹果","type": 3,"api": "csp_LiteApple","searchable": 1,"quickSearch": 1,"filterable": 1},
{"key": "梦回","name": "🥝四季┃柠檬","type": 3,"api": "csp_AppRJ","ext": "sHR2rlsfjI4L3t4RXQMkn9NPgTvCXvJVoUvXJHT6PqBNTg88Q5I4mc95m2RizprWhdAIQNMU/HShly4WRNzUsfhvqzHXHhHD57G7QagNV0Cx+WDSBgm0uZMAbZVHmzjM"},
{"key":"csp_Lkdyhk","name":"💦 四季┃好看","type":3,"api":"csp_Lkdy","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "csp_SuBaiBai","name": "✌ 四季┃素秒","type": 3,"api": "csp_SuBaiBai","ext": "http://subaibai.com","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/PandaQ250212.jar"},
{"key": "csp_FourK","name": "🐿️ 四季┃凡客","type": 3,"api": "csp_FourK","ext": "https://www.4kvm.tv"},
{"key": "zjys","name": "🏡 四季┃追剧","type": 3,"api": "csp_TTian","searchable": 1,"quickSearch": 1,"changeable": 1,"playerType": 1,"ext": "daHR0cDovL3YubGt1eXMuY24=","jar": "http://m1839732.ca.caoni.ru/8/meow.php;md5;CC57F10CB80E1BC9DF179A6129BD07B3"},
{"key": "潮流","name": "🌟 四季┃热播","type": 3,"api": "csp_AppRJ","ext": "sHR2rlsfjI4L3t4RXQMkn9mmg6Ofmy66+wcs9waIyn4hKqT9jG9s4kO6qzcu2OSqWS1/T+wfkqe+UwoipekwvcM11PTDrQqKYI8lmMXUc1vBHxp/2uWIw5HUoscBNWEb"},
{"key": "csp_Wwys","name": "🌾️ 四季┃农民","type": 3,"api": "csp_Wwys","ext": "https://www.wwgz.cn"},
{"key": "菲儿","name": "🍁 四季┃菲菲","type": 3,"api": "csp_AppFerr","ext": "sHR2rlsfjI4L3t4RXQMkn/M3t4AXAKTrZj3tfhm1t/gMT3dOrHqIzUNqLUEOIDMvllTbX6e1hMhB2mfpOaCmHNOL1yBB3SmxNyqXlai90EIpdnwOOgCR9Z+YwCTj6ySjzJ2VBiH3eXeOGcavcNeVRA=="},
{"key": "csp_Quanwk","name": "🌟 四季┃全看","type": 3,"api": "csp_Quanwk","ext": "https://www.91qkw.com"},
{"key": "FreeOk","name": "👌 四季┃欧克","type": 3,"api": "csp_FreeOk","searchable": 1,"filterable": 1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/okspider.jar"},
{"key": "FourKTV","name": "👒 四季┃速播","type":3,"api":"csp_FourKTV","playerType": 2,"searchable":1,"quickSearch":1,"changeable":1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/okspider.jar"},
{"key": "时常","name": "🐥 四季┃时尚","type": 3,"api": "csp_ShiChangGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "浪酷版","name": "👑 四季┃浪酷","type": 3,"api": "csp_TianTianGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"site": 2},"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "zxzj","name": "⛅️ 四季┃在线","type": 3,"api": "csp_Zxzj","searchable": 1,"quickSearch": 1,"changeable": 1,"ext": "https://www.zxzjhd.com/","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/202501.jar"},
{"key":"csp_Ddys","name":"⏮️ 四季┃外剧","type":3,"api":"csp_Ddys","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "天天美剧网","name": "🗽 四季┃美.剧","type": 3,"api": "csp_AppYsV2","ext": "https://www.ttmja.com/api.php/app/"},
{"key": "韩圈","name": "🦄 四季┃韩.剧","type": 3,"api": "csp_HanXiaoQuanGuard","playerType": 2,"searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "星芽短剧","name": "💖 星芽┃短剧","type":3,"api":"csp_AppXYGuard","searchable":1,"quickSearch":1,"filterable":1,"jar":"https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key": "甜圈短剧","name": "🌸 甜圈┃短剧","type": 3,"api": "csp_TianQuanGuard","searchable": 1,"quickSearch": 1,"filterable": 1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/ok0425.jar"},
{"key":"csp_Kuaikan","name":"👀 四季┃快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1,"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/0318.jar"},
{"key": "XYQH_电影港","name": "🌠 电.影.港","type": 3,"api": "csp_XYQHiker","playerType": 2,"ext": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/%E7%94%B5%E5%BD%B1%E6%B8%AF.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/spider0517.jar"},
{"key":"T4-caiji","name":"🐭 聚合┃有广","type":4,"api":"https://catbox.n13.club/t9/caiji.php"},
{
"key": "金牌影视",
"name": "🎬 影视|备用",
"type": 3,
"api": "http://150.158.112.123/jar/py/jp.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
"key": "drpy_js_金牌",
"name": "🎬 影视|备II",
"type": 3,
"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js",
"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/金牌影视.js"
},
{"key":"cctv","name":"🇨🇳 央视┃频道","type":3,"api":"csp_CCTV","searchable":0,"filterable":0,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/央视大全.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
{"key": "cntv","name": "🇨🇳 央视┃片库","type": 3,"api": "./lib/cntv_open.js"},
//{"key":"T4-cntv","name":"☕️ 其他┃央视频道","type":4,"api":"https://catbox.n13.club/t9/cntv.php"},
{"key":"T4-cctv","name":"🇨🇳 央视┃精选","type":4,"api":"https://catbox.n13.club/t9/cctv.php"},
//{"key":"py_cctv_少儿","name":"🇨🇳央视动画","type":3,"api":"py_cctv_full","searchable":0,"quickSearch":0,"filterable":1,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/py_央视少儿.py","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
//{"key":"py_cctvdc","name":"🇨🇳央视片库","type":3,"api":"py_cctv","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/py_cctv.json","jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/HeChengChaXiu7.jar"},
//{"key":"央视经典","name": "🇨🇳央视经典","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 1,"filterable": 1,"ext": "https://gitee.com/arthroscopic-eye/jgy/raw/master/lib/哔哩经典.json"},
{"key": "Aid","name": "🚑急救┃教学","type": 3,"api": "csp_FirstAid","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8}},
{"key": "十六万MV听歌📣","name": "🎤 四季┃16万首MV","type": 3,"api": "./lib/16万hys.js","ext": "./lib/16万mv.js"},
{"key": "hipy_js_KTV歌厅[听]","name": "🎤 四季┃KTV","type": 3,"api": "https://ghproxy.cn/https://raw.githubusercontent.com/maoystv/api/refs/heads/main/JS/drpy2.min.js","searchable": 1,"quickSearch": 1,"filterable": 1,"order_num": 0,"ext": "./lib/KTV歌厅.js"},
{"key":"MV大全","name":"🎵 四季┃MV音乐","type":4,"api":"http://120.53.102.254/dsp/","searchable":1,"quickSearch":1,"filterable": 1},
{"key":"T4-djuu","name":"🎧 音乐┃DJ音乐","type":4,"api":"https://catbox.n13.club/t9/djuu.php"},
{"key":"酷奇MV","name":"🎸 酷奇┃MV","type":3,"api":"csp_XBPQ","searchable":0,"quickSearch":0,"filterable":1,"ext":{"主页url":"https://www.kuqimv.com","直接播放":"1","短视频":"1","分类":"华语高清$1#日韩精选$2#欧美MV$3#高清现场$4#影视MV$5#夜店视频$6#车模视频$7#热舞视频$8#美女写真$9#美女打碟$10","分类url":"https://www.kuqimv.com/play/{cateId}_{catePg}.html;;z","数组":"<li>&&</li>","标题":"title=\"&&\"","副标题":"target=\"play\">&&<","搜索模式":"1","搜索url":"https://www.kuqimv.com/search.php?key={wd}"}},
{"key":"csp_BookTing","name":"🎧 听书┃音频","type":3,"playerType":2,"api":"csp_BookTing","searchable":0,"ext":"https://m.ting275.com","style":{"type":"rect","ratio":1.333},"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/250501.jar"},
//{"key":"230ts","name":"🎧 爱上 | 听书","type":3,"api":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/230ts_book_open.js","ext":"https://wap.230ts.net"},
{"key": "ysxs","name": "📣 有声┃小说","type": 3,
"api": "https://gitee.com/arthroscopic-eye/jgy/raw/master/js/drpy2.min.js",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": "http://www.meowtv.cn/js/meow.php?file=ysxs"
},
{
"key": "哔哩直播",
"name": "🎥 哔哩┃直播",
"type": 3,
"api": "http://150.158.112.123/js/dr/drpy2.min.js",
"ext": "https://image-c.weimobwmc.com/ol-OlSf/82d4b21cc0d8492898457b256010bd98.jpg"
},
{
"key": "健身",
"name": "💪 休闲┃健身",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/31c6620e61954b1395d81ca96fcaaf95.jpg"
},
{
"key": "国学",
"name": "📖 国学┃经典",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/1203091da6cb4dc58fb39e7af03ffbf3.jpg"
},
{
"key": "百科",
"name": "📚 百科┃全书",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/830e33a6b9f140eab57b298f85b85cb1.jpg"
},
{
"key": "地理",
"name": "🌍 全球┃地理",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/e5509817319e446ba2b13f3c3d6b0d2e.jpg"
},
{
"key": "科学",
"name": "🔬 科学┃发明",
"type": 3,
"api": "csp_Bili",
"jar": "./duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/15c23182b6fb415ea8314a6dc663b2d0.jpg"
},
{
"key": "戏曲",
"name": "🎭 戏曲┃大全",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/9a72ac3a9fa24d3f84cebcf008e4ed0d.jpg"
},
{
"key": "梨园",
"name": "🌸 梨园┃戏曲",
"type": 3,
"api": "http://150.158.112.123/js/dr/drpy2.min.js",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/983ec95b8248461cad620063864b21cd.jpg"
},
{
"key": "外语",
"name": "🌐 外语┃教学",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/11ac56458b5049bbaddf42c9cea883da.jpg"
},
{
"key": "幼儿",
"name": "👶 幼儿┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/f6ca5e8d2f054df69a52d01b58bb9c5e.jpg"
},
{
"key": "小学",
"name": "🎒 小学┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/3bbf4afa303f403eb89b6489b1958f93.jpg"
},
{
"key": "初中",
"name": "🎓 初中┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/75760f1471bc4180a49ce13b7105d834.jpg"
},
{
"key": "高中",
"name": "📚 高中┃教育",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 0,
"quickSearch": 1,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/53c803b0532c462fb2d2c3c641ba357b.jpg"
},
{"key": "csp_Bili_dashan","name": "💋 搭讪┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/搭讪.js"},
{"key": "csp_Bili__dapei","name": "💃 搭配┃教程","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/搭配.js"},
{"key":"T4-mybili","name":"🅱️ 我的┃哔哩","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=我的哔哩"},
{
"key": "哔哩哔哩",
"name": "🅱️ 哔哩┃分类",
"type": 3,
"api": "csp_Bili",
"jar": "https://gitee.com/arthroscopic-eye/jgy/raw/master/duo.jar;md5;5C5116C70E15343433C8480C3B448408",
"searchable": 1,
"quickSearch": 1,
"changeable": 2,
"filterable": 1,
"ext": "https://image-c.weimobwmc.com/ol-OlSf/58cbbf5395d4468cb4180b57c2834102.jpg"
},
{"key":"T4-儿童口才","name":"🅱️ 儿童┃口才","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童口才"},
{"key":"T4-儿童拼音","name":"🅱️ 儿童┃拼音","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童拼音"},
{"key":"T4-儿童识字","name":"🅱️ 儿童┃识字","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童识字"},
{"key":"T4-儿童思维","name":"🅱️ 儿童┃思维","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童思维"},
{"key":"T4-儿童英语","name":"🅱️ 儿童┃英语","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童英语"},
{"key":"T4-儿童硬笔","name":"🅱️ 儿童┃硬笔","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童硬笔"},
{"key":"T4-儿童编程","name":"🅱️ 儿童┃编程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童编程"},
{"key":"T4-儿童武术","name":"🅱️ 儿童┃武术","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=儿童武术"},
{"key":"T4-哔哩套餐1","name":"🅱️ 哔哩┃套餐1","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐1"},
{"key":"T4-哔哩套餐2","name":"🅱️ 哔哩┃套餐2","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=哔哩套餐2"},
{"key":"T4-软件教程","name":"🅱️┃软件┃教程","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=软件教程"},
{"key":"T4-合集","name":"🅱️ 哔哩┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=合集"},
{"key":"T4-美食","name":"🅱️ 天下┃美食","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=美食"},
{"key":"T4-中医","name":"🅱️ 中医┃理疗","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=中医"},
{"key":"T4-球类合集","name":"🅱️ 球类┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球类合集"},
{"key":"T4-球星合集","name":"🅱️ 球星┃合集","type":4,"api":"https://catbox.n13.club/t9/bili.php?id=球星合集"},
{"key": "xuexi","name": "🅱️ 线路┃学习","type": 4,"api": "https://catbox.n13.club/t9/xuexi.php"},
{"key": "csp_Bili","name": "🅱️ 哔哩┃合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 1,"jar": "./XBPQ.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/B合集bili.js"},
{"key": "js_B站精简","name": "🅱️ 哔哩┃精简","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/B站精简.js"},
{"key":"央视经典","name":"🅱️ 央视|片库","type":3,"api":"csp_Bili","searchable":0,"quickSearch":1,"filterable":1,"jar": "./HCCX.jar","ext":"https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/央视经典.js"},
{"key": "有声小说js","name": "🅱️ 有声┃小说","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/有声小说吧.js","style": { "type": "rect", "ratio": 1},"searchable": 0,"quickSearch": 0,"changeable": 0 },
{"key": "csp_Bili_zyy","name": "🅱️ 中医┃药区","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "./cat/中医.js"},
{"key": "csp_Bili_xuqu1","name": "🅱️ 戏曲┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/戏曲.js"},
{"key": "csp_Bili_TYjs","name": "🅱️ 体育┃健身","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/体育.js"},
{"key": "csp_Bili_xiangsh","name": "🅱️ 相声┃小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/相声.js"},
{"key": "csp_Bili_FBqx","name": "🅱️ 球队┃球星","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/球队.js"},
{"key": "csp_Bili_Meinvw","name": "🅱️ 美女┃舞蹈","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/美女.js"},
{"key": "csp_Bili_yanchh","name": "🅱️ 歌手┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/歌手.js"},
{"key": "csp_Bili_Nvtuan","name": "🅱️ 女团┃热舞","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/女团.js"},
{"key": "csp_Bili_MTV","name": "🅱️ 歌曲┃演唱","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/歌曲.js"},
{"key": "csp_Bili_Yinl2","name": "🅱️ 音悦┃合集","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/音悦.js"},
{"key": "dr_童趣","name": "🅱️ 童趣┃播视","type": 3,"api": "https://github.moeyy.xyz/https://raw.githubusercontent.com/liu673cn/box/main/libs/js/drpy2.min.js","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/童趣.js"},
{"key": "csp_Bili_youer","name": "🅱️ 幼儿┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/幼儿.js"},
{"key": "csp_Bili_xiaoxue","name": "🅱️ 小学┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/小学.js"},
{"key": "csp_Bili_czxx","name": "🅱️ 初中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/初中.js"},
{"key": "csp_Bili_gaozxx","name": "🅱️ 高中┃教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"jar": "./HCCX.jar","ext": "https://git.acwing.com/lianes777/la/-/raw/main/lib/cat/高中.js"},
{"key":"Local","name":"🏠️ 本地┃读写","type":3,"api":"csp_Local","jar": "./202501.jar"}
],
"parses": [
{"name": " 🕵AI智能","type": 2,"url": "Parallel"},
{"name": " 🕵智能AI","type": 3,"url": "Demo"},
{"name":"🕵智能嗅探","type":3,"url":"Web"},
{"name": "🏅秒播","type": 1,"url": "https://api.huomiao.cc/api/?key=gPjVjH8BOGXaubw3WR&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","优播线路","腾播线路","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "🏅全能","type": 1,"url": "https://json.key521.cn/api/?key=df27d9ca9ec97e22c47f8565a50aa6f5&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","优播线路","腾播线路","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "🏅全能+","type": 1,"url": "https://www.m3u8.tv.cache.janan.net:4433/json2020.php?uid=M3U8.TV&token=88888888&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": "AI+ 🕵腾讯",type": 1,"url": "http://117.50.183.202:8036/?ip=111.55.12.236&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","tnmb","seven","bilibili","1905"],"header": {"User-Agent": "okhttp/4.9.1"}}},
{"name": " 🕵AI+自动","type": 0,"url": "https://jx.m3u8.tv/jiexi/?url=","ext": {"flag": ["qq", "腾讯", "qiyi", "爱奇艺", "奇艺", "youku", "优酷", "mgtv", "芒果", "letv", "乐视", "pptv", "PPTV", "sohu", "bilibili", "哔哩哔哩", "哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
{"name": " 🕵免费.稍等","type": 3,"url": "Web"}
],
"flags": ["youku","qq","QQ","iqiyi","SPA","qiyi","letv","sohu","YuMi-vip","pptv","PPTV","mgtv","ltnb","rx","SLYS4k","tucheng","BYGA","luanzi","dxzy","QEYSS","aliyun","AliS","122","chuangying","CL4K","xfyun","wuduzy","wasu","bilibili","renrenmi","ppayun","haiwaikan","cool","dbm3u8","xmm","xigua","m1905","funshion","imgo","ruyi1080","ruyib1080"],
"ads": ["mozai.4gtv.tv","pv.vipwm.cc"],
"logo": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1716545739254/fc1b89e152cd4aa28d295107cb6c56c9.gif",
// "logo": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1716818643045/wexfnw.gif",
"lives": [
{
"name": "LIVE",
"type": 0,
"url": "https://d.kstore.dev/download/6670/laji",
"playerType": 1
},
{
"name": "港台",
"type": 0,
"url": "http://rihou.cc:567/gggg.nzk",
"playerType": 1
},
{
"name": "精简",
"type": 0,
"url": "https://gitee.com/arthroscopic-eye/jgy/raw/master/hn",
"playerType": 1
},
{
"name": "直播测-A",
"type": 0,
"url": "https://live.iptv365.org/live.txt",
"playerType": 1
},
{
"name": "直播测-B",
"type": 0,
"url": "https://live.zbds.top/tv/iptv4.txt",
"playerType": 1
},
{
"name": "中亚Ru",
"type": 0,
"url": "https://d.kstore.dev/download/6670/Ru",
"playerType": 1
},
{
"name": "备用.Not",
"type": 0,
"url": "https://notabug.org/jick/ji/raw/master/laji",
"playerType": 1
},
{
"name": "live备用",
"type": 0,
"url": "https://d.kstore.dev/download/11711/laji",
"playerType": 1
}
]
}