generated from Aleks/xxaazza2z
上传文件至 lib
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"SiteUrl": "",
|
||||
"Domains": [
|
||||
"https://tv.yydsys.top",
|
||||
"https://tv.yydsys.cc",
|
||||
"https://tv.214521.xyz"
|
||||
],
|
||||
"SiteWord": "yyds",
|
||||
"SiteName": "多多",
|
||||
"Classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "1"
|
||||
},
|
||||
{
|
||||
"type_name": "剧集",
|
||||
"type_id": "2"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "3"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "4"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "20"
|
||||
},
|
||||
{
|
||||
"type_name": "短剧",
|
||||
"type_id": "5"
|
||||
}
|
||||
],
|
||||
"Filters": {
|
||||
"1": [
|
||||
{
|
||||
"name": "剧情",
|
||||
"value": [
|
||||
{
|
||||
"v": "喜剧",
|
||||
"n": "喜剧"
|
||||
},
|
||||
{
|
||||
"v": "爱情",
|
||||
"n": "爱情"
|
||||
},
|
||||
{
|
||||
"v": "恐怖",
|
||||
"n": "恐怖"
|
||||
},
|
||||
{
|
||||
"v": "动作",
|
||||
"n": "动作"
|
||||
},
|
||||
{
|
||||
"v": "科幻",
|
||||
"n": "科幻"
|
||||
},
|
||||
{
|
||||
"v": "剧情",
|
||||
"n": "剧情"
|
||||
},
|
||||
{
|
||||
"v": "战争",
|
||||
"n": "战争"
|
||||
},
|
||||
{
|
||||
"v": "警匪",
|
||||
"n": "警匪"
|
||||
},
|
||||
{
|
||||
"v"
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"规则名": "八号影视",
|
||||
"规则作者": "",
|
||||
"请求头参数": "User-Agent$手机#accept$text/html",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "0",
|
||||
"首页推荐链接": "http://www.bahaotv.com",
|
||||
"首页列表数组规则": "body&&.show-vod-list",
|
||||
"首页片单列表数组规则": ".myui-vodbox-content",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "http://www.bahaotv.com/vodshow/{cateId}--------{catePg}---.html",
|
||||
"分类名称": "电影&电视剧&动漫",
|
||||
"分类名称替换词": "movie&tvseries&anime",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".show-vod-list&&.myui-vodbox-content",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": ".title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "img&&src",
|
||||
"分类片单副标题": ".right&&Text",
|
||||
"分类片单链接加前缀": "http://www.bahaotv.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机#accept$text/html",
|
||||
"搜索链接": "http://www.bahaotv.com/vodsearch/-------------.html?wd={wd}",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".show-vod-list&&.myui-vodbox-content",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "img&&src",
|
||||
"搜索片单标题": ".title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".right&&Text",
|
||||
"搜索片单链接加前缀": "http://www.bahaotv.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
|
||||
"详情是否Jsoup写法": "1",
|
||||
"类型详情": "",
|
||||
"年代详情": "",
|
||||
"地区详情": "",
|
||||
"演员详情": ".detail-box&&.director,1&&Text!主演:",
|
||||
"简介详情": ".intro&&Text",
|
||||
"线路列表数组规则": ".nav-btn&&li",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&[id^=playlist]",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "http://www.bahaotv.com",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+1494
@@ -0,0 +1,1494 @@
|
||||
{ "cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
|
||||
|
||||
"class": [
|
||||
|
||||
{
|
||||
"type_name": "小姐姐",
|
||||
"type_id": "小姐姐"
|
||||
},
|
||||
{
|
||||
"type_name": "野外求生",
|
||||
"type_id": "野外求生"
|
||||
},
|
||||
{
|
||||
"type_name": "百家讲坛",
|
||||
"type_id": "百家讲坛"
|
||||
},
|
||||
{
|
||||
"type_name": "KEEP",
|
||||
"type_id": "keep健身"
|
||||
},
|
||||
{
|
||||
"type_name": "游泳",
|
||||
"type_id": "游泳教学"
|
||||
},
|
||||
{
|
||||
"type_name": "英雄联盟",
|
||||
"type_id": "英雄联盟"
|
||||
},
|
||||
{
|
||||
"type_name": "王者荣耀",
|
||||
"type_id": "王者荣耀"
|
||||
},
|
||||
{
|
||||
"type_name": "纪录片",
|
||||
"type_id": "纪录片"
|
||||
},
|
||||
{
|
||||
"type_name": "Discovery探索频道",
|
||||
"type_id": "Discovery探索频道"
|
||||
},
|
||||
{
|
||||
"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": "凡人修仙传"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"搞笑": [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"TVBox": [
|
||||
{
|
||||
"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": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "球星"
|
||||
},
|
||||
{
|
||||
"n": "梅西",
|
||||
"v": "梅西"
|
||||
},
|
||||
{
|
||||
"n": "C罗",
|
||||
"v": "C罗"
|
||||
},
|
||||
{
|
||||
"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": "NBA",
|
||||
"v": "NBA"
|
||||
},
|
||||
{
|
||||
"n": "詹姆斯",
|
||||
"v": "詹姆斯"
|
||||
},
|
||||
{
|
||||
"n": "库里",
|
||||
"v": "库里"
|
||||
},
|
||||
{
|
||||
"n": "杜兰特",
|
||||
"v": "杜兰特"
|
||||
},
|
||||
{
|
||||
"n": "UFC",
|
||||
"v": "UFC"
|
||||
},
|
||||
{
|
||||
"n": "斯诺克",
|
||||
"v": "斯诺克"
|
||||
},
|
||||
{
|
||||
"n": "网球",
|
||||
"v": "网球"
|
||||
},
|
||||
{
|
||||
"n": "F1",
|
||||
"v": "F1"
|
||||
},
|
||||
{
|
||||
"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": "tid",
|
||||
"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": "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": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "儿童"
|
||||
},
|
||||
{
|
||||
"n": "教育",
|
||||
"v": "儿童教育"
|
||||
},
|
||||
{
|
||||
"n": "歌曲",
|
||||
"v": "儿童歌曲"
|
||||
},
|
||||
{
|
||||
"n": "舞蹈",
|
||||
"v": "儿童舞蹈"
|
||||
},
|
||||
{
|
||||
"n": "成语故事",
|
||||
"v": "儿童成语故事"
|
||||
},
|
||||
{
|
||||
"n": "音乐",
|
||||
"v": "儿童音乐"
|
||||
},
|
||||
{
|
||||
"n": "儿童MV",
|
||||
"v": "儿童MV"
|
||||
},
|
||||
{
|
||||
"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": "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": "tid",
|
||||
"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": "滑稽戏"
|
||||
},
|
||||
{
|
||||
"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": "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": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "演唱会"
|
||||
},
|
||||
{
|
||||
"n": "周杰伦",
|
||||
"v": "周杰伦"
|
||||
},
|
||||
{
|
||||
"n": "陈奕迅",
|
||||
"v": "陈奕迅"
|
||||
},
|
||||
{
|
||||
"n": "Beyond",
|
||||
"v": "Beyond"
|
||||
},
|
||||
{
|
||||
"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": "周深"
|
||||
},
|
||||
{
|
||||
"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": "容祖儿"
|
||||
},
|
||||
{
|
||||
"n": "周传雄",
|
||||
"v": "周传雄"
|
||||
},
|
||||
{
|
||||
"n": "SHE",
|
||||
"v": "SHE"
|
||||
},
|
||||
{
|
||||
"n": "苏打绿",
|
||||
"v": "苏打绿"
|
||||
},
|
||||
{
|
||||
"n": "五月天",
|
||||
"v": "五月天"
|
||||
},
|
||||
{
|
||||
"n": "张国荣",
|
||||
"v": "张国荣"
|
||||
},
|
||||
{
|
||||
"n": "梅艳芳",
|
||||
"v": "梅艳芳"
|
||||
},
|
||||
{
|
||||
"n": "孙燕姿",
|
||||
"v": "孙燕姿"
|
||||
},
|
||||
{
|
||||
"n": "李健",
|
||||
"v": "李健"
|
||||
},
|
||||
{
|
||||
"n": "华晨宇",
|
||||
"v": "华晨宇"
|
||||
},
|
||||
{
|
||||
"n": "袁娅维",
|
||||
"v": "袁娅维"
|
||||
},
|
||||
{
|
||||
"n": "大张伟",
|
||||
"v": "大张伟"
|
||||
},
|
||||
{
|
||||
"n": "TFBOYS",
|
||||
"v": "TFBOYS"
|
||||
},
|
||||
{
|
||||
"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": "张艺兴"
|
||||
},
|
||||
{
|
||||
"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": "徐小凤"
|
||||
},
|
||||
{
|
||||
"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": "By2",
|
||||
"v": "By2"
|
||||
},
|
||||
{
|
||||
"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": "阿黛尔"
|
||||
},
|
||||
{
|
||||
"n": "BIGBANG",
|
||||
"v": "BIGBANG"
|
||||
},
|
||||
{
|
||||
"n": "LadyGaga",
|
||||
"v": "LadyGaga"
|
||||
},
|
||||
{
|
||||
"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,378 @@
|
||||
globalThis.getRandomItem = function(items) {
|
||||
return items[Math.random() * items.length | 0];
|
||||
}
|
||||
var rule = {
|
||||
title: '采集之王[合]',
|
||||
author: '道长',
|
||||
version: '20240706 beta17',
|
||||
update_info: ``.trim(),
|
||||
host: '',
|
||||
homeTid: '',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=#TruePage##page=fypage',
|
||||
classUrl: '/api.php/provide/vod/',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyfilter',
|
||||
filter_url: '{{fl.类型}}',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 20,
|
||||
search_limit: 10,
|
||||
searchable: 1,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
search_match: false,
|
||||
search_pic: true,
|
||||
预处理: $js.toString(() => {
|
||||
function getClasses(item) {
|
||||
let classes = [];
|
||||
if (item.class_name && item.class_url) {
|
||||
if (!/&|电影|电视剧|综艺|动漫[\u4E00-\u9FA5]+/.test(item.class_name)) {
|
||||
try {
|
||||
item.class_name = ungzip(item.class_name)
|
||||
} catch (e) {
|
||||
log(`不识别的class_name导致gzip解码失败:${e}`)
|
||||
return classes
|
||||
}
|
||||
}
|
||||
let names = item.class_name.split('&');
|
||||
let urls = item.class_url.split('&');
|
||||
let cnt = Math.min(names.length, urls.length);
|
||||
for (let i = 0; i < cnt; i++) {
|
||||
classes.push({
|
||||
'type_id': urls[i],
|
||||
'type_name': names[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
return classes
|
||||
}
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
rule.search_limit = 16;
|
||||
log('当前程序支持批量请求[batchFetch],搜索限制已设置为16');
|
||||
}
|
||||
let _url = rule.params;
|
||||
log(`传入参数:${_url}`);
|
||||
if (_url && typeof(_url) === 'string' && /^(http|file)/.test(_url)) {
|
||||
if (_url.includes('$')) {
|
||||
let _url_params = _url.split('$');
|
||||
_url = _url_params[0];
|
||||
rule.search_match = !!(_url_params[1]);
|
||||
if (_url_params.length > 2) {
|
||||
rule.search_pic = !!(_url_params[2]);
|
||||
}
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let _classes = [];
|
||||
rule.filter = {};
|
||||
rule.filter_def = {};
|
||||
json.forEach(it => {
|
||||
let _obj = {
|
||||
type_name: it.name,
|
||||
type_id: it.url,
|
||||
parse_url: it.parse_url || '',
|
||||
searchable: it.searchable !== 0,
|
||||
api: it.api || '',
|
||||
cate_exclude: it.cate_exclude || '',
|
||||
cate_excludes: it.cate_excludes || [],
|
||||
};
|
||||
_classes.push(_obj);
|
||||
try {
|
||||
let json1 = [];
|
||||
if (it.class_name && it.class_url) {
|
||||
json1 = getClasses(it);
|
||||
} else {
|
||||
json1 = JSON.parse(request(urljoin(_obj.type_id, _obj.api || rule.classUrl))).class;
|
||||
}
|
||||
if (_obj.cate_excludes && Array.isArray(_obj.cate_excludes) && _obj.cate_excludes.length > 0) {
|
||||
json1 = json1.filter(cl => !_obj.cate_excludes.includes(cl.type_name));
|
||||
} else if (_obj.cate_exclude) {
|
||||
json1 = json1.filter(cl => !new RegExp(_obj.cate_exclude, 'i').test(cl.type_name));
|
||||
}
|
||||
rule.filter[_obj.type_id] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": json1.map(i => {
|
||||
return {
|
||||
"n": i.type_name,
|
||||
'v': i.type_id
|
||||
}
|
||||
})
|
||||
}];
|
||||
if (json1.length > 0) {
|
||||
rule.filter_def[it.url] = {
|
||||
"类型": json1[0].type_id
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
rule.filter[it.url] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}]
|
||||
}];
|
||||
}
|
||||
});
|
||||
rule.classes = _classes;
|
||||
}
|
||||
}),
|
||||
class_parse: $js.toString(() => {
|
||||
input = rule.classes;
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let randomClass = getRandomItem(rule.classes);
|
||||
let _url = urljoin(randomClass.type_id, input);
|
||||
if (randomClass.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', randomClass.api)
|
||||
}
|
||||
try {
|
||||
let html = request(_url, {
|
||||
timeout: rule.timeout
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = randomClass.type_id + '$' + it.vod_id;
|
||||
it.vod_remarks = it.vod_remarks + '|' + randomClass.type_name;
|
||||
});
|
||||
} catch (e) {}
|
||||
}
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(MY_CATE, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === MY_CATE);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = MY_CATE + '$' + it.vod_id
|
||||
});
|
||||
}
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
if (orId === 'update_info') {
|
||||
VOD = {
|
||||
vod_content: rule.update_info.trim(),
|
||||
vod_name: '更新日志',
|
||||
type_name: '更新日志',
|
||||
vod_pic: 'https://resource-cdn.tuxiaobei.com/video/FtWhs2mewX_7nEuE51_k6zvg6awl.png',
|
||||
vod_remarks: `版本:${rule.version}`,
|
||||
vod_play_from: '道长在线',
|
||||
vod_play_url: '随机小视频$http://api.yujn.cn/api/zzxjj.php',
|
||||
};
|
||||
} else {
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(fyclass, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === fyclass);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
VOD = data[0];
|
||||
if (current_vod && current_vod.type_name) {
|
||||
VOD.vod_play_from = VOD.vod_play_from.split('$$$').map(it => current_vod.type_name + '|' + it).join('$$$')
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let canSearch = rule.classes.filter(it => it.searchable);
|
||||
let page = Number(MY_PAGE);
|
||||
page = (MY_PAGE - 1) % Math.ceil(canSearch.length / rule.search_limit) + 1;
|
||||
let truePage = Math.ceil(MY_PAGE / Math.ceil(canSearch.length / rule.search_limit));
|
||||
if (rule.search_limit) {
|
||||
let start = (page - 1) * rule.search_limit;
|
||||
let end = page * rule.search_limit;
|
||||
let t1 = new Date().getTime();
|
||||
let searchMode = typeof(batchFetch) === 'function' ? '批量' : '单个';
|
||||
log('start:' + start);
|
||||
log('end:' + end);
|
||||
log('搜索模式:' + searchMode);
|
||||
log('精准搜索:' + rule.search_match);
|
||||
log('强制获取图片:' + rule.search_pic);
|
||||
if (start < canSearch.length) {
|
||||
let search_classes = canSearch.slice(start, end);
|
||||
let urls = [];
|
||||
search_classes.forEach(it => {
|
||||
let _url = urljoin(it.type_id, input);
|
||||
if (it.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', it.api)
|
||||
}
|
||||
_url = _url.replace("#TruePage#", "" + truePage);
|
||||
urls.push(_url);
|
||||
});
|
||||
let results_list = [];
|
||||
let results = [];
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
let reqUrls = urls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets = batchFetch(reqUrls);
|
||||
let detailUrls = [];
|
||||
let detailUrlCount = 0;
|
||||
rets.forEach((ret, idx) => {
|
||||
let it = search_classes[idx];
|
||||
if (ret) {
|
||||
try {
|
||||
let json = JSON.parse(ret);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.site_name = it.type_name;
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
detailUrls.push(detailUrl);
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: false,
|
||||
detailUrlCount: detailUrlCount
|
||||
});
|
||||
detailUrlCount++;
|
||||
} else {
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: true
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
});
|
||||
let reqUrls2 = detailUrls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets2 = reqUrls2.length > 0 ? batchFetch(reqUrls2) : [];
|
||||
for (let k = 0; k < results_list.length; k++) {
|
||||
let result_data = results_list[k].data;
|
||||
if (!results_list[k].has_pic) {
|
||||
try {
|
||||
let detailJson = JSON.parse(rets2[results_list[k].detailUrlCount]);
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
result_data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${result_data[0].site_name}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(result_data);
|
||||
}
|
||||
} else {
|
||||
urls.forEach((_url, idx) => {
|
||||
let it = search_classes[idx];
|
||||
try {
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
try {
|
||||
let detailJson = JSON.parse(request(detailUrl));
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${it.type_id}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(data);
|
||||
}
|
||||
results = results.concat(data);
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
});
|
||||
}
|
||||
VODS = results;
|
||||
let t2 = new Date().getTime();
|
||||
log(`${searchMode}搜索:${urls.length}个站耗时:${(Number(t2) - Number(t1))}ms`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
lazy: $js.toString(() => {
|
||||
let parse_url = '';
|
||||
if (flag && flag.includes('|')) {
|
||||
let type_name = flag.split('|')[0];
|
||||
let current_vod = rule.classes.find(item => item.type_name === type_name);
|
||||
if (current_vod && current_vod.parse_url) {
|
||||
parse_url = current_vod.parse_url
|
||||
}
|
||||
}
|
||||
if (/\.(m3u8|mp4)/.test(input)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input
|
||||
}
|
||||
} else {
|
||||
if (parse_url.startsWith('json:')) {
|
||||
let purl = parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: JSON.parse(html).url
|
||||
}
|
||||
} else {
|
||||
input = parse_url + input;
|
||||
}
|
||||
}
|
||||
}),
|
||||
}
|
||||
Reference in New Issue
Block a user