mirror of
https://github.com/qist/tvbox.git
synced 2025-01-24 02:57:28 +08:00
Add files via upload
This commit is contained in:
parent
402c1dbb8b
commit
fd599aefbb
22
0827.json
22
0827.json
@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "./jar/custom_spider.jar;md5;1da9b9d6b4241ada175c741d4b4b9cf9",
|
||||
"spider": "./jar/custom_spider.jar;md5;dadcea0e365a64c6cd3c48b7dd948772",
|
||||
"wallpaper": "http://饭太硬.ga/深色壁纸/api.php",
|
||||
"sites": [
|
||||
{
|
||||
@ -78,15 +78,6 @@
|
||||
"filterable": 1,
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "紙條",
|
||||
"name": "紙條",
|
||||
"type": 3,
|
||||
"api": "csp_Paper",
|
||||
"searchable": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "七夜",
|
||||
"name": "七夜",
|
||||
@ -114,6 +105,15 @@
|
||||
"filterable": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "盤搜索",
|
||||
"name": "盤搜索",
|
||||
"type": 3,
|
||||
"api": "csp_PanSearch",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "UP雲搜",
|
||||
"name": "UP雲搜",
|
||||
@ -143,4 +143,4 @@
|
||||
"changeable": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
7
js.json
7
js.json
@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "./jar/custom_spider.jar;md5;1da9b9d6b4241ada175c741d4b4b9cf9",
|
||||
"spider": "./jar/custom_spider.jar;md5;dadcea0e365a64c6cd3c48b7dd948772",
|
||||
"sites":[
|
||||
{"key":"drpy_js_豆瓣","name":"搜索 | 豆瓣[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js"},
|
||||
{"key":"bili","name":"B站 | Bili[jar]","type":3,"api":"csp_Bili","changeable":0,"ext":"./js/音乐演唱.json"},
|
||||
@ -17,6 +17,11 @@
|
||||
{"key":"drpy_js_腾云驾雾","name":"官源 | 腾讯[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/腾云驾雾.js"},
|
||||
{"key":"drpy_js_百忙无果","name":"官源 | 芒果[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/百忙无果.js"},
|
||||
{"key":"drpy_js_菜狗","name":"官源 | 搜狗[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/菜狗.js"},
|
||||
{"key":"drpy_js_骚火电影","name":"影视 | 骚火电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/骚火电影.js"},
|
||||
{"key":"drpy_js_TVB云播","name":"影视 | TVB云播[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/TVB云播.js"},
|
||||
{"key":"drpy_js_剧白白","name":"影视 | 剧白白[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/剧白白.js"},
|
||||
{"key":"drpy_js_8K影视","name":"影视 | 8K影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/8K影视.js"},
|
||||
{"key":"drpy_js_豆巴影视","name":"影视 | 豆巴影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/豆巴影视.js"},
|
||||
{"key":"drpy_js_人人","name":"影视 | 人人[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/人人.js"},
|
||||
{"key":"drpy_js_低端","name":"影视 | 低端[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/ddys.js"},
|
||||
{"key":"drpy_js_农民","name":"影视 | 农民[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/农民影视.js"},
|
||||
|
13
js/8K影视.js
Normal file
13
js/8K影视.js
Normal file
@ -0,0 +1,13 @@
|
||||
// 一级筛选 数字验证
|
||||
muban.首图.二级.title = 'h1&&Text;.data--span:eq(0)&&Text';
|
||||
muban.首图.二级.desc = '.score&&Text;;;.data:eq(1)--span&&Text;.data:eq(2)--span&&Text';
|
||||
muban.首图.二级.content = '.data:eq(3)--span&&Text';
|
||||
var rule={
|
||||
title:'8K影视',
|
||||
模板:'首图',
|
||||
host:'http://www.8kvod.com',
|
||||
url:'/t/fyclass-fypage/',
|
||||
class_parse: '.myui-header__menu&&li.col-md-2;a&&Text;a&&href;/(\\d+)',
|
||||
searchUrl:'/vse**/page/fypage/',
|
||||
推荐: 'ul.myui-vodlist.clearfix;li.col-lg-8;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
}
|
435
js/TVB云播.js
Normal file
435
js/TVB云播.js
Normal file
@ -0,0 +1,435 @@
|
||||
var rule={
|
||||
title:'TVA云播',
|
||||
//模板:'mxpro',
|
||||
host:'http://www.tvyb03.com',
|
||||
url:'vod/show/id/fyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}',
|
||||
class_name:'电影&电视剧&综艺&动漫&日韩剧&国产剧&欧美剧&港台剧',
|
||||
class_url:'1&2&3&4&16&13&15&14',
|
||||
filter: {
|
||||
"1":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":"1"},
|
||||
{"n":"动作片","v":"6"},
|
||||
{"n":"喜剧片","v":"7"},
|
||||
{"n":"爱情片","v":"8"},
|
||||
{"n":"科幻片","v":"9"},
|
||||
{"n":"恐怖片","v":"10"},
|
||||
{"n":"剧情片","v":"11"},
|
||||
{"n":"战争片","v":"12"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"class",
|
||||
"name":"剧情",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"喜剧","v":"/class/喜剧"},
|
||||
{"n":"爱情","v":"/class/爱情"},
|
||||
{"n":"恐怖","v":"/class/恐怖"},
|
||||
{"n":"动作","v":"/class/动作"},
|
||||
{"n":"科幻","v":"/class/科幻"},
|
||||
{"n":"剧情","v":"/class/剧情"},
|
||||
{"n":"战争","v":"/class/战争"},
|
||||
{"n":"警匪","v":"/class/警匪"},
|
||||
{"n":"犯罪","v":"/class/犯罪"},
|
||||
{"n":"动画","v":"/class/动画"},
|
||||
{"n":"奇幻","v":"/class/奇幻"},
|
||||
{"n":"武侠","v":"/class/武侠"},
|
||||
{"n":"冒险","v":"/class/冒险"},
|
||||
{"n":"枪战","v":"/class/枪战"},
|
||||
{"n":"悬疑","v":"/class/悬疑"},
|
||||
{"n":"惊悚","v":"/class/惊悚"},
|
||||
{"n":"经典","v":"/class/经典"},
|
||||
{"n":"青春","v":"/class/青春"},
|
||||
{"n":"文艺","v":"/class/文艺"},
|
||||
{"n":"微电影","v":"/class/微电影"},
|
||||
{"n":"古装","v":"/class/古装"},
|
||||
{"n":"历史","v":"/class/历史"},
|
||||
{"n":"运动","v":"/class/运动"},
|
||||
{"n":"农村","v":"/class/农村"},
|
||||
{"n":"儿童","v":"/class/儿童"},
|
||||
{"n":"网络电影","v":"/class/网络电影"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"area",
|
||||
"name":"地区",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"美国","v":"/area/美国"},
|
||||
{"n":"法国","v":"/area/法国"},
|
||||
{"n":"英国","v":"/area/英国"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"韩国","v":"/area/韩国"},
|
||||
{"n":"德国","v":"/area/德国"},
|
||||
{"n":"泰国","v":"/area/泰国"},
|
||||
{"n":"印度","v":"/area/印度"},
|
||||
{"n":"意大利","v":"/area/意大利"},
|
||||
{"n":"西班牙","v":"/area/西班牙"},
|
||||
{"n":"加拿大","v":"/area/加拿大"},
|
||||
{"n":"其他","v":"/area/其他"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"lang",
|
||||
"name":"语言",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国语","v":"/lang/国语"},
|
||||
{"n":"英语","v":"/lang/英语"},
|
||||
{"n":"粤语","v":"/lang/粤语"},
|
||||
{"n":"韩语","v":"/lang/韩语"},
|
||||
{"n":"日语","v":"/lang/日语"},
|
||||
{"n":"法语","v":"/lang/法语"},
|
||||
{"n":"德语","v":"/lang/德语"},
|
||||
{"n":"其它","v":"/lang/其它"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"year",
|
||||
"name":"年份",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2015","v":"/year/2015"},
|
||||
{"n":"2014","v":"/year/2014"},
|
||||
{"n":"2013","v":"/year/2013"},
|
||||
{"n":"2012","v":"/year/2012"},
|
||||
{"n":"2011","v":"/year/2011"},
|
||||
{"n":"2010","v":"/year/2010"},
|
||||
{"n":"2009","v":"/year/2009"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2007","v":"/year/2007"},
|
||||
{"n":"2006","v":"/year/2006"},
|
||||
{"n":"2005","v":"/year/2005"},
|
||||
{"n":"2004","v":"/year/2004"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":"2"},
|
||||
{"n":"国产剧","v":"13"},
|
||||
{"n":"港台剧","v":"14"},
|
||||
{"n":"日韩剧","v":"15"},
|
||||
{"n":"欧美剧","v":"16"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"class",
|
||||
"name":"剧情",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"古装","v":"/class/古装"},
|
||||
{"n":"青春","v":"/class/青春"},
|
||||
{"n":"偶像","v":"/class/偶像"},
|
||||
{"n":"喜剧","v":"/class/喜剧"},
|
||||
{"n":"家庭","v":"/class/家庭"},
|
||||
{"n":"犯罪","v":"/class/犯罪"},
|
||||
{"n":"动作","v":"/class/动作"},
|
||||
{"n":"奇幻","v":"/class/奇幻"},
|
||||
{"n":"剧情","v":"/class/剧情"},
|
||||
{"n":"历史","v":"/class/历史"},
|
||||
{"n":"经典","v":"/class/经典"},
|
||||
{"n":"乡村","v":"/class/乡村"},
|
||||
{"n":"情景","v":"/class/情景"},
|
||||
{"n":"商战","v":"/class/商战"},
|
||||
{"n":"网剧","v":"/class/网剧"},
|
||||
{"n":"其他","v":"/class/其他"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"area",
|
||||
"name":"地区",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"内地","v":"/area/内地"},
|
||||
{"n":"韩国","v":"/area/韩国"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"美国","v":"/area/美国"},
|
||||
{"n":"泰国","v":"/area/泰国"},
|
||||
{"n":"英国","v":"/area/英国"},
|
||||
{"n":"新加坡","v":"/area/新加坡"},
|
||||
{"n":"其他","v":"/area/其他"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"year",
|
||||
"name":"年份",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2015","v":"/year/2015"},
|
||||
{"n":"2014","v":"/year/2014"},
|
||||
{"n":"2013","v":"/year/2013"},
|
||||
{"n":"2012","v":"/year/2012"},
|
||||
{"n":"2011","v":"/year/2011"},
|
||||
{"n":"2010","v":"/year/2010"},
|
||||
{"n":"2009","v":"/year/2009"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2007","v":"/year/2007"},
|
||||
{"n":"2006","v":"/year/2006"},
|
||||
{"n":"2005","v":"/year/2005"},
|
||||
{"n":"2004","v":"/year/2004"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"lang",
|
||||
"name":"语言",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国语","v":"/lang/国语"},
|
||||
{"n":"英语","v":"/lang/英语"},
|
||||
{"n":"粤语","v":"/lang/粤语"},
|
||||
{"n":"韩语","v":"/lang/韩语"},
|
||||
{"n":"日语","v":"/lang/日语"},
|
||||
{"n":"其它","v":"/lang/其它"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3":[
|
||||
{
|
||||
"key":"class",
|
||||
"name":"剧情",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"选秀","v":"/class/选秀"},
|
||||
{"n":"情感","v":"/class/情感"},
|
||||
{"n":"访谈","v":"/class/访谈"},
|
||||
{"n":"播报","v":"/class/播报"},
|
||||
{"n":"旅游","v":"/class/旅游"},
|
||||
{"n":"音乐","v":"/class/音乐"},
|
||||
{"n":"美食","v":"/class/美食"},
|
||||
{"n":"纪实","v":"/class/纪实"},
|
||||
{"n":"曲艺","v":"/class/曲艺"},
|
||||
{"n":"生活","v":"/class/生活"},
|
||||
{"n":"游戏互动","v":"/class/游戏互动"},
|
||||
{"n":"财经","v":"/class/财经"},
|
||||
{"n":"求职","v":"/class/求职"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"area",
|
||||
"name":"地区",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"内地","v":"/area/内地"},
|
||||
{"n":"港台","v":"/area/港台"},
|
||||
{"n":"日韩","v":"/area/日韩"},
|
||||
{"n":"欧美","v":"/area/欧美"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"lang",
|
||||
"name":"语言",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国语","v":"/lang/国语"},
|
||||
{"n":"英语","v":"/lang/英语"},
|
||||
{"n":"粤语","v":"/lang/粤语"},
|
||||
{"n":"韩语","v":"/lang/韩语"},
|
||||
{"n":"日语","v":"/lang/日语"},
|
||||
{"n":"其它","v":"/lang/其它"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"year",
|
||||
"name":"年份",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2015","v":"/year/2015"},
|
||||
{"n":"2014","v":"/year/2014"},
|
||||
{"n":"2013","v":"/year/2013"},
|
||||
{"n":"2012","v":"/year/2012"},
|
||||
{"n":"2011","v":"/year/2011"},
|
||||
{"n":"2010","v":"/year/2010"},
|
||||
{"n":"2009","v":"/year/2009"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2007","v":"/year/2007"},
|
||||
{"n":"2006","v":"/year/2006"},
|
||||
{"n":"2005","v":"/year/2005"},
|
||||
{"n":"2004","v":"/year/2004"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4":[
|
||||
{
|
||||
"key":"class",
|
||||
"name":"剧情",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"情感","v":"/class/情感"},
|
||||
{"n":"科幻","v":"/class/科幻"},
|
||||
{"n":"热血","v":"/class/热血"},
|
||||
{"n":"推理","v":"/class/推理"},
|
||||
{"n":"搞笑","v":"/class/搞笑"},
|
||||
{"n":"冒险","v":"/class/冒险"},
|
||||
{"n":"萝莉","v":"/class/萝莉"},
|
||||
{"n":"校园","v":"/class/校园"},
|
||||
{"n":"动作","v":"/class/动作"},
|
||||
{"n":"机战","v":"/class/机战"},
|
||||
{"n":"运动","v":"/class/运动"},
|
||||
{"n":"战争","v":"/class/战争"},
|
||||
{"n":"少年","v":"/class/少年"},
|
||||
{"n":"少女","v":"/class/少女"},
|
||||
{"n":"社会","v":"/class/社会"},
|
||||
{"n":"原创","v":"/class/原创"},
|
||||
{"n":"亲子","v":"/class/亲子"},
|
||||
{"n":"益智","v":"/class/益智"},
|
||||
{"n":"励志","v":"/class/励志"},
|
||||
{"n":"其它","v":"/class/其他"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"area",
|
||||
"name":"地区",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国产","v":"/area/国产"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"欧美","v":"/area/欧美"},
|
||||
{"n":"其他","v":"/area/其他"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"lang",
|
||||
"name":"语言",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国语","v":"/lang/国语"},
|
||||
{"n":"英语","v":"/lang/英语"},
|
||||
{"n":"粤语","v":"/lang/粤语"},
|
||||
{"n":"韩语","v":"/lang/韩语"},
|
||||
{"n":"日语","v":"/lang/日语"},
|
||||
{"n":"其它","v":"/lang/其它"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"year",
|
||||
"name":"年份",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2015","v":"/year/2015"},
|
||||
{"n":"2014","v":"/year/2014"},
|
||||
{"n":"2013","v":"/year/2013"},
|
||||
{"n":"2012","v":"/year/2012"},
|
||||
{"n":"2011","v":"/year/2011"},
|
||||
{"n":"2010","v":"/year/2010"},
|
||||
{"n":"2009","v":"/year/2009"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2007","v":"/year/2007"},
|
||||
{"n":"2006","v":"/year/2006"},
|
||||
{"n":"2005","v":"/year/2005"},
|
||||
{"n":"2004","v":"/year/2004"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
filter_def:{
|
||||
1:{cateId:'1'},
|
||||
2:{cateId:'2'},
|
||||
3:{cateId:'3'},
|
||||
4:{cateId:'4'},
|
||||
13:{cateId:'13'},
|
||||
14:{cateId:'14'},
|
||||
15:{cateId:'15'},
|
||||
16:{cateId:'16'}
|
||||
},
|
||||
searchUrl:'/vod/search.html?wd=**&submit=',
|
||||
searchable:2,//是否启用全局搜索,
|
||||
quickSearch:0,//是否启用快速搜索,
|
||||
filterable:0,//是否启用分类筛选,
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
// 推荐:'ul.myui-vodlist;ul li;*;*;*;*',
|
||||
推荐:'ul.myui-vodlist;li;*;*;*;*',
|
||||
// 推荐:'ul.myui-vodlist;ul&&li;*;*;*;*', // 此写法本地js无效
|
||||
double:true, // 推荐内容是否双层定位
|
||||
一级:'.myui-vodlist__box;a&&title;.lazyload&&data-original;.tag&&Text;a&&href',
|
||||
二级:{"title":"h1&&Text;.data:eq(0) a:eq(0)&&Text","img":".lazyload&&data-original","desc":";.data:eq(0) a:eq(2)&&Text;.data:eq(0) a:eq(1)&&Text;.data:eq(2)&&Text;.data:eq(3)&&Text","content":".text-collapse span&&Text","tabs":".myui-panel__head h3","lists":".myui-content__list:eq(#id) li"},
|
||||
搜索:'ul.myui-vodlist__media li;*;*;*;*',
|
||||
}
|
@ -1,12 +1,5 @@
|
||||
# c=[];for(let i in a){c.push(i+','+a[i])}d=c.join('\n');console.log(d);
|
||||
🔮嗨翻,https://pan.hikerfans.com
|
||||
🦀9T(Adult),https://drive.9t.ee
|
||||
🐱梓澪の妙妙屋,https://xn--i0v44m.xyz
|
||||
🚆资源小站,https://pan.142856.xyz
|
||||
🌤晴园的宝藏库,https://alist.52qy.repl.co
|
||||
🐭米奇妙妙屋,https://anime.mqmmw.ga
|
||||
💂小兵组网盘影视,https://6vv.app
|
||||
📀小光盘,https://alist.xiaoguanxiaocheng.life
|
||||
🙋丫仙女,http://alist.xiaoya.pro/
|
||||
🐋一只鱼,https://alist.youte.ml
|
||||
🌊七米蓝,https://al.chirmyram.com
|
||||
🌴非盘,http://www.feifwp.top
|
||||
@ -14,13 +7,4 @@
|
||||
🐉神族九帝,https://alist.shenzjd.com
|
||||
☃姬路白雪,https://pan.jlbx.xyz
|
||||
🎧听闻网盘,https://wangpan.sangxuesheng.com
|
||||
💾DISK,http://124.222.140.243:8080
|
||||
🌨云播放,https://quanzi.laoxianghuijia.cn
|
||||
✨星梦,https://pan.bashroot.top
|
||||
🌊小江,https://dyj.me
|
||||
💫触光,https://pan.ichuguang.com
|
||||
🕵好汉吧,https://8023.haohanba.cn
|
||||
🥗AUNEY,http://121.227.25.116:8008
|
||||
🎡资源小站,https://960303.xyz/
|
||||
🏝fenwe,http://www.fenwe.tk:5244
|
||||
🎢轻弹浅唱,https://g.xiang.lol
|
@ -1 +1 @@
|
||||
3.9.41beta13
|
||||
3.9.41beta14
|
105
js/乐猪TV.js
105
js/乐猪TV.js
@ -4,8 +4,109 @@ var rule = {
|
||||
// homeUrl:'/',
|
||||
url:'/list/fyclassfyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'_fypage_desc_{{fl.by}}_0_0___',
|
||||
filter: {"1":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"2":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"4":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"3":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"14":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"15":[{"key":"by","name":"排序","value":[{"n":"全部","v":"time"},{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]},
|
||||
filter_url:'{{fl.cateId}}_fypage_desc_{{fl.by}}_0_0___',
|
||||
"filter":{
|
||||
"1":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"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"},
|
||||
{"n":"动画片","v":"18"},
|
||||
{"n":"悬疑片","v":"19"},
|
||||
{"n":"犯罪片","v":"20"},
|
||||
{"n":"记录片","v":"21"},
|
||||
{"n":"音乐片","v":"22"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":"2"},
|
||||
{"n":"大陆","v":"12"},
|
||||
{"n":"港剧","v":"13"},
|
||||
{"n":"韩剧","v":"14"},
|
||||
{"n":"美剧","v":"15"},
|
||||
{"n":"日剧","v":"24"},
|
||||
{"n":"台剧","v":"25"},
|
||||
{"n":"泰剧","v":"26"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":"3"},
|
||||
{"n":"大陆综艺","v":"28"},
|
||||
{"n":"港台综艺","v":"29"},
|
||||
{"n":"日韩综艺","v":"30"},
|
||||
{"n":"欧美综艺","v":"31"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":"4"},
|
||||
{"n":"国产动漫","v":"32"},
|
||||
{"n":"日本动漫","v":"33"},
|
||||
{"n":"其他动漫","v":"35"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"by",
|
||||
"name":"排序",
|
||||
"value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
// searchUrl:'/search-pg-fypage-wd-**.html',
|
||||
searchUrl:'/index.php?m=vod-search#wd=**&search=;post',
|
||||
searchable:2,
|
||||
|
@ -2,7 +2,7 @@
|
||||
var rule = {
|
||||
title:'剧白白',
|
||||
模板:'首图2',
|
||||
host:'https://jubaibai.cc',
|
||||
host:'https://www.jubaibaib.com',
|
||||
// url:'/vodshow/id/fyclass/page/fypage.html',
|
||||
url:'/s/fyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
|
78
js/厂长资源.js
78
js/厂长资源.js
@ -1,16 +1,82 @@
|
||||
var rule={
|
||||
title:'厂长资源',
|
||||
// host:'https://czspp.com',
|
||||
host:'http://www.czzy03.com',
|
||||
url:'/fyclass/page/fypage',
|
||||
// searchUrl:'/xssearch?q=**&f=_all&p=fypage',
|
||||
// searchUrl:'/?#s=**;post',
|
||||
host:'http://czzy03.com',
|
||||
url:'/fyclassfyfilter',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.cateId}}{{fl.class}}{{fl.area}}/page/fypage',
|
||||
filter: {
|
||||
"movie_bt":[
|
||||
{
|
||||
"key":"area",
|
||||
"name":"分类",
|
||||
"value":[
|
||||
{"v":"","n":"全部"},
|
||||
{"v":"movie_bt_series/zhanchangtuijian","n":"站长推荐"},
|
||||
{"v":"movie_bt_series/dyy","n":"电影"},
|
||||
{"v":"movie_bt_series/dianshiju","n":"电视剧"},
|
||||
{"v":"movie_bt_series/dohua","n":"动画"},
|
||||
{"v":"movie_bt_series/guochanju","n":"国产剧"},
|
||||
{"v":"movie_bt_series/mj","n":"美剧"},
|
||||
{"v":"movie_bt_series/rj","n":"日剧"},
|
||||
{"v":"movie_bt_series/hj","n":"韩剧"},
|
||||
{"v":"movie_bt_series/hwj","n":"海外剧(其他)"},
|
||||
{"v":"movie_bt_series/huayudianying","n":"华语电影"},
|
||||
{"v":"movie_bt_series/meiguodianying","n":"欧美电影"},
|
||||
{"v":"movie_bt_series/ribendianying","n":"日本电影"},
|
||||
{"v":"movie_bt_series/hanguodianying","n":"韩国电影"},
|
||||
{"v":"movie_bt_series/yingguodianying","n":"英国电影"},
|
||||
{"v":"movie_bt_series/faguodianying","n":"法国电影"},
|
||||
{"v":"movie_bt_series/yindudianying","n":"印度电影"},
|
||||
{"v":"movie_bt_series/eluosidianying","n":"俄罗斯电影"},
|
||||
{"v":"movie_bt_series/jianadadianying","n":"加拿大电影"},
|
||||
{"v":"movie_bt_series/huiyuanzhuanqu","n":"会员专区"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"class",
|
||||
"name":"类型",
|
||||
"value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"传记","v":"movie_bt_tags/chuanji"},
|
||||
{"n":"儿童","v":"movie_bt_tags/etet"},
|
||||
{"n":"冒险","v":"movie_bt_tags/maoxian"},
|
||||
{"n":"剧情","v":"movie_bt_tags/juqing"},
|
||||
{"n":"动作","v":"movie_bt_tags/dozuo"},
|
||||
{"n":"动漫","v":"movie_bt_tags/doman"},
|
||||
{"n":"动画","v":"movie_bt_tags/dhh"},
|
||||
{"n":"历史","v":"movie_bt_tags/lishi"},
|
||||
{"n":"古装","v":"movie_bt_tags/guzhuang"},
|
||||
{"n":"同性","v":"movie_bt_tags/tongxing"},
|
||||
{"n":"喜剧","v":"movie_bt_tags/xiju"},
|
||||
{"n":"奇幻","v":"movie_bt_tags/qihuan"},
|
||||
{"n":"家庭","v":"movie_bt_tags/jiating"},
|
||||
{"n":"恐怖","v":"movie_bt_tags/kubu"},
|
||||
{"n":"悬疑","v":"movie_bt_tags/xuanyi"},
|
||||
{"n":"情色","v":"movie_bt_tags/qingse"},
|
||||
{"n":"惊悚","v":"movie_bt_tags/kingsong"},
|
||||
{"n":"战争","v":"movie_bt_tags/zhanzhen"},
|
||||
{"n":"歌舞","v":"movie_bt_tags/gw"},
|
||||
{"n":"武侠","v":"movie_bt_tags/wuxia"},
|
||||
{"n":"灾难","v":"movie_bt_tags/zainan"},
|
||||
{"n":"爱情","v":"movie_bt_tags/aiqing"},
|
||||
{"n":"犯罪","v":"movie_bt_tags/fanzui"},
|
||||
{"n":"短片","v":"movie_bt_tags/dp"},
|
||||
{"n":"科幻","v":"movie_bt_tags/kh"},
|
||||
{"n":"纪录片","v":"movie_bt_tags/jlpp"},
|
||||
{"n":"西部","v":"movie_bt_tags/xb"},
|
||||
{"n":"运动","v":"movie_bt_tags/yd"},
|
||||
{"n":"音乐","v":"movie_bt_tags/yy"}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
searchUrl:'/page/fypage?s=**',
|
||||
searchable:2,
|
||||
filterable:0,
|
||||
headers:{'User-Agent':'PC_UA', },
|
||||
class_name:'本月热门&高分影视&豆瓣电影Top250&最新电影&热映中&电视剧&国产剧&美剧&韩剧&日剧&海外剧&番剧&动漫&韩国电影&纪录片',
|
||||
class_url:'benyueremen&gaofenyingshi&dbtop250&zuixindianying&reyingzhong&dsj&gcj&meijutt&hanjutv&movie_bt_series/rj&movie_bt_series/hwj&fanju&dm&movie_bt_series/hanguodianying&movie_bt/movie_bt_tags/jlpp',
|
||||
class_name:'全部&豆瓣电影Top250&高分影视&最新电影&热映中&站长推荐&电影&电视剧&动画&国产剧&日剧&韩剧&美剧&海外剧&俄罗斯电影&加拿大电影&华语电影&印度电影&日本电影&欧美电影&法国电影&英国电影&韩国电影&纪录片',
|
||||
class_url:'movie_bt&dbtop250&gaofenyingshi&zuixindianying&reyingzhong&movie_bt_series/zhanchangtuijian&movie_bt_series/dyy&movie_bt_series/dianshiju&movie_bt_series/dohua&movie_bt_series/guochanju&movie_bt_series/rj&movie_bt_series/hj&movie_bt_series/mj&movie_bt_series/hwj&movie_bt_series/eluosidianying&movie_bt_series/jianadadianying&movie_bt_series/huayudianying&movie_bt_series/yindudianying&movie_bt_series/ribendianying&movie_bt_series/meiguodianying&movie_bt_series/faguodianying&movie_bt_series/yingguodianying&movie_bt_series/hanguodianying&movie_bt/movie_bt_tags/jlpp',
|
||||
// class_parse: '.navlist li:gt(0);a&&Text;a&&href;.*/(.*)',
|
||||
推荐:'.bt_img;ul&&li;*;*;*;*',
|
||||
double:true,
|
||||
|
232
js/城市影视.js
232
js/城市影视.js
@ -2,10 +2,240 @@ var rule = {
|
||||
title: '城市影视',
|
||||
host: 'https://www.citydy.com',
|
||||
// homeUrl:'/',
|
||||
url: '/show/id-fyclass/page/fypage.html',
|
||||
url: '/show/id-fyclassfyfilter.html',
|
||||
searchUrl: '/search/page/fypage/wd/**.html',
|
||||
class_name:'电影&电视剧&综艺&动漫&纪录片',
|
||||
class_url:'1&2&3&4&5',
|
||||
filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"1":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"喜剧","v":"/class/喜剧"},
|
||||
{"n":"爱情","v":"/class/爱情"},
|
||||
{"n":"恐怖","v":"/class/恐怖"},
|
||||
{"n":"动作","v":"/class/动作"},
|
||||
{"n":"科幻","v":"/class/科幻"},
|
||||
{"n":"剧情","v":"/class/剧情"},
|
||||
{"n":"战争","v":"/class/战争"},
|
||||
{"n":"犯罪","v":"/class/犯罪"},
|
||||
{"n":"灾难","v":"/class/灾难"},
|
||||
{"n":"奇幻","v":"/class/奇幻"},
|
||||
{"n":"悬疑","v":"/class/悬疑"},
|
||||
{"n":"惊悚","v":"/class/惊悚"},
|
||||
{"n":"冒险","v":"/class/冒险"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"美国","v":"/area/美国"},
|
||||
{"n":"法国","v":"/area/法国"},
|
||||
{"n":"英国","v":"/area/英国"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"韩国","v":"/area/韩国"},
|
||||
{"n":"德国","v":"/area/德国"},
|
||||
{"n":"泰国","v":"/area/泰国"},
|
||||
{"n":"印度","v":"/area/印度"},
|
||||
{"n":"其他","v":"/area/其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2000","v":"/year/2000"},
|
||||
{"n":"1997","v":"/year/1997"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}]}],
|
||||
|
||||
"2":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"古装","v":"/class/古装"},
|
||||
{"n":"战争","v":"/class/战争"},
|
||||
{"n":"偶像","v":"/class/偶像"},
|
||||
{"n":"犯罪","v":"/class/犯罪"},
|
||||
{"n":"奇幻","v":"/class/奇幻"},
|
||||
{"n":"剧情","v":"/class/剧情"},
|
||||
{"n":"历史","v":"/class/历史"},
|
||||
{"n":"网剧","v":"/class/网剧"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"韩国","v":"/area/韩国"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"美国","v":"/area/美国"},
|
||||
{"n":"泰国","v":"/area/泰国"},
|
||||
{"n":"英国","v":"/area/英国"},
|
||||
{"n":"新加坡","v":"/area/新加坡"},
|
||||
{"n":"其他","v":"/area/其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2000","v":"/year/2000"},
|
||||
{"n":"1997","v":"/year/1997"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}]}],
|
||||
|
||||
"3":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"相声","v":"/class/相声"},
|
||||
{"n":"真人秀","v":"/class/真人秀"},
|
||||
{"n":"脱口秀","v":"/class/脱口秀"},
|
||||
{"n":"选秀","v":"/class/选秀"},
|
||||
{"n":"情感","v":"/class/情感"},
|
||||
{"n":"访谈","v":"/class/访谈"},
|
||||
{"n":"播报","v":"/class/播报"},
|
||||
{"n":"旅游","v":"/class/旅游"},
|
||||
{"n":"音乐","v":"/class/音乐"},
|
||||
{"n":"美食","v":"/class/美食"},
|
||||
{"n":"纪实","v":"/class/纪实"},
|
||||
{"n":"舞蹈","v":"/class/舞蹈"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"欧美","v":"/area/欧美"},
|
||||
{"n":"韩国","v":"/area/韩国"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2000","v":"/year/2000"},
|
||||
{"n":"1997","v":"/year/1997"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}]}],
|
||||
|
||||
"4":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"科幻","v":"/class/科幻"},
|
||||
{"n":"热血","v":"/class/热血"},
|
||||
{"n":"推理","v":"/class/推理"},
|
||||
{"n":"搞笑","v":"/class/搞笑"},
|
||||
{"n":"冒险","v":"/class/冒险"},
|
||||
{"n":"萝莉","v":"/class/萝莉"},
|
||||
{"n":"校园","v":"/class/校园"},
|
||||
{"n":"动作","v":"/class/动作"},
|
||||
{"n":"机战","v":"/class/机战"},
|
||||
{"n":"运动","v":"/class/运动"},
|
||||
{"n":"战争","v":"/class/战争"},
|
||||
{"n":"少年","v":"/class/少年"},
|
||||
{"n":"少女","v":"/class/少女"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"欧美","v":"/area/欧美"},
|
||||
{"n":"海外","v":"/area/海外"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2000","v":"/year/2000"},
|
||||
{"n":"1997","v":"/year/1997"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}]}],
|
||||
|
||||
"5":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"历史","v":"/class/历史"},
|
||||
{"n":"传记","v":"/class/传记"},
|
||||
{"n":"生活","v":"/class/生活"},
|
||||
{"n":"人文","v":"/class/人文"},
|
||||
{"n":"地理","v":"/class/地理"},
|
||||
{"n":"舞台","v":"/class/舞台"},
|
||||
{"n":"专题","v":"/class/专题"},
|
||||
{"n":"时事","v":"/class/时事"},
|
||||
{"n":"宣传","v":"/class/宣传"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"大陆","v":"/area/大陆"},
|
||||
{"n":"香港","v":"/area/香港"},
|
||||
{"n":"台湾","v":"/area/台湾"},
|
||||
{"n":"日本","v":"/area/日本"},
|
||||
{"n":"欧美","v":"/area/欧美"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"/year/2023"},
|
||||
{"n":"2022","v":"/year/2022"},
|
||||
{"n":"2021","v":"/year/2021"},
|
||||
{"n":"2020","v":"/year/2020"},
|
||||
{"n":"2019","v":"/year/2019"},
|
||||
{"n":"2018","v":"/year/2018"},
|
||||
{"n":"2017","v":"/year/2017"},
|
||||
{"n":"2016","v":"/year/2016"},
|
||||
{"n":"2008","v":"/year/2008"},
|
||||
{"n":"2000","v":"/year/2000"},
|
||||
{"n":"1997","v":"/year/1997"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"时间","v":"/by/time"},
|
||||
{"n":"人气","v":"/by/hits"},
|
||||
{"n":"评分","v":"/by/score"}]}]},
|
||||
|
||||
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
|
@ -5,9 +5,12 @@ var rule = {
|
||||
class_name:'电影&国产剧&美剧&日韩剧&泰剧&其他剧&动漫',
|
||||
class_url:'20&26&21&22&24&27&25',
|
||||
// url: '/vodtype/fyclass/page/fypage.html',
|
||||
url:'/vodtype/fyclassfyfilter.html',
|
||||
url:'/vodshow/fyclassfyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}',
|
||||
filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}',
|
||||
|
||||
|
||||
|
||||
filter:{
|
||||
"20":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"喜剧","v":"/class/喜剧"},{"n":"爱情","v":"/class/爱情"},{"n":"恐怖","v":"/class/恐怖"},{"n":"动作","v":"/class/动作"},{"n":"科幻","v":"/class/科幻"},{"n":"剧情","v":"/class/剧情"},{"n":"战争","v":"/class/战争"},{"n":"警匪","v":"/class/警匪"},{"n":"犯罪","v":"/class/犯罪"},{"n":"动画","v":"/class/动画"},{"n":"奇幻","v":"/class/奇幻"},{"n":"冒险","v":"/class/冒险"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"欧美","v":"/area/欧美"},{"n":"韩国","v":"/area/韩国"},{"n":"日本","v":"/area/日本"},{"n":"泰国","v":"/area/泰国"},{"n":"印度","v":"/area/印度"},{"n":"俄罗斯","v":"/area/俄罗斯"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"/lang/英语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"泰语","v":"/lang/泰语"},{"n":"德语","v":"/lang/德语"},{"n":"印度语","v":"/lang/印度语"},{"n":"国语","v":"/lang/国语"},{"n":"粤语","v":"/lang/粤语"},{"n":"俄语","v":"/lang/俄语"},{"n":"西班牙语","v":"/lang/西班牙语"},{"n":"意大利语","v":"/lang/意大利语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
|
||||
"26":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"古装","v":"/class/古装"},{"n":"战争","v":"/class/战争"},{"n":"青春","v":"/class/青春"},{"n":"偶像","v":"/class/偶像"},{"n":"喜剧","v":"/class/喜剧"},{"n":"家庭","v":"/class/家庭"},{"n":"犯罪","v":"/class/犯罪"},{"n":"动作","v":"/class/动作"},{"n":"奇幻","v":"/class/奇幻"},{"n":"剧情","v":"/class/剧情"},{"n":"历史","v":"/class/历史"},{"n":"经典","v":"/class/经典"},{"n":"乡村","v":"/class/乡村"},{"n":"情景","v":"/class/情景"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"中国香港","v":"/area/中国香港"},{"n":"中国台湾","v":"/area/中国台湾"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"粤语","v":"/lang/粤语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
|
||||
@ -19,5 +22,5 @@ var rule = {
|
||||
},
|
||||
timeout:5000,//网站的全局请求超时,默认是3000毫秒
|
||||
detailUrl:'/voddetail/fyid.html',
|
||||
一级:'.public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级:'.public-list-box;a&&title;.lazy&&data-original;.hide&&Text;a&&href',
|
||||
}
|
@ -3,8 +3,8 @@ muban.首图.二级.desc = '.data:eq(4)&&Text;;;.data--span:eq(3)&&Text;.data--s
|
||||
var rule={
|
||||
title:'看韩剧',
|
||||
模板:'首图',
|
||||
host:'https://www.kan.cc',
|
||||
// host:'https://www.kangii.com',
|
||||
// host:'https://www.kan.cc',
|
||||
host:'https://www.kangii.com',
|
||||
url:'/search.html?page=fypage&searchtype=5&tid=fyclassfyfilter',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'&order={{fl.by}}&year={{fl.year}}',
|
||||
|
@ -2,7 +2,7 @@ muban.mxpro.二级.desc = '.module-info-item:eq(4)&&Text;;;.module-info-item-con
|
||||
var rule = {
|
||||
title:'豆巴影视',
|
||||
模板:'mxpro',
|
||||
host:'https://maoyingtm.com',
|
||||
host:'https://www.doubays.com',
|
||||
// url:'/vodshow/fyclass--------fypage---.html',
|
||||
url:'/vodshow/fyclassfyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
|
52
js/骚火电影.js
52
js/骚火电影.js
@ -1,16 +1,50 @@
|
||||
// 搜索验证
|
||||
var rule={
|
||||
title:'骚火',
|
||||
title:'骚火电影',
|
||||
host:'https://shdy3.com',
|
||||
url:'/list/fyclass-fypage.html',
|
||||
// url:'/list/fyclass-fypage.html',
|
||||
url:'/list/fyfilter-fypage.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.cateId}}',
|
||||
filter: {"1":[{"key":"cateId","name":"类型","value":[{"v":"1","n":"全部"},{"v":"6","n":"喜剧"},{"v":"7","n":"爱情"},{"v":"8","n":"恐怖"},{"v":"9","n":"动作"},{"v":"10","n":"科幻"},{"v":"11","n":"战争"},{"v":"12","n":"犯罪"},{"v":"13","n":"动画"},{"v":"14","n":"奇幻"},{"v":"15","n":"剧情"},{"v":"16","n":"冒险"},{"v":"17","n":"悬疑"},{"v":"18","n":"惊悚"},{"v":"19","n":"其它"}]}],"2":[{"key":"cateId","name":"类型","value":[{"v":"2","n":"全部"},{"v":"20","n":"大陆"},{"v":"21","n":"TVB"},{"v":"22","n":"韩剧"},{"v":"23","n":"美剧"},{"v":"24","n":"日剧"},{"v":"25","n":"英剧"},{"v":"26","n":"台剧"},{"v":"27","n":"其它"}]}],"4":[{"key":"cateId","name":"类型","value":[{"v":"4","n":"全部"},{"v":"38","n":"搞笑"},{"v":"39","n":"恋爱"},{"v":"40","n":"热血"},{"v":"41","n":"格斗"},{"v":"42","n":"美少女"},{"v":"43","n":"魔法"},{"v":"44","n":"机战"},{"v":"45","n":"校园"},{"v":"46","n":"亲子"},{"v":"47","n":"童话"},{"v":"48","n":"冒险"},{"v":"49","n":"真人"},{"v":"50","n":"LOLI"},{"v":"51","n":"其它"}]}],
|
||||
"28":[
|
||||
{
|
||||
"key":"cateId",
|
||||
"name":"综艺",
|
||||
"value":[
|
||||
{"v":"28","n":"脱口秀"},
|
||||
{"v":"29","n":"真人秀"},
|
||||
{"v":"30","n":"选秀"},
|
||||
{"v":"31","n":"美食"},
|
||||
{"v":"32","n":"旅游"},
|
||||
{"v":"33","n":"汽车"},
|
||||
{"v":"34","n":"访谈"},
|
||||
{"v":"35","n":"纪实"},
|
||||
{"v":"36","n":"搞笑"},
|
||||
{"v":"37","n":"其它"}]}]},
|
||||
filter_def:{
|
||||
1:{cateId:'1'},
|
||||
2:{cateId:'2'},
|
||||
4:{cateId:'4'}
|
||||
},
|
||||
searchUrl:'/search.php?searchword=**',
|
||||
searchable:2,
|
||||
quickSearch:1,
|
||||
filterable:0,
|
||||
quickSearch:0,
|
||||
|
||||
headers:{'User-Agent':'MOBILE_UA', },
|
||||
class_name:'电影&电视剧&动漫',
|
||||
class_url:'1&2&4',
|
||||
推荐:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href',
|
||||
class_name:'电影&电视剧&动漫&综艺',
|
||||
class_url:'1&2&4&28',
|
||||
// 推荐:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href',
|
||||
推荐:'*',
|
||||
一级:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href',
|
||||
二级:{"title":"h1&&Text;","img":".lazyload&&data-original","desc":";;;.v_info_box&&p&&Text","content":".p_txt.show_part&&Text","tabs":".from_list li","lists":"#play_link:eq(#id) li a"},
|
||||
搜索:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href',
|
||||
二级:{
|
||||
"title":"h1&&Text;",
|
||||
"img":".lazyload&&data-original",
|
||||
"desc":";;;.v_info_box&&p&&Text",
|
||||
"content":".p_txt.show_part&&Text",
|
||||
"tabs":".from_list li",
|
||||
"lists":"#play_link:eq(#id) li a"
|
||||
},
|
||||
// 搜索:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href',
|
||||
搜索:'*',
|
||||
}
|
||||
|
8
js1.json
8
js1.json
@ -1,7 +1,13 @@
|
||||
{
|
||||
"spider": "./jar/custom_spider.jar;md5;1da9b9d6b4241ada175c741d4b4b9cf9",
|
||||
"spider": "./jar/custom_spider.jar;md5;dadcea0e365a64c6cd3c48b7dd948772",
|
||||
"sites":[
|
||||
{"key":"drpy_js_豆瓣","name":"豆瓣","type":3,"ext":"./js/drpy.js","api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1},
|
||||
{"key":"drpy_js_骚火电影","name":"影视 | 骚火电影[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1,"ext":"./js/骚火电影.js"},
|
||||
{"key":"drpy_js_TVB云播","name":"影视 | TVB云播[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1,"ext":"./js/TVB云播.js"},
|
||||
{"key":"drpy_js_剧白白","name":"影视 | 剧白白[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1,"ext":"./js/剧白白.js"},
|
||||
{"key":"drpy_js_8K影视","name":"影视 | 8K影视[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1,"ext":"./js/8K影视.js"},
|
||||
{"key":"drpy_js_豆巴影视","name":"影视 | 豆巴影视[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1,"ext":"./js/豆巴影视.js"},
|
||||
{"key":"drpy_js_007影视","name":"007影视","type":3,"ext":"./js/007影视.js","api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1},
|
||||
{"key":"drpy_js_7喜影院","name":"7喜影院","type":3,"ext":"./js/7喜影院.js","api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1},
|
||||
{"key":"drpy_js_8号影院","name":"8号影院","type":3,"ext":"./js/8号影院.js","api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1},
|
||||
{"key":"drpy_js_9U电影","name":"9U电影","type":3,"ext":"./js/9U电影.js","api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"filterable":1,"changeable":1},
|
||||
|
819
lib/alist.js
Normal file
819
lib/alist.js
Normal file
@ -0,0 +1,819 @@
|
||||
// import _ from 'https://underscorejs.org/underscore-esm-min.js'
|
||||
// import {distance} from 'https://unpkg.com/fastest-levenshtein@1.0.16/esm/mod.js'
|
||||
import {distance} from './mod.js'
|
||||
import {sortListByCN} from './sortName.js'
|
||||
|
||||
/**
|
||||
* alist js
|
||||
* 配置设置 {"key":"Alist","name":"Alist","type":3,"api":"http://xxx.com/alist.js","searchable":0,"quickSearch":0,"filterable":0,"ext":"http://xxx.com/alist.json"}
|
||||
* alist.json [{
|
||||
name:'名称',
|
||||
server:'地址',
|
||||
startPage:'/', //启动文件夹
|
||||
showAll: false , //是否显示全部文件,默认false只显示 音视频和文件夹
|
||||
search: true, // 启用小雅的搜索,搜索只会搜第一个开启此开关的磁盘
|
||||
params:{ //对应文件夹参数 如设置对应文件夹的密码
|
||||
'/abc':{ password : '123' },
|
||||
'/abc/abc':{ password : '123' },
|
||||
}
|
||||
}]
|
||||
* 提示 想要加载文件夹里面全部视频到详情(看剧可以自动播放下一集支持历史记录)
|
||||
* 需要改软件才能支持,,建议长按文件夹时添加判断 tag == folder 时跳转 DetailActivity
|
||||
*/
|
||||
String.prototype.rstrip = function (chars) {
|
||||
let regex = new RegExp(chars + "$");
|
||||
return this.replace(regex, "");
|
||||
};
|
||||
var showMode = 'single';
|
||||
var searchDriver = '';
|
||||
var limit_search_show = 200;
|
||||
var search_type = '';
|
||||
var detail_order = 'name';
|
||||
var playRaw = 1; // 播放直链获取,默认0直接拼接/d 填1可以获取阿里oss链接。注意,有时效性
|
||||
const request_timeout = 5000;
|
||||
const VERSION = 'alist v2/v3 20221223';
|
||||
const UA = 'Mozilla/5.0'; //默认请求ua
|
||||
/**
|
||||
* 打印日志
|
||||
* @param any 任意变量
|
||||
*/
|
||||
function print(any){
|
||||
any = any||'';
|
||||
if(typeof(any)=='object'&&Object.keys(any).length>0){
|
||||
try {
|
||||
any = JSON.stringify(any);
|
||||
console.log(any);
|
||||
}catch (e) {
|
||||
// console.log('print:'+e.message);
|
||||
console.log(typeof(any)+':'+any.length);
|
||||
}
|
||||
}else if(typeof(any)=='object'&&Object.keys(any).length<1){
|
||||
console.log('null object');
|
||||
}else{
|
||||
console.log(any);
|
||||
}
|
||||
}
|
||||
|
||||
/*** js自封装的方法 ***/
|
||||
|
||||
/**
|
||||
* 获取链接的host(带http协议的完整链接)
|
||||
* @param url 任意一个正常完整的Url,自动提取根
|
||||
* @returns {string}
|
||||
*/
|
||||
function getHome(url){
|
||||
if(!url){
|
||||
return ''
|
||||
}
|
||||
let tmp = url.split('//');
|
||||
url = tmp[0] + '//' + tmp[1].split('/')[0];
|
||||
try {
|
||||
url = decodeURIComponent(url);
|
||||
}catch (e) {}
|
||||
return url
|
||||
}
|
||||
|
||||
const http = function (url, options = {}) {
|
||||
if(options.method ==='POST' && options.data){
|
||||
options.body = JSON.stringify(options.data);
|
||||
options.headers = Object.assign({'content-type':'application/json'}, options.headers);
|
||||
}
|
||||
options.timeout = request_timeout;
|
||||
if(!options.headers){
|
||||
options.headers = {};
|
||||
}
|
||||
let keys = Object.keys(options.headers).map(it=>it.toLowerCase());
|
||||
if(!keys.includes('referer')){
|
||||
options.headers['Referer'] = getHome(url);
|
||||
}
|
||||
if(!keys.includes('user-agent')){
|
||||
options.headers['User-Agent'] = UA;
|
||||
}
|
||||
console.log(JSON.stringify(options.headers));
|
||||
try {
|
||||
const res = req(url, options);
|
||||
// if(options.headers['Authorization']){
|
||||
// console.log(res.content);
|
||||
// }
|
||||
res.json = () => res&&res.content ? JSON.parse(res.content) : null;
|
||||
res.text = () => res&&res.content ? res.content:'';
|
||||
return res
|
||||
}catch (e) {
|
||||
return {
|
||||
json() {
|
||||
return null
|
||||
}, text() {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
["get", "post"].forEach(method => {
|
||||
http[method] = function (url, options = {}) {
|
||||
return http(url, Object.assign(options, {method: method.toUpperCase()}));
|
||||
}
|
||||
});
|
||||
|
||||
const __drives = {};
|
||||
|
||||
function isMedia(file){
|
||||
return /\.(dff|dsf|mp3|aac|wav|wma|cda|flac|m4a|mid|mka|mp2|mpa|mpc|ape|ofr|ogg|ra|wv|tta|ac3|dts|tak|webm|wmv|mpeg|mov|ram|swf|mp4|avi|rm|rmvb|flv|mpg|mkv|m3u8|ts|3gp|asf)$/.test(file.toLowerCase());
|
||||
}
|
||||
|
||||
function get_drives_path(tid) {
|
||||
const index = tid.indexOf('$');
|
||||
const name = tid.substring(0, index);
|
||||
const path = tid.substring(index + 1);
|
||||
return { drives: get_drives(name), path };
|
||||
}
|
||||
|
||||
function get_drives(name) {
|
||||
const { settings, api, server,headers } = __drives[name];
|
||||
if (settings.v3 == null) { //获取 设置
|
||||
settings.v3 = false;
|
||||
const data = http.get(server + '/api/public/settings',{headers:headers}).json().data;
|
||||
if (Array.isArray(data)) {
|
||||
settings.title = data.find(x => x.key === 'title')?.value;
|
||||
settings.v3 = false;
|
||||
settings.version = data.find(x => x.key === 'version')?.value;
|
||||
settings.enableSearch = data.find(x => x.key === 'enable search')?.value === 'true';
|
||||
} else {
|
||||
settings.title = data.title;
|
||||
settings.v3 = true;
|
||||
settings.version = data.version;
|
||||
settings.enableSearch = false; //v3 没有找到 搜索配置
|
||||
}
|
||||
//不同版本 接口不一样
|
||||
api.path = settings.v3 ? '/api/fs/list' : '/api/public/path';
|
||||
api.file = settings.v3 ? '/api/fs/get' : '/api/public/path';
|
||||
api.search = settings.v3 ? '/api/public/search' : '/api/public/search';
|
||||
}
|
||||
return __drives[name]
|
||||
}
|
||||
|
||||
function init(ext) {
|
||||
console.log("当前版本号:"+VERSION);
|
||||
let data;
|
||||
if (typeof ext == 'object'){
|
||||
data = ext;
|
||||
print('alist ext:object');
|
||||
} else if (typeof ext == 'string') {
|
||||
if (ext.startsWith('http')) {
|
||||
let alist_data = ext.split(';');
|
||||
let alist_data_url = alist_data[0];
|
||||
limit_search_show = alist_data.length>1?Number(alist_data[1])||limit_search_show:limit_search_show;
|
||||
search_type = alist_data.length>2?alist_data[2]:search_type;
|
||||
print(alist_data_url);
|
||||
data = http.get(alist_data_url).json(); // .map(it=>{it.name='🙋丫仙女';return it})
|
||||
} else {
|
||||
print('alist ext:json string');
|
||||
data = JSON.parse(ext);
|
||||
}
|
||||
}
|
||||
|
||||
// print(data); // 测试证明壳子标题支持emoji,是http请求源码不支持emoji
|
||||
let drives = [];
|
||||
if(Array.isArray(data) && data.length > 0 && data[0].hasOwnProperty('server') && data[0].hasOwnProperty('name')){
|
||||
drives = data;
|
||||
}else if(!Array.isArray(data)&&data.hasOwnProperty('drives')&&Array.isArray(data.drives)){
|
||||
drives = data.drives.filter(it=>(it.type&&it.type==='alist')||!it.type);
|
||||
}
|
||||
print(drives);
|
||||
searchDriver = (drives.find(x=>x.search)||{}).name||'';
|
||||
if(!searchDriver && drives.length > 0){
|
||||
searchDriver = drives[0].name;
|
||||
}
|
||||
print(searchDriver);
|
||||
drives.forEach(item => {
|
||||
let _path_param = [];
|
||||
if(item.params){
|
||||
_path_param = Object.keys(item.params);
|
||||
// 升序排列
|
||||
_path_param.sort((a,b)=>(a.length-b.length));
|
||||
}
|
||||
if(item.password){
|
||||
let pwdObj = {
|
||||
password: item.password
|
||||
};
|
||||
if(!item.params){
|
||||
item.params = {'/':pwdObj};
|
||||
}else{
|
||||
item.params['/'] = pwdObj;
|
||||
}
|
||||
_path_param.unshift('/');
|
||||
}
|
||||
__drives[item.name] = {
|
||||
name: item.name,
|
||||
server: item.server.endsWith("/") ? item.server.rstrip("/") : item.server,
|
||||
startPage: item.startPage || '/', //首页
|
||||
showAll: item.showAll === true, //默认只显示 视频和文件夹,如果想显示全部 showAll 设置true
|
||||
search: !!item.search, //是否支持搜索,只有小丫的可以,多个可搜索只取最前面的一个
|
||||
params: item.params || {},
|
||||
_path_param: _path_param,
|
||||
settings: {},
|
||||
api: {},
|
||||
headers:item.headers||{},
|
||||
getParams(path) {
|
||||
const key = this._path_param.find(x => path.startsWith(x));
|
||||
return Object.assign({}, this.params[key], { path });
|
||||
},
|
||||
getPath(path) {
|
||||
const res = http.post(this.server + this.api.path, { data: this.getParams(path),headers:this.headers }).json();
|
||||
// console.log(res);
|
||||
try {
|
||||
return this.settings.v3 ? res.data.content : res.data.files
|
||||
}catch (e) {
|
||||
console.log(`getPath发生错误:${e.message}`);
|
||||
console.log(JSON.stringify(res));
|
||||
return [{name:'error',value:JSON.stringify(res)}]
|
||||
}
|
||||
},
|
||||
getFile(path) {
|
||||
let raw_url = this.server+'/d'+path;
|
||||
raw_url = encodeURI(raw_url);
|
||||
let data = {raw_url:raw_url,raw_url1:raw_url};
|
||||
if(playRaw===1){
|
||||
try {
|
||||
const res = http.post(this.server + this.api.file, { data: this.getParams(path),headers:this.headers }).json();
|
||||
data = this.settings.v3 ? res.data : res.data.files[0];
|
||||
if (!this.settings.v3) {
|
||||
data.raw_url = data.url; //v2 的url和v3不一样
|
||||
}
|
||||
data.raw_url1 = raw_url;
|
||||
return data
|
||||
}catch (e) {
|
||||
return data
|
||||
}
|
||||
}else{
|
||||
return data
|
||||
}
|
||||
},
|
||||
isFolder(data) { return data.type === 1 },
|
||||
isVideo(data) { //判断是否是 视频文件
|
||||
// return this.settings.v3 ? data.type === 2 : data.type === 3
|
||||
// 增加音乐识别 视频,其他,音频
|
||||
return this.settings.v3 ? (data.type === 2||data.type===0||data.type===3) : (data.type === 3||data.type===0||data.type === 4)
|
||||
},
|
||||
is_subt(data) {
|
||||
if (data.type === 1) {
|
||||
return false;
|
||||
}
|
||||
const ext = /\.(srt|ass|scc|stl|ttml)$/; // [".srt", ".ass", ".scc", ".stl", ".ttml"];
|
||||
// return ext.some(x => data.name.endsWith(x));
|
||||
return ext.test(data.name);
|
||||
},
|
||||
getPic(data) {
|
||||
let pic = this.settings.v3 ? data.thumb : data.thumbnail;
|
||||
return pic || (this.isFolder(data) ? "http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png" : '');
|
||||
},
|
||||
getTime(data,isStandard) {
|
||||
isStandard = isStandard||false;
|
||||
try {
|
||||
let tTime = data.updated_at || data.time_str || data.modified || "";
|
||||
let date = '';
|
||||
if(tTime){
|
||||
tTime = tTime.split("T");
|
||||
date = tTime[0];
|
||||
if(isStandard){
|
||||
date = date.replace(/-/g,"/");
|
||||
}
|
||||
tTime = tTime[1].split(/Z|\./);
|
||||
date += " " + tTime[0];
|
||||
}
|
||||
return date;
|
||||
}catch (e) {
|
||||
// print(e.message);
|
||||
// print(data);
|
||||
return ''
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
);
|
||||
print('init执行完毕');
|
||||
}
|
||||
|
||||
function home(filter) {
|
||||
let classes = Object.keys(__drives).map(key => ({
|
||||
type_id: `${key}$${__drives[key].startPage}`,
|
||||
type_name: key,
|
||||
type_flag: '1',
|
||||
}));
|
||||
let filter_dict = {};
|
||||
let filters = [{'key': 'order', 'name': '排序', 'value': [{'n': '名称⬆️', 'v': 'vod_name_asc'}, {'n': '名称⬇️', 'v': 'vod_name_desc'},
|
||||
{'n': '中英⬆️', 'v': 'vod_cn_asc'}, {'n': '中英⬇️', 'v': 'vod_cn_desc'},
|
||||
{'n': '时间⬆️', 'v': 'vod_time_asc'}, {'n': '时间⬇️', 'v': 'vod_time_desc'},
|
||||
{'n': '大小⬆️', 'v': 'vod_size_asc'}, {'n': '大小⬇️', 'v': 'vod_size_desc'},{'n': '无', 'v': 'none'}]},
|
||||
{'key': 'show', 'name': '播放展示', 'value': [{'n': '单集', 'v': 'single'},{'n': '全集', 'v': 'all'}]}
|
||||
];
|
||||
classes.forEach(it=>{
|
||||
filter_dict[it.type_id] = filters;
|
||||
});
|
||||
print("----home----");
|
||||
print(classes);
|
||||
return JSON.stringify({ 'class': classes,'filters': filter_dict});
|
||||
}
|
||||
|
||||
function homeVod(params) {
|
||||
let _post_data = {"pageNum":0,"pageSize":100};
|
||||
let _post_url = 'https://pbaccess.video.qq.com/trpc.videosearch.hot_rank.HotRankServantHttp/HotRankHttp';
|
||||
let data = http.post(_post_url,{ data: _post_data }).json();
|
||||
let _list = [];
|
||||
try {
|
||||
data = data['data']['navItemList'][0]['hotRankResult']['rankItemList'];
|
||||
// print(data);
|
||||
data.forEach(it=>{
|
||||
_list.push({
|
||||
vod_name:it.title,
|
||||
vod_id:'msearch:'+it.title,
|
||||
vod_pic:'https://avatars.githubusercontent.com/u/97389433?s=120&v=4',
|
||||
vod_remarks:it.changeOrder,
|
||||
});
|
||||
});
|
||||
}catch (e) {
|
||||
print('Alist获取首页推荐发送错误:'+e.message);
|
||||
}
|
||||
return JSON.stringify({ 'list': _list });
|
||||
}
|
||||
|
||||
function category(tid, pg, filter, extend) {
|
||||
let orid = tid.replace(/#all#|#search#/g,'');
|
||||
let { drives, path } = get_drives_path(orid);
|
||||
const id = orid.endsWith('/') ? orid : orid + '/';
|
||||
const list = drives.getPath(path);
|
||||
let subList = [];
|
||||
let vodFiles = [];
|
||||
let allList = [];
|
||||
let fl = filter?extend:{};
|
||||
if(fl.show){
|
||||
showMode = fl.show;
|
||||
}
|
||||
list.forEach(item => {
|
||||
if(item.name!=='error') {
|
||||
if (drives.is_subt(item)) {
|
||||
subList.push(item.name);
|
||||
}
|
||||
if (!drives.showAll && !drives.isFolder(item) && !drives.isVideo(item)) {
|
||||
return //只显示视频文件和文件夹
|
||||
}
|
||||
let vod_time = drives.getTime(item);
|
||||
let vod_size = get_size(item.size);
|
||||
let remark = vod_time.split(' ')[0].substr(3) + '\t' + vod_size;
|
||||
let vod_id = id + item.name + (drives.isFolder(item) ? '/' : '');
|
||||
if (showMode === 'all') {
|
||||
vod_id += '#all#';
|
||||
}
|
||||
print(vod_id);
|
||||
const vod = {
|
||||
'vod_id': vod_id,
|
||||
'vod_name': item.name.replaceAll("$", "").replaceAll("#", ""),
|
||||
'vod_pic': drives.getPic(item),
|
||||
'vod_time': vod_time,
|
||||
'vod_size': item.size,
|
||||
'vod_tag': drives.isFolder(item) ? 'folder' : 'file',
|
||||
'vod_remarks': drives.isFolder(item) ? remark + ' 文件夹' : remark
|
||||
};
|
||||
if (drives.isVideo(item)) {
|
||||
vodFiles.push(vod);
|
||||
}
|
||||
allList.push(vod);
|
||||
}else{
|
||||
console.log(item);
|
||||
const vod = {
|
||||
vod_name: item.value,
|
||||
vod_id: 'no_data',
|
||||
vod_remarks: '不要点,会崩的',
|
||||
vod_pic: 'https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg'
|
||||
}
|
||||
allList.push(vod);
|
||||
}
|
||||
});
|
||||
|
||||
if (vodFiles.length === 1 && subList.length > 0) { //只有一个视频 一个或者多个字幕 取相似度最高的
|
||||
// let sub = subList.length === 1 ? subList[0] : _.chain(allList).sortBy(x => (x.includes('chs') ? 100 : 0) + levenshteinDistance(x, vodFiles[0].vod_name)).last().value();
|
||||
let sub; // 字幕文件名称
|
||||
if(subList.length === 1){
|
||||
sub = subList[0];
|
||||
}else {
|
||||
let subs = JSON.parse(JSON.stringify(subList));
|
||||
subs.sort((a,b)=>{
|
||||
// chs是简体中文字幕
|
||||
let a_similar = (a.includes('chs') ? 100 : 0) + levenshteinDistance(a, vodFiles[0].vod_name);
|
||||
let b_similar = (b.includes('chs') ? 100 : 0) + levenshteinDistance(b, vodFiles[0].vod_name);
|
||||
if(a_similar>b_similar) { // 按相似度正序排列
|
||||
return 1;
|
||||
}else{ //否则,位置不变
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
sub = subs.slice(-1)[0];
|
||||
}
|
||||
vodFiles[0].vod_id += "@@@" + sub;
|
||||
// vodFiles[0].vod_remarks += " 有字幕";
|
||||
vodFiles[0].vod_remarks += "🏷️";
|
||||
} else {
|
||||
vodFiles.forEach(item => {
|
||||
const lh = 0;
|
||||
let sub;
|
||||
subList.forEach(s => {
|
||||
//编辑距离相似度
|
||||
const l = levenshteinDistance(s, item.vod_name);
|
||||
if (l > 60 && l > lh) {
|
||||
sub = s;
|
||||
}
|
||||
});
|
||||
if (sub) {
|
||||
item.vod_id += "@@@" + sub;
|
||||
// item.vod_remarks += " 有字幕";
|
||||
item.vod_remarks += "🏷️";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if(fl.order){
|
||||
// print(fl.order);
|
||||
let key = fl.order.split('_').slice(0,-1).join('_');
|
||||
let order = fl.order.split('_').slice(-1)[0];
|
||||
print(`排序key:${key},排序order:${order}`);
|
||||
if(key.includes('name')){
|
||||
detail_order = 'name';
|
||||
allList = sortListByName(allList,key,order);
|
||||
}else if(key.includes('cn')){
|
||||
detail_order = 'cn';
|
||||
allList = sortListByCN(allList,'vod_name',order);
|
||||
}else if(key.includes('time')){
|
||||
detail_order = 'time';
|
||||
allList = sortListByTime(allList,key,order);
|
||||
}else if(key.includes('size')){
|
||||
detail_order = 'size';
|
||||
allList = sortListBySize(allList,key,order);
|
||||
}else if(fl.order.includes('none')){
|
||||
detail_order = 'none';
|
||||
print('不排序');
|
||||
}
|
||||
}else{
|
||||
// 没传order是其他地方调用的,自动按名称正序排序方便追剧,如果传了none进去就不排序,假装云盘里本身文件顺序是正常的
|
||||
if(detail_order!=='none'){
|
||||
allList = sortListByName(allList,'vod_name','asc');
|
||||
}
|
||||
}
|
||||
|
||||
print("----category----"+`tid:${tid},detail_order:${detail_order},showMode:${showMode}`);
|
||||
// print(allList);
|
||||
return JSON.stringify({
|
||||
'page': 1,
|
||||
'pagecount': 1,
|
||||
'limit': allList.length,
|
||||
'total': allList.length,
|
||||
'list': allList,
|
||||
});
|
||||
}
|
||||
|
||||
function getAll(otid,tid,drives,path){
|
||||
try {
|
||||
const content = category(tid, null, false, null);
|
||||
const isFile = isMedia(otid.replace(/#all#|#search#/g,'').split('@@@')[0]);
|
||||
const { list } = JSON.parse(content);
|
||||
let vod_play_url = [];
|
||||
list.forEach(x => {
|
||||
if (x.vod_tag === 'file'){
|
||||
let vid = x.vod_id.replace(/#all#|#search#/g,'');
|
||||
vod_play_url.push(`${x.vod_name}$${vid.substring(vid.indexOf('$') + 1)}`);
|
||||
}
|
||||
});
|
||||
const pl = path.split("/").filter(it=>it);
|
||||
let vod_name = pl[pl.length - 1] || drives.name;
|
||||
if(vod_name === drives.name){
|
||||
print(pl);
|
||||
}
|
||||
if(otid.includes('#search#')){
|
||||
vod_name+='[搜]';
|
||||
}
|
||||
let vod = {
|
||||
// vod_id: tid,
|
||||
vod_id: otid,
|
||||
vod_name: vod_name,
|
||||
type_name: "文件夹",
|
||||
vod_pic: "https://avatars.githubusercontent.com/u/97389433?s=120&v=4",
|
||||
vod_content: tid,
|
||||
vod_tag: 'folder',
|
||||
vod_play_from: drives.name,
|
||||
vod_play_url: vod_play_url.join('#'),
|
||||
vod_remarks: drives.settings.title,
|
||||
}
|
||||
print("----detail1----");
|
||||
print(vod);
|
||||
return JSON.stringify({ 'list': [vod] });
|
||||
}catch (e) {
|
||||
print(e.message);
|
||||
let list = [{vod_name:'无数据,防无限请求',type_name: "文件夹",vod_id:'no_data',vod_remarks:'不要点,会崩的',vod_pic:'https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/static/img/404.jpg',vod_actor:e.message,vod_director: tid,vod_content: otid}];
|
||||
return JSON.stringify({ 'list': list });
|
||||
}
|
||||
}
|
||||
|
||||
function detail(tid) {
|
||||
let isSearch = tid.includes('#search#');
|
||||
let isAll = tid.includes('#all#');
|
||||
let otid = tid;
|
||||
tid = tid.replace(/#all#|#search#/g,'');
|
||||
let isFile = isMedia(tid.split('@@@')[0]);
|
||||
print(`isFile:${tid}?${isFile}`);
|
||||
let { drives, path } = get_drives_path(tid);
|
||||
print(`drives:${drives},path:${path},`);
|
||||
if (path.endsWith("/")) { //长按文件夹可以 加载里面全部视频到详情
|
||||
return getAll(otid,tid,drives,path);
|
||||
} else {
|
||||
if(isSearch&&!isFile){ // 搜索结果 当前目录获取所有文件
|
||||
return getAll(otid,tid,drives,path);
|
||||
}else if(isAll){ // 上级目录获取所有文件 不管是搜索还是分类,只要不是 搜索到的文件夹,且展示模式为全部,都获取上级目录的所有文件
|
||||
// 是文件就取上级目录
|
||||
let new_tid;
|
||||
if(isFile){
|
||||
new_tid = tid.split('/').slice(0,-1).join('/')+'/';
|
||||
}else{
|
||||
new_tid = tid;
|
||||
}
|
||||
print(`全集模式 tid:${tid}=>tid:${new_tid}`);
|
||||
let { drives, path } = get_drives_path(new_tid);
|
||||
return getAll(otid,new_tid,drives,path);
|
||||
} else if(isFile){ // 单文件进入
|
||||
let paths = path.split("@@@");
|
||||
let vod_name = paths[0].substring(paths[0].lastIndexOf("/") + 1);
|
||||
let vod_title = vod_name;
|
||||
if(otid.includes('#search#')){
|
||||
vod_title+='[搜]';
|
||||
}
|
||||
let vod = {
|
||||
vod_id: otid,
|
||||
vod_name: vod_title,
|
||||
type_name: "文件",
|
||||
vod_pic: "https://avatars.githubusercontent.com/u/97389433?s=120&v=4",
|
||||
vod_content: tid,
|
||||
vod_play_from: drives.name,
|
||||
vod_play_url: vod_name + "$" + path,
|
||||
vod_remarks: drives.settings.title,
|
||||
};
|
||||
print("----detail2----");
|
||||
print(vod);
|
||||
return JSON.stringify({
|
||||
'list': [vod]
|
||||
});
|
||||
}else{
|
||||
return JSON.stringify({
|
||||
'list': []
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function play(flag, id, flags) {
|
||||
const drives = get_drives(flag);
|
||||
const urls = id.split("@@@"); // @@@ 分割前是 相对文件path,分割后是字幕文件
|
||||
let vod = {
|
||||
'parse': 0,
|
||||
'playUrl': '',
|
||||
// 'url': drives.getFile(urls[0]).raw_url+'#.m3u8' // 加 # 没法播放
|
||||
'url': drives.getFile(urls[0]).raw_url
|
||||
};
|
||||
if (urls.length >= 2) {
|
||||
const path = urls[0].substring(0, urls[0].lastIndexOf('/') + 1);
|
||||
vod.subt = drives.getFile(path + urls[1]).raw_url1;
|
||||
}
|
||||
print("----play----");
|
||||
print(vod);
|
||||
return JSON.stringify(vod);
|
||||
}
|
||||
|
||||
function search(wd, quick) {
|
||||
print(__drives);
|
||||
print('可搜索的alist驱动:'+searchDriver);
|
||||
if(!searchDriver||!wd){
|
||||
return JSON.stringify({
|
||||
'list': []
|
||||
});
|
||||
}else{
|
||||
let driver = __drives[searchDriver];
|
||||
wd = wd.split(' ').filter(it=>it.trim()).join('+');
|
||||
print(driver);
|
||||
let surl = driver.server + '/search?box='+wd+'&url=';
|
||||
if(search_type){
|
||||
surl+='&type='+search_type;
|
||||
}
|
||||
print('搜索链接:'+surl);
|
||||
let html = http.get(surl).text();
|
||||
let lists = [];
|
||||
try {
|
||||
lists = pdfa(html,'div&&ul&&a');
|
||||
}catch (e) {}
|
||||
print(`搜索结果数:${lists.length},搜索结果显示数量限制:${limit_search_show}`);
|
||||
let vods = [];
|
||||
let excludeReg = /\.(pdf|epub|mobi|txt|doc|lrc)$/; // 过滤后缀文件
|
||||
let cnt = 0;
|
||||
lists.forEach(it=>{
|
||||
let vhref = pdfh(it,'a&&href');
|
||||
if(vhref){
|
||||
vhref = unescape(vhref);
|
||||
}
|
||||
if(excludeReg.test(vhref)){
|
||||
return; //跳过本次循环
|
||||
}
|
||||
if(cnt < limit_search_show){
|
||||
print(vhref);
|
||||
}
|
||||
cnt ++;
|
||||
let vid = searchDriver+'$'+vhref+'#search#';
|
||||
if(showMode==='all'){
|
||||
vid+='#all#';
|
||||
}
|
||||
vods.push({
|
||||
vod_name:pdfh(it,'a&&Text'),
|
||||
vod_id:vid,
|
||||
vod_tag: isMedia(vhref) ? 'file' : 'folder',
|
||||
vod_pic:'http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png',
|
||||
vod_remarks:searchDriver
|
||||
});
|
||||
});
|
||||
// 截取搜索结果
|
||||
vods = vods.slice(0,limit_search_show);
|
||||
print(vods);
|
||||
return JSON.stringify({
|
||||
'list': vods
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function get_size(sz) {
|
||||
if (sz <= 0) {
|
||||
return "";
|
||||
}
|
||||
let filesize = "";
|
||||
if (sz > 1024 * 1024 * 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024 * 1024 * 1024.0);
|
||||
filesize = "TB";
|
||||
} else if (sz > 1024 * 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024 * 1024.0);
|
||||
filesize = "GB";
|
||||
} else if (sz > 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024.0);
|
||||
filesize = "MB";
|
||||
} else if( sz > 1024.0){
|
||||
sz /= 1024.0;
|
||||
filesize = "KB";
|
||||
}else{
|
||||
filesize = "B";
|
||||
}
|
||||
// 转成字符串
|
||||
let sizeStr = sz.toFixed(2) + filesize,
|
||||
// 获取小数点处的索引
|
||||
index = sizeStr.indexOf("."),
|
||||
// 获取小数点后两位的值
|
||||
dou = sizeStr.substr(index + 1, 2);
|
||||
if (dou === "00") {
|
||||
return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2);
|
||||
}else{
|
||||
return sizeStr;
|
||||
}
|
||||
}
|
||||
|
||||
// 相似度获取
|
||||
function levenshteinDistance(str1, str2) {
|
||||
return 100 - 100 * distance(str1, str2) / Math.max(str1.length, str2.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自然排序
|
||||
* ["第1集","第10集","第20集","第2集","1","2","10","12","23","01","02"].sort(naturalSort())
|
||||
* @param options {{key,caseSensitive, order: string}}
|
||||
*/
|
||||
function naturalSort(options) {
|
||||
if (!options) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
return function (a, b) {
|
||||
if(options.key){
|
||||
a = a[options.key];
|
||||
b = b[options.key];
|
||||
}
|
||||
var EQUAL = 0;
|
||||
var GREATER = (options.order === 'desc' ?
|
||||
-1 :
|
||||
1
|
||||
);
|
||||
var SMALLER = -GREATER;
|
||||
|
||||
var re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi;
|
||||
var sre = /(^[ ]*|[ ]*$)/g;
|
||||
var dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/;
|
||||
var hre = /^0x[0-9a-f]+$/i;
|
||||
var ore = /^0/;
|
||||
|
||||
var normalize = function normalize(value) {
|
||||
var string = '' + value;
|
||||
return (options.caseSensitive ?
|
||||
string :
|
||||
string.toLowerCase()
|
||||
);
|
||||
};
|
||||
|
||||
// Normalize values to strings
|
||||
var x = normalize(a).replace(sre, '') || '';
|
||||
var y = normalize(b).replace(sre, '') || '';
|
||||
|
||||
// chunk/tokenize
|
||||
var xN = x.replace(re, '\0$1\0').replace(/\0$/, '').replace(/^\0/, '').split('\0');
|
||||
var yN = y.replace(re, '\0$1\0').replace(/\0$/, '').replace(/^\0/, '').split('\0');
|
||||
|
||||
// Return immediately if at least one of the values is empty.
|
||||
if (!x && !y) return EQUAL;
|
||||
if (!x && y) return GREATER;
|
||||
if (x && !y) return SMALLER;
|
||||
|
||||
// numeric, hex or date detection
|
||||
var xD = parseInt(x.match(hre)) || (xN.length != 1 && x.match(dre) && Date.parse(x));
|
||||
var yD = parseInt(y.match(hre)) || xD && y.match(dre) && Date.parse(y) || null;
|
||||
var oFxNcL, oFyNcL;
|
||||
|
||||
// first try and sort Hex codes or Dates
|
||||
if (yD) {
|
||||
if (xD < yD) return SMALLER;
|
||||
else if (xD > yD) return GREATER;
|
||||
}
|
||||
|
||||
// natural sorting through split numeric strings and default strings
|
||||
for (var cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
|
||||
|
||||
// find floats not starting with '0', string or 0 if not defined (Clint Priest)
|
||||
oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
|
||||
oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
|
||||
|
||||
// handle numeric vs string comparison - number < string - (Kyle Adams)
|
||||
if (isNaN(oFxNcL) !== isNaN(oFyNcL)) return (isNaN(oFxNcL)) ? GREATER : SMALLER;
|
||||
|
||||
// rely on string comparison if different types - i.e. '02' < 2 != '02' < '2'
|
||||
else if (typeof oFxNcL !== typeof oFyNcL) {
|
||||
oFxNcL += '';
|
||||
oFyNcL += '';
|
||||
}
|
||||
if (oFxNcL < oFyNcL) return SMALLER;
|
||||
if (oFxNcL > oFyNcL) return GREATER;
|
||||
}
|
||||
return EQUAL;
|
||||
};
|
||||
}
|
||||
// 完整名称排序
|
||||
const sortListByName = (vodList,key,order) => {
|
||||
if(!key){
|
||||
return vodList
|
||||
}
|
||||
order = order||'asc'; // 默认正序
|
||||
// 排序键,顺序,区分大小写
|
||||
return vodList.sort(naturalSort({key: key, order: order,caseSensitive:true}))
|
||||
};
|
||||
|
||||
const getTimeInt = (timeStr) => {
|
||||
return (new Date(timeStr)).getTime();
|
||||
};
|
||||
|
||||
// 时间
|
||||
const sortListByTime = (vodList,key,order) => {
|
||||
if (!key) {
|
||||
return vodList
|
||||
}
|
||||
let ASCarr = vodList.sort((a, b) => {
|
||||
a = a[key];
|
||||
b = b[key];
|
||||
return getTimeInt(a) - getTimeInt(b);
|
||||
});
|
||||
if(order==='desc'){
|
||||
ASCarr.reverse();
|
||||
}
|
||||
return ASCarr
|
||||
};
|
||||
|
||||
// 大小
|
||||
const sortListBySize = (vodList,key,order) => {
|
||||
if (!key) {
|
||||
return vodList
|
||||
}
|
||||
let ASCarr = vodList.sort((a, b) => {
|
||||
a = a[key];
|
||||
b = b[key];
|
||||
return (Number(a) || 0) - (Number(b) || 0);
|
||||
});
|
||||
if(order==='desc'){
|
||||
ASCarr.reverse();
|
||||
}
|
||||
return ASCarr
|
||||
};
|
||||
|
||||
// 导出函数对象
|
||||
export default {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search
|
||||
}
|
2
lib/alist.min.js
vendored
2
lib/alist.min.js
vendored
File diff suppressed because one or more lines are too long
@ -55,7 +55,7 @@ function pre(){
|
||||
}
|
||||
|
||||
let rule = {};
|
||||
const VERSION = 'drpy1 3.9.41beta1 20230328';
|
||||
const VERSION = 'drpy1 3.9.41beta14 20230428';
|
||||
/** 已知问题记录
|
||||
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了]
|
||||
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下)
|
||||
@ -87,7 +87,7 @@ const IOS_UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWe
|
||||
const RULE_CK = 'cookie'; // 源cookie的key值
|
||||
// const KEY = typeof(key)!=='undefined'&&key?key:'drpy_' + (rule.title || rule.host); // 源的唯一标识
|
||||
const CATE_EXCLUDE = '首页|留言|APP|下载|资讯|新闻|动态';
|
||||
const TAB_EXCLUDE = '猜你|喜欢|APP|下载|剧情|热播';
|
||||
const TAB_EXCLUDE = '猜你|喜欢|下载|剧情|热播';
|
||||
const OCR_RETRY = 3;//ocr验证重试次数
|
||||
// const OCR_API = 'http://dm.mudery.com:10000';//ocr在线识别接口
|
||||
// const OCR_API = 'http://192.168.3.239:5705/parse/ocr';//ocr在线识别接口
|
||||
|
2
lib/drpy.min.js
vendored
2
lib/drpy.min.js
vendored
File diff suppressed because one or more lines are too long
@ -41,7 +41,7 @@ function pre(){
|
||||
|
||||
let rule = {};
|
||||
let vercode = typeof(pdfl) ==='function'?'drpy2.1':'drpy2';
|
||||
const VERSION = vercode+' 3.9.41beta1 20230328';
|
||||
const VERSION = vercode+' 3.9.41beta14 20230428';
|
||||
/** 已知问题记录
|
||||
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了]
|
||||
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下)
|
||||
@ -74,7 +74,7 @@ const IOS_UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWe
|
||||
const RULE_CK = 'cookie'; // 源cookie的key值
|
||||
// const KEY = typeof(key)!=='undefined'&&key?key:'drpy_' + (rule.title || rule.host); // 源的唯一标识
|
||||
const CATE_EXCLUDE = '首页|留言|APP|下载|资讯|新闻|动态';
|
||||
const TAB_EXCLUDE = '猜你|喜欢|APP|下载|剧情|热播';
|
||||
const TAB_EXCLUDE = '猜你|喜欢|下载|剧情|热播';
|
||||
const OCR_RETRY = 3;//ocr验证重试次数
|
||||
// const OCR_API = 'http://dm.mudery.com:10000';//ocr在线识别接口
|
||||
// const OCR_API = 'http://192.168.3.239:5705/parse/ocr';//ocr在线识别接口
|
||||
|
2
lib/drpy2.min.js
vendored
2
lib/drpy2.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user