mirror of https://notabug.org/jick/ji
Compare commits
39 Commits
e55293db47
...
5848102e3e
Author | SHA1 | Date |
---|---|---|
![]() |
5848102e3e | |
![]() |
2929a73c57 | |
![]() |
a766b0b15b | |
![]() |
15c77e5ff0 | |
![]() |
366cc6a996 | |
![]() |
3cf5f76446 | |
![]() |
3798e4fd6d | |
![]() |
0f2fec6490 | |
![]() |
a0a595cbf5 | |
![]() |
978319694b | |
![]() |
0dc48394a6 | |
![]() |
d8be7bafc5 | |
![]() |
4beefe3fa0 | |
![]() |
54c173306a | |
![]() |
e468165c1b | |
![]() |
3544ef3d83 | |
![]() |
0a86d7051e | |
![]() |
bfddf5e2c7 | |
![]() |
842114cee1 | |
![]() |
e64927142e | |
![]() |
dafa659bcd | |
![]() |
8579b2839c | |
![]() |
8e77da5c66 | |
![]() |
b2256f0629 | |
![]() |
e8b5ad3ee0 | |
![]() |
bd1c0866d5 | |
![]() |
05af5667a4 | |
![]() |
9a9b980b27 | |
![]() |
438ba332d2 | |
![]() |
daf5cff1d0 | |
![]() |
cd9c541453 | |
![]() |
d8d2e1bdf9 | |
![]() |
0879d7e981 | |
![]() |
e0fbc6174d | |
![]() |
d357da9ca4 | |
![]() |
dbee32afaf | |
![]() |
e3286f5910 | |
![]() |
2cf2c1ca85 | |
![]() |
7c36bf2733 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
886
jity
886
jity
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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',
|
||||
二级:'*',
|
||||
搜索:'',
|
||||
}
|
|
@ -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)});"
|
||||
},
|
||||
搜索:'',
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
@ -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;*;*;*;*',}
|
File diff suppressed because it is too large
Load Diff
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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(" "," ")
|
||||
#取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
|
File diff suppressed because one or more lines are too long
|
@ -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"}
|
||||
|
||||
]}},
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -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('&')
|
||||
.split('<').join('<')
|
||||
.split('>').join('>')
|
||||
.split('"').join('"');
|
||||
},
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
|
@ -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]
|
|
@ -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)});",
|
||||
},
|
||||
搜索:'',
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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×tamp=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);
|
||||
}),
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -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,
|
||||
};
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -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, ""]
|
|
@ -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);
|
||||
}),
|
||||
}
|
|
@ -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);
|
||||
}),
|
||||
}
|
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -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"
|
||||
}
|
|
@ -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\"}"
|
||||
}
|
|
@ -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"
|
||||
}
|
|
@ -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',
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -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农业农村"
|
||||
}]
|
|
@ -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": "小灯塔给男孩的性教育课"}
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
|
||||
}
|
|
@ -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"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
}}
|
|
@ -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"}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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"}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -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',
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
|
@ -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};
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
}
|
|
@ -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;*',
|
||||
}
|
|
@ -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"
|
||||
|
||||
}
|
|
@ -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"
|
||||
}
|
|
@ -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',
|
||||
}
|
|
@ -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"
|
||||
}
|
|
@ -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, ""]
|
File diff suppressed because one or more lines are too long
|
@ -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}"
|
||||
}
|
|
@ -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)
|
||||
`,
|
||||
}
|
|
@ -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"
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -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,
|
||||
};
|
||||
}
|
|
@ -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,
|
||||
};
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 540 KiB |
Binary file not shown.
After Width: | Height: | Size: 263 KiB |
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
|
@ -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,
|
||||
}
|
||||
}
|
77
lib/drpy2.js
77
lib/drpy2.js
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -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
233
lib/tx.js
|
@ -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);
|
||||
}),
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 141 KiB |
|
@ -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"
|
||||
}
|
Binary file not shown.
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue