Sync all projects
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
var rule = {
|
||||
title:'360影视',
|
||||
host:'https://www.360kan.com',
|
||||
homeUrl:'https://api.web.360kan.com/v1/rank?cat=2&size=9',
|
||||
detailUrl:'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
|
||||
searchUrl:'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
|
||||
url:'https://api.web.360kan.com/v1/filter/list?catid=fyclass&rank=rankhot&cat=&year=&area=&act=&size=35&pageno=fypage&callback=',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'电视剧&电影&综艺&动漫',
|
||||
class_url:'2&1&3&4',
|
||||
limit:5,
|
||||
multi:1,
|
||||
searchable:2,
|
||||
play_parse:true,
|
||||
lazy:'js:input=input.split("?")[0];log(input);',
|
||||
// 疑似t4专用的
|
||||
// lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
|
||||
推荐:'json:data;title;cover;comment;cat+ent_id;description',
|
||||
一级:'json:data.movies;title;cover;pubdate;id;description',
|
||||
二级:'',
|
||||
二级:'js:let html=JSON.parse(fetch(input,fetch_params));let data=html.data;let tilte=data.title;let img=data.cdncover;let vod_type=data.moviecategory.join(",");let area=data.area.join(",");let director=data.director.join(",");let actor=data.actor.join(",");let content=data.description;let base_vod={vod_id:input,vod_name:tilte,type_name:vod_type,vod_actor:actor,vod_director:director,vod_content:content,vod_remarks:area,vod_pic:urljoin2(input,img)};let delta=200;let vod_play={};let sites=data.playlink_sites;sites.forEach(function(site){let playList="";let vodItems=[];if(data.allupinfo){let total=parseInt(data.allupinfo[site]);for(let j=1;j<total;j+=delta){let end=Math.min(total,j+delta-1);let url2=buildUrl(input,{start:j,end:end,site:site});let vod_data=JSON.parse(fetch(url2),fetch_params).data;if(vod_data.allepidetail){vod_data=vod_data.allepidetail[site];vod_data.forEach(function(item,index){vodItems.push((item.playlink_num||"")+"$"+urlDeal(item.url||""))})}else{vod_data=vod_data.defaultepisode;vod_data.forEach(function(item,index){vodItems.push((item.period||"")+(item.name||"")+"$"+urlDeal(item.url)||"")})}}}else{let item=data.playlinksdetail[site];vodItems.push((item.sort||"")+"$"+urlDeal(item.default_url||""))}if(vodItems.length>0){playList=vodItems.join("#")}if(playList.length<1){return}vod_play[site]=playList});let tabs=Object.keys(vod_play);let playUrls=[];for(let id in tabs){print("id:"+id);playUrls.push(vod_play[tabs[id]])}if(tabs.length>0){let vod_play_from=tabs.join("$$$");let vod_play_url=playUrls.join("$$$");base_vod.vod_play_from=vod_play_from;base_vod.vod_play_url=vod_play_url}VOD=base_vod;',
|
||||
搜索:'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
muban.vfed.二级.title = 'h1&&Text;.fed-col-md3:eq(0)&&Text';
|
||||
muban.vfed.二级.desc = '.fed-col-md3:eq(3)&&Text;;;.fed-col-md6--span:eq(0)&&Text;.fed-col-md6--span:eq(1)&&Text';
|
||||
muban.vfed.二级.tabs = '.nav-tabs&&li';
|
||||
muban.vfed.二级.lists = '.myui-content__list:eq(#id)&&li';
|
||||
var rule = {
|
||||
title: '58动漫', // 原"幻听网听书"网站 已更名为 "58动漫"
|
||||
模板: 'vfed',
|
||||
host: 'http://www.ting38.com',
|
||||
// url:'/ting/fyclass-fypage.html',
|
||||
url: '/search.php?page=fypage&searchtype=5&tid=fyclassfyfilter',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '&order={{fl.by}}&area={{fl.area}}&year={{fl.year}}',
|
||||
filter: {
|
||||
"1": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "more", "v": "more" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "time" }, { "n": "人气", "v": "hit" }, { "n": "推荐", "v": "commend" }] }],
|
||||
"2": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "more", "v": "more" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "time" }, { "n": "人气", "v": "hit" }, { "n": "推荐", "v": "commend" }] }],
|
||||
"3": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "more", "v": "more" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "time" }, { "n": "人气", "v": "hit" }, { "n": "推荐", "v": "commend" }] }],
|
||||
"4": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "大陆", "v": "大陆" }, { "n": "香港", "v": "香港" }, { "n": "台湾", "v": "台湾" }, { "n": "日本", "v": "日本" }, { "n": "韩国", "v": "韩国" }, { "n": "欧美", "v": "欧美" }, { "n": "泰国", "v": "泰国" }, { "n": "其他", "v": "其他" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "more", "v": "more" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "time" }, { "n": "人气", "v": "hit" }, { "n": "推荐", "v": "commend" }] }]
|
||||
},
|
||||
filter_def: {
|
||||
1: { cateId: '1' },
|
||||
2: { cateId: '2' },
|
||||
3: { cateId: '3' },
|
||||
4: { cateId: '4' }
|
||||
},
|
||||
searchUrl: '/search.php?page=fypage&searchword=**&searchtype=',
|
||||
搜索: '.fed-list-item;a&&title;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
lazy: '`js:input = request(input).match(/var now="(.*?)"/)[1];',
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
var rule = {
|
||||
title:'A8音乐',
|
||||
host:'http://v.a8.com',
|
||||
url:'/category/fyclass?p=fypage',
|
||||
searchUrl:'/search?t=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA',
|
||||
},
|
||||
class_parse: '.categorys-inner li:gt(1):lt(7);a&&Text;a&&href;.*/(\\d+)',
|
||||
timeout:5000,
|
||||
limit:6,
|
||||
play_parse:true,
|
||||
lazy:'js:let html=request(input);let purl=jsp.pdfh(html,".video-js&&source&&src");input={jx:0,url:purl,parse:0}',
|
||||
推荐: '.v-list-body:eq(1)&&.v_item;*;*;*;*',
|
||||
一级: '.list-div&&.v_item;img&&alt;img&&data-original;.v-time&&Text;a&&href',
|
||||
二级:'*',
|
||||
搜索:'.v-list-body&&.v_item;*;*;*;*',
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
// https://m.agemys.org/#/
|
||||
|
||||
var rule = {
|
||||
title: 'AGE动漫',
|
||||
host: 'https://api.agemys.org',
|
||||
homeUrl: '/v2/update?page=1&size=30',
|
||||
url: '/v2/catalog?genre=fyclass&fyfilter&page=fypage&size=10',
|
||||
searchUrl: '/v2/search?query=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"all": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "all" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "all" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "all" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "all" }, { "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": "by", "name": "排序", "value": [{ "n": "更新时间", "v": "time" }, { "n": "名称", "v": "name" }, { "n": "点击量", "v": "hits" }] }],
|
||||
"TV": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "all" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "all" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "all" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "all" }, { "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": "by", "name": "排序", "value": [{ "n": "更新时间", "v": "更新时间" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }],
|
||||
"剧场版": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "all" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "all" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "all" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "all" }, { "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": "by", "name": "排序", "value": [{ "n": "更新时间", "v": "更新时间" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }],
|
||||
"OVA": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "all" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "all" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "all" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "all" }, { "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": "by", "name": "排序", "value": [{ "n": "更新时间", "v": "更新时间" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }]
|
||||
},
|
||||
filter_url: 'label={{fl.class or "all"}}&letter={{fl.letter or "all"}}&order={{fl.by or "time"}}®ion={{fl.area or "all"}}&resource=all&season=all&status=all&year={{fl.year or "all"}}',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: 'TV&剧场版&OVA',
|
||||
class_url: 'TV&剧场版&OVA',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
let purl = input.split("|")[0];
|
||||
let from = input.split("|")[1];
|
||||
let referer = 'https://m.agemys.org/';
|
||||
if(/99m3u8|tkm3u8|hnm3u8|lzm3u8|wolong|wjm3u8|sdm3u8|kbm3u8|bjm3u8|xkm3u8|tpm3u8/.test(from)){
|
||||
let purl2 = request('https://zj.sp-flv.com:8443/?url=' + purl, {
|
||||
headers: {
|
||||
"Referer": referer
|
||||
}
|
||||
}).match(/r video_url.*= \'(.*?)\'/)[1];
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl2,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': referer
|
||||
})
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: 'https://vip.sp-flv.com:8443/?url=' + purl,
|
||||
parse: 1,
|
||||
header: JSON.stringify({
|
||||
'referer': referer
|
||||
})
|
||||
}
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
推荐: 'json:videos;Title;PicSmall;NewTitle;AID',
|
||||
一级: 'json:videos;name;cover;uptodate;id',
|
||||
二级: `js:
|
||||
try {
|
||||
let html = JSON.parse(request(input));
|
||||
let node = html.video;
|
||||
let episodes = node.playlists;
|
||||
VOD = {
|
||||
vod_id: node["id"],
|
||||
vod_name: node["name"],
|
||||
vod_pic: node["cover"],
|
||||
type_name: node["tags"],
|
||||
vod_year: node["year"],
|
||||
vod_area: node["area"],
|
||||
vod_remarks: node["uptodate"],
|
||||
vod_actor: node["company"],
|
||||
vod_director: node["writer"],
|
||||
vod_content: node["intro_clean"],
|
||||
};
|
||||
if (typeof play_url === "undefined") {
|
||||
var play_url = "";
|
||||
}
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
let kplayList = [];
|
||||
Object.keys(episodes).forEach(function(key) {
|
||||
playFrom.append(key);
|
||||
kplayList = episodes[key].map(function(it) {
|
||||
return it[0] + "$" + play_url + urlencode(it[1] + "|" + key)
|
||||
}).join("#")
|
||||
playList.append(kplayList);
|
||||
});
|
||||
let vod_play_from = playFrom.join("$$$");
|
||||
let vod_play_url = playList.join("$$$");
|
||||
VOD["vod_play_from"] = vod_play_from;
|
||||
VOD["vod_play_url"] = vod_play_url;
|
||||
log(VOD);
|
||||
} catch (e) {
|
||||
log("获取二级详情页发生错误:" + e.message);
|
||||
}
|
||||
`,
|
||||
detailUrl: '/v2/detail/fyid',
|
||||
搜索: 'json:data.videos;name;cover;uptodate;id;intro',
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
muban.海螺3.二级.title = '.hl-dc-title&&Text;.hl-col-xs-12.hl-col-sm-4--em:eq(2)&&Text';
|
||||
muban.海螺3.二级.desc = '.hl-col-xs-12:eq(2)&&Text;.hl-col-xs-12.hl-col-sm-4:(0)&&Text;.hl-col-xs-12.hl-col-sm-4:(1)&&Text;.hl-col-xs-12:eq(3)&&Text;.hl-col-xs-12:eq(4)&&Text';
|
||||
var rule = {
|
||||
title: 'AnFuns动漫',
|
||||
模板: '海螺3',
|
||||
host: 'https://www.anfuns.cc',
|
||||
cate_exclude: '最新|排行',
|
||||
// url:'/type/fyclass-fypage.html',
|
||||
url: '/show/fyclassfyfilter.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '---{{fl.year}}{{fl.by}}/page/fypage',
|
||||
filter: {
|
||||
"1": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "/by/time" }, { "n": "最热", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"2": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "/by/time" }, { "n": "最热", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"3": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "/by/time" }, { "n": "最热", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"4": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "/by/time" }, { "n": "最热", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }]
|
||||
},
|
||||
searchUrl: '/search/page/fypage/wd/**.html',
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/m3u8|mp4/.test(url)) {
|
||||
input = url
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 3个set-Cookie
|
||||
|
||||
var rule = {
|
||||
title:'Anime1动畫',
|
||||
host:'https://anime1.me',
|
||||
url: '/fyclass',
|
||||
detailUrl:'/?cat=fyid',
|
||||
searchUrl: '/page/fypage?s=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{'User-Agent': 'PC_UA'},
|
||||
timeout:5000,
|
||||
class_name:'連載中&2024&2023&2022&2021&2020&2019&2018&更早',
|
||||
class_url:'連載中&2024&2023&2022&2021&2020&2019&2018&2017',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
var apiurl = 'https://v.anime1.me/api';
|
||||
var html = request(apiurl, {
|
||||
headers: {
|
||||
'Referer': HOST,
|
||||
},
|
||||
body: 'd=' + input,
|
||||
method: 'POST',
|
||||
withHeaders: true
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
print(json);
|
||||
log(Object.keys(json));
|
||||
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
// 3个set-Cookie
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(';');
|
||||
}
|
||||
cookie = cookie.split(';').filter(function(it) {
|
||||
return ['e', 'p', 'h'].includes(it.split('=')[0])
|
||||
}).join(';');
|
||||
log(cookie);
|
||||
var purl = JSON.parse(json.body).s[0].src;
|
||||
if (purl.startsWith('/')) {
|
||||
purl = 'https:' + purl
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST,
|
||||
'Cookie': cookie,
|
||||
'user-agent': PC_UA
|
||||
}),
|
||||
}
|
||||
`,
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[2].includes('連載中');
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
|
||||
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
|
||||
else return x[3] == MY_CATE;
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
|
||||
var html = request(input);
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var vid = input.split('=')[1];
|
||||
let playKeys = Object.values(list).find(function(x) {
|
||||
return x[0] === parseInt(vid);
|
||||
});
|
||||
VOD = {
|
||||
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
vod_id: playKeys[0],
|
||||
vod_name: playKeys[1],
|
||||
vod_content: playKeys[2],
|
||||
vod_year: playKeys[3],
|
||||
type_name: playKeys[4],
|
||||
vod_actor: playKeys[5],
|
||||
};
|
||||
var pageurl = pd(html, '.cat-links&&a&&href');
|
||||
var pagenum = 1;
|
||||
let vod_tab_list = [];
|
||||
let vlist = [];
|
||||
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
|
||||
let phtml = request(pageurl + '/page/' + pagenum);
|
||||
let new_vod_list = [];
|
||||
let vodList = [];
|
||||
vodList = pdfa(phtml, '.site-main&&article');
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
|
||||
let purl = pd(it, '.video-js&&data-apireq');
|
||||
new_vod_list.push(ptitle + '$' + purl);
|
||||
}
|
||||
vlist = vlist.concat(new_vod_list);
|
||||
try {
|
||||
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
|
||||
} catch(e) {}
|
||||
}
|
||||
let vlist2 = vlist.reverse().join("#");
|
||||
vod_tab_list.push(vlist2);
|
||||
VOD.vod_play_from = '道长在线';
|
||||
VOD.vod_play_url = vod_tab_list.join("$$$");
|
||||
`,
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var wd = input.split('=')[1];
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[1].includes(wd);
|
||||
});
|
||||
log(playKeys);
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,36 @@
|
||||
// 道长 drpy仓库 https://gitcode.net/qq_32394351/dr_py
|
||||
// 道长 drpy安卓本地搭建说明 https://code.gitlink.org.cn/api/v1/repos/hjdhnx/dr_py/blob/master/%E5%AE%89%E5%8D%93%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E8%AF%B4%E6%98%8E.md
|
||||
// 道长 drpy写源 模板规则说明 https://gitcode.net/supertlo/dr_py#%E6%A8%A1%E6%9D%BF%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E
|
||||
// 道长 drpy写源 套模模版 https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
|
||||
// 道长 drpy写源 影片教程 http://101.34.67.237:5244/%E6%95%99%E8%82%B2/drpy
|
||||
// 道长 drpy写源 影片教程(m3u8切片) https://freedrpy.run.goorm.io/txt/jc/playlist.m3u8
|
||||
// 海阔下载 https://haikuo.lanzoui.com/u/GoldRiver
|
||||
// Pluto Player官方TG https://t.me/PlutoPlayer
|
||||
// Pluto Player官方TG https://t.me/PlutoPlayerChannel
|
||||
|
||||
// pluto 播放正常
|
||||
// 俊老的壳或PythonBox 在rules新增底下设定 即可正常播放
|
||||
// {"host":"www.djuu.com","rule":["mp4.djuu.com"]},
|
||||
|
||||
var rule = {
|
||||
title:'DJ音乐',
|
||||
host:'http://www.djuu.com',
|
||||
homeUrl:'/exclusive/115_1.html',//网站的首页链接,可以是完整路径或者相对路径,用于分类获取和推荐获取 fyclass是分类标签 fypage是页数
|
||||
url:'/djlist/fyclass_fypage.html',
|
||||
searchUrl:'/search?musicname=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
class_parse:'#top_banner_bg div;a&&Text;a&&href;/djlist/(\\d+)_1.html',
|
||||
headers:{
|
||||
'User-Agent':'PC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
一级:'.list_musiclist tr:gt(0);a&&title;img&&src;.cor999:eq(1)&&Text;a&&href',
|
||||
二级:'*',
|
||||
搜索:'*;*;*;.sc_1&&Text;*',
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// http://www.ntdm.tv
|
||||
var rule = {
|
||||
title: 'NT动漫',
|
||||
host: 'http://www.ntdm8.com',
|
||||
homeUrl: '/type/riben.html',
|
||||
// url:'/show/fyclass--------fypage---.html',
|
||||
url: '/show/fyclassfyfilter.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '--{{fl.by}}-{{fl.class}}--{{fl.letter}}---fypage---{{fl.year}}',
|
||||
filter: {
|
||||
"riben": [{ "key": "year", "name": "年份:", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000以前" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "letter", "name": "字母:", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }, { "n": "0~9", "v": "0~9" }] }, { "key": "by", "name": "排序:", "value": [{ "n": "更新时间", "v": "time" }, { "n": "人气", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"zhongguo": [{ "key": "year", "name": "年份:", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000以前" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "letter", "name": "字母:", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }, { "n": "0~9", "v": "0~9" }] }, { "key": "by", "name": "排序:", "value": [{ "n": "更新时间", "v": "time" }, { "n": "人气", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"omei": [{ "key": "year", "name": "年份:", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000以前" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "letter", "name": "字母:", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }, { "n": "0~9", "v": "0~9" }] }, { "key": "by", "name": "排序:", "value": [{ "n": "更新时间", "v": "time" }, { "n": "人气", "v": "hits" }, { "n": "评分", "v": "score" }] }]
|
||||
},
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
class_parse: '.search-tag li;a&&Text;a&&href;.*/(\\w+).html',
|
||||
play_parse: true,
|
||||
detailUrl: '',
|
||||
lazy: "",
|
||||
limit: 6,
|
||||
推荐: '*',
|
||||
一级: '.blockcontent1&&.blockdif2;img&&alt;img&&src;.newname&&Text;a&&href',
|
||||
二级访问前: '',
|
||||
二级: {
|
||||
"title": "h4&&Text;.detail_imform_value:eq(6)&&Text",
|
||||
"img": ".poster&&src",
|
||||
"desc": ".detail_imform_kv:eq(0)&&Text;.detail_imform_value:eq(5)&&Text;.detail_imform_value:eq(2)&&Text;.detail_imform_kv:eq(0)&&Text;.detail_imform_kv:eq(3)&&Text",
|
||||
"content": ".detail_imform_desc_pre&&Text",
|
||||
"tabs": "#menu0&&li",
|
||||
"lists": ".movurl:eq(#id)&&li"
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
|
||||
var rule = {
|
||||
title: 'NyaFun',
|
||||
模板:'短视2',
|
||||
host: 'https://www.nyafun.net',
|
||||
homeUrl:'/map.html',
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
class_name:'番剧&剧场',
|
||||
class_url:'2&1',
|
||||
detailUrl:'/bangumi/fyid.html',
|
||||
推荐:'.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
double: false, // 推荐内容是否双层定位
|
||||
}
|
||||
+1429
@@ -0,0 +1,1429 @@
|
||||
var rule = {
|
||||
title: '奇珍异兽[官]',
|
||||
host: 'https://www.iqiyi.com',
|
||||
homeUrl: '',
|
||||
// detailUrl:'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid=fyid&size=2000&page=1',
|
||||
detailUrl: 'https://pcw-api.iqiyi.com/video/video/videoinfowithuser/fyid?agent_type=1&authcookie=&subkey=fyid&subscribe=1',
|
||||
searchUrl: 'https://search.video.iqiyi.com/o?if=html5&key=**&pageNum=fypage&pos=1&pageSize=24&site=iqiyi',
|
||||
searchable: 2,
|
||||
multi: 1,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
'1': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": 2025
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": 2024
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '华语',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '香港地区',
|
||||
'v': 28997
|
||||
}, {
|
||||
'n': '美国',
|
||||
'v': 2
|
||||
}, {
|
||||
'n': '欧洲',
|
||||
'v': 3
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': 4
|
||||
}, {
|
||||
'n': '日本',
|
||||
'v': 308
|
||||
}, {
|
||||
'n': '泰国',
|
||||
'v': 1115
|
||||
}, {
|
||||
'n': '印度',
|
||||
'v': 28999
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 5
|
||||
}]
|
||||
}, {
|
||||
'key': '18001',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '喜剧',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '爱情',
|
||||
'v': 6
|
||||
}, {
|
||||
'n': '动作',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '枪战',
|
||||
'v': 131
|
||||
}, {
|
||||
'n': '犯罪',
|
||||
'v': 291
|
||||
}, {
|
||||
'n': '惊悚',
|
||||
'v': 128
|
||||
}, {
|
||||
'n': '恐怖',
|
||||
'v': 10
|
||||
}, {
|
||||
'n': '悬疑',
|
||||
'v': 289
|
||||
}, {
|
||||
'n': '动画',
|
||||
'v': 12
|
||||
}, {
|
||||
'n': '家庭',
|
||||
'v': 27356
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': 1284
|
||||
}, {
|
||||
'n': '魔幻',
|
||||
'v': 129
|
||||
}, {
|
||||
'n': '科幻',
|
||||
'v': 9
|
||||
}, {
|
||||
'n': '战争',
|
||||
'v': 7
|
||||
}, {
|
||||
'n': '青春',
|
||||
'v': 130
|
||||
}]
|
||||
}, {
|
||||
'key': '27396',
|
||||
'name': '规格',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '巨制',
|
||||
'v': 27397
|
||||
}, {
|
||||
'n': '院线',
|
||||
'v': 27815
|
||||
}, {
|
||||
'n': '独播',
|
||||
'v': 30149
|
||||
}, {
|
||||
'n': '网络电影',
|
||||
'v': 27401
|
||||
}]
|
||||
}],
|
||||
'2': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '内地',
|
||||
'v': 15
|
||||
}, {
|
||||
'n': '港剧',
|
||||
'v': 16
|
||||
}, {
|
||||
'n': '韩剧',
|
||||
'v': 17
|
||||
}, {
|
||||
'n': '美剧',
|
||||
'v': 18
|
||||
}, {
|
||||
'n': '日剧',
|
||||
'v': 309
|
||||
}, {
|
||||
'n': '泰剧',
|
||||
'v': 1114
|
||||
}, {
|
||||
'n': '台湾地区',
|
||||
'v': 1117
|
||||
}, {
|
||||
'n': '英剧',
|
||||
'v': 28916
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 19
|
||||
}]
|
||||
}, {
|
||||
'key': '18003',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '自制',
|
||||
'v': 11992
|
||||
}, {
|
||||
'n': '古装',
|
||||
'v': 24
|
||||
}, {
|
||||
'n': '言情',
|
||||
'v': 20
|
||||
}, {
|
||||
'n': '武侠',
|
||||
'v': 23
|
||||
}, {
|
||||
'n': '偶像',
|
||||
'v': 30
|
||||
}, {
|
||||
'n': '家庭',
|
||||
'v': 1654
|
||||
}, {
|
||||
'n': '青春',
|
||||
'v': 1653
|
||||
}, {
|
||||
'n': '都市',
|
||||
'v': 24064
|
||||
}, {
|
||||
'n': '喜剧',
|
||||
'v': 135
|
||||
}, {
|
||||
'n': '战争',
|
||||
'v': 27916
|
||||
}, {
|
||||
'n': '军旅',
|
||||
'v': 1655
|
||||
}, {
|
||||
'n': '谍战',
|
||||
'v': 290
|
||||
}, {
|
||||
'n': '悬疑',
|
||||
'v': 32
|
||||
}, {
|
||||
'n': '罪案',
|
||||
'v': 149
|
||||
}, {
|
||||
'n': '穿越',
|
||||
'v': 148
|
||||
}, {
|
||||
'n': '宫廷',
|
||||
'v': 139
|
||||
}, {
|
||||
'n': '历史',
|
||||
'v': 21
|
||||
}, {
|
||||
'n': '神话',
|
||||
'v': 145
|
||||
}, {
|
||||
'n': '科幻',
|
||||
'v': 34
|
||||
}, {
|
||||
'n': '年代',
|
||||
'v': 27
|
||||
}, {
|
||||
'n': '农村',
|
||||
'v': 29
|
||||
}, {
|
||||
'n': '商战',
|
||||
'v': 140
|
||||
}, {
|
||||
'n': '剧情',
|
||||
'v': 24063
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': 27881
|
||||
}, {
|
||||
'n': '网剧',
|
||||
'v': 24065
|
||||
}, {
|
||||
'n': '竖短片',
|
||||
'v': 32839
|
||||
}]
|
||||
}],
|
||||
'3': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '国内',
|
||||
'v': 20323
|
||||
}, {
|
||||
'n': '国外',
|
||||
'v': 20324
|
||||
}]
|
||||
}, {
|
||||
'key': '18004',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '人文',
|
||||
'v': 70
|
||||
}, {
|
||||
'n': '美食',
|
||||
'v': 33908
|
||||
}, {
|
||||
'n': '医疗',
|
||||
'v': 33924
|
||||
}, {
|
||||
'n': '自然',
|
||||
'v': 33933
|
||||
}, {
|
||||
'n': '萌宠',
|
||||
'v': 33945
|
||||
}, {
|
||||
'n': '财经',
|
||||
'v': 33953
|
||||
}, {
|
||||
'n': '罪案',
|
||||
'v': 33960
|
||||
}, {
|
||||
'n': '竞技',
|
||||
'v': 33967
|
||||
}, {
|
||||
'n': '灾难',
|
||||
'v': 33974
|
||||
}, {
|
||||
'n': '军事',
|
||||
'v': 72
|
||||
}, {
|
||||
'n': '历史',
|
||||
'v': 74
|
||||
}, {
|
||||
'n': '探险',
|
||||
'v': 73
|
||||
}, {
|
||||
'n': '社会',
|
||||
'v': 71
|
||||
}, {
|
||||
'n': '科技',
|
||||
'v': 28119
|
||||
}, {
|
||||
'n': '旅游',
|
||||
'v': 310
|
||||
}]
|
||||
}, {
|
||||
'key': '28467',
|
||||
'name': '出品方',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': 'BBC',
|
||||
'v': 28468
|
||||
}, {
|
||||
'n': '美国历史频道',
|
||||
'v': 28470
|
||||
}, {
|
||||
'n': '探索频道',
|
||||
'v': 28471
|
||||
}, {
|
||||
'n': '央视记录',
|
||||
'v': 28472
|
||||
}, {
|
||||
'n': '北京纪实频道',
|
||||
'v': 28473
|
||||
}, {
|
||||
'n': '上海纪实频道',
|
||||
'v': 28474
|
||||
}, {
|
||||
'n': '朗思文化',
|
||||
'v': 28476
|
||||
}, {
|
||||
'n': 'CNEX',
|
||||
'v': 28477
|
||||
}, {
|
||||
'n': '五星传奇',
|
||||
'v': 28478
|
||||
}, {
|
||||
'n': 'IMG',
|
||||
'v': 28479
|
||||
}, {
|
||||
'n': 'NHK',
|
||||
'v': 28480
|
||||
}, {
|
||||
'n': '爱奇艺出品',
|
||||
'v': 31283
|
||||
}, {
|
||||
'n': 'Netflix',
|
||||
'v': 31286
|
||||
}]
|
||||
}, {
|
||||
'key': '29076',
|
||||
'name': '片种',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '纪录电影',
|
||||
'v': 29077
|
||||
}, {
|
||||
'n': '系列纪录片',
|
||||
'v': 29078
|
||||
}, {
|
||||
'n': '网络纪录片',
|
||||
'v': 29082
|
||||
}, {
|
||||
'n': '纪实栏目',
|
||||
'v': 29083
|
||||
}]
|
||||
}, {
|
||||
'key': '31294',
|
||||
'name': '时长',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '微纪录',
|
||||
'v': 29079
|
||||
}, {
|
||||
'n': '长纪录',
|
||||
'v': 29080
|
||||
}, {
|
||||
'n': '短纪录',
|
||||
'v': 29081
|
||||
}]
|
||||
}],
|
||||
'4': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '中国大陆',
|
||||
'v': 37
|
||||
}, {
|
||||
'n': '日本',
|
||||
'v': 38
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': 1106
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': 30218
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 40
|
||||
}]
|
||||
}, {
|
||||
'key': '30219',
|
||||
'name': '版本',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '动画',
|
||||
'v': 30220
|
||||
}, {
|
||||
'n': '特摄',
|
||||
'v': 30223
|
||||
}, {
|
||||
'n': '布袋戏',
|
||||
'v': 30224
|
||||
}, {
|
||||
'n': '特别篇',
|
||||
'v': 32782
|
||||
}, {
|
||||
'n': '动态漫画',
|
||||
'v': 32783
|
||||
}, {
|
||||
'n': '动画电影',
|
||||
'v': 32784
|
||||
}, {
|
||||
'n': '竖版视频',
|
||||
'v': 32785
|
||||
}, {
|
||||
'n': '轻动画',
|
||||
'v': 33482
|
||||
}, {
|
||||
'n': '短剧',
|
||||
'v': 33483
|
||||
}]
|
||||
}, {
|
||||
'key': '30225',
|
||||
'name': '风格',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '搞笑',
|
||||
'v': 30230
|
||||
}, {
|
||||
'n': '热血',
|
||||
'v': 30232
|
||||
}, {
|
||||
'n': '催泪',
|
||||
'v': 30233
|
||||
}, {
|
||||
'n': '治愈',
|
||||
'v': 30234
|
||||
}, {
|
||||
'n': '励志',
|
||||
'v': 30237
|
||||
}, {
|
||||
'n': '机战',
|
||||
'v': 30241
|
||||
}, {
|
||||
'n': '恋爱',
|
||||
'v': 30243
|
||||
}, {
|
||||
'n': '科幻',
|
||||
'v': 30245
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': 30247
|
||||
}, {
|
||||
'n': '推理',
|
||||
'v': 30248
|
||||
}, {
|
||||
'n': '校园',
|
||||
'v': 30249
|
||||
}, {
|
||||
'n': '日常',
|
||||
'v': 30252
|
||||
}, {
|
||||
'n': '历史',
|
||||
'v': 30254
|
||||
}, {
|
||||
'n': '美食',
|
||||
'v': 30255
|
||||
}, {
|
||||
'n': '职场',
|
||||
'v': 30256
|
||||
}, {
|
||||
'n': '偶像',
|
||||
'v': 30258
|
||||
}, {
|
||||
'n': '泡面',
|
||||
'v': 30265
|
||||
}, {
|
||||
'n': '冒险',
|
||||
'v': 30267
|
||||
}, {
|
||||
'n': '竞技',
|
||||
'v': 30268
|
||||
}, {
|
||||
'n': '合家欢',
|
||||
'v': 30270
|
||||
}, {
|
||||
'n': '武侠',
|
||||
'v': 32792
|
||||
}, {
|
||||
'n': '玄幻',
|
||||
'v': 32793
|
||||
}]
|
||||
}, {
|
||||
'key': '32795',
|
||||
'name': '新类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '轻小说改编',
|
||||
'v': 32796
|
||||
}, {
|
||||
'n': '漫画改编',
|
||||
'v': 32797
|
||||
}, {
|
||||
'n': '游戏改编',
|
||||
'v': 32798
|
||||
}, {
|
||||
'n': '原创',
|
||||
'v': 32799
|
||||
}]
|
||||
}],
|
||||
'6': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '内地',
|
||||
'v': 151
|
||||
}, {
|
||||
'n': '港台',
|
||||
'v': 152
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': 33306
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': 154
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 1113
|
||||
}]
|
||||
}, {
|
||||
'key': '18014',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '播报',
|
||||
'v': 155
|
||||
}, {
|
||||
'n': '访谈',
|
||||
'v': 156
|
||||
}, {
|
||||
'n': '游戏',
|
||||
'v': 158
|
||||
}, {
|
||||
'n': '晚会',
|
||||
'v': 292
|
||||
}, {
|
||||
'n': '曲艺',
|
||||
'v': 293
|
||||
}, {
|
||||
'n': '脱口秀',
|
||||
'v': 2118
|
||||
}, {
|
||||
'n': '真人秀',
|
||||
'v': 2224
|
||||
}, {
|
||||
'n': '竞技',
|
||||
'v': 30278
|
||||
}, {
|
||||
'n': '爱奇艺出品',
|
||||
'v': 30279
|
||||
}, {
|
||||
'n': '竞演',
|
||||
'v': 33860
|
||||
}]
|
||||
}, {
|
||||
'key': '33162',
|
||||
'name': '题材',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '音乐',
|
||||
'v': 33163
|
||||
}, {
|
||||
'n': '舞蹈',
|
||||
'v': 33172
|
||||
}, {
|
||||
'n': '文化',
|
||||
'v': 33173
|
||||
}, {
|
||||
'n': '美食',
|
||||
'v': 33182
|
||||
}, {
|
||||
'n': '伦理',
|
||||
'v': 33184
|
||||
}, {
|
||||
'n': '相亲',
|
||||
'v': 33193
|
||||
}, {
|
||||
'n': '纪实',
|
||||
'v': 33195
|
||||
}, {
|
||||
'n': '生活',
|
||||
'v': 33196
|
||||
}, {
|
||||
'n': '亲子',
|
||||
'v': 33197
|
||||
}, {
|
||||
'n': '少儿',
|
||||
'v': 33198
|
||||
}, {
|
||||
'n': '财经',
|
||||
'v': 33199
|
||||
}, {
|
||||
'n': '健康',
|
||||
'v': 33200
|
||||
}, {
|
||||
'n': '时尚',
|
||||
'v': 33203
|
||||
}, {
|
||||
'n': '旅游',
|
||||
'v': 33205
|
||||
}, {
|
||||
'n': '教育',
|
||||
'v': 33206
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 33220
|
||||
}, {
|
||||
'n': '爱情',
|
||||
'v': 33316
|
||||
}, {
|
||||
'n': '搞笑',
|
||||
'v': 33317
|
||||
}, {
|
||||
'n': '益智',
|
||||
'v': 33318
|
||||
}, {
|
||||
'n': '职场',
|
||||
'v': 33319
|
||||
}, {
|
||||
'n': '语言',
|
||||
'v': 33530
|
||||
}, {
|
||||
'n': '辩论',
|
||||
'v': 33531
|
||||
}, {
|
||||
'n': '演讲',
|
||||
'v': 33843
|
||||
}]
|
||||
}],
|
||||
'5': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': 'three_category_id',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '内地',
|
||||
'v': 221
|
||||
}, {
|
||||
'n': '港台',
|
||||
'v': 220
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': 219
|
||||
}, {
|
||||
'n': '日韩',
|
||||
'v': 218
|
||||
}, {
|
||||
'n': '拉美',
|
||||
'v': 217
|
||||
}, {
|
||||
'n': '亚洲地区',
|
||||
'v': 216
|
||||
}, {
|
||||
'n': '非洲',
|
||||
'v': 215
|
||||
}]
|
||||
}, {
|
||||
'key': '18009',
|
||||
'name': '语种',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '普通话',
|
||||
'v': 91
|
||||
}, {
|
||||
'n': '粤语',
|
||||
'v': 92
|
||||
}, {
|
||||
'n': '闽南语',
|
||||
'v': 93
|
||||
}, {
|
||||
'n': '英语',
|
||||
'v': 94
|
||||
}, {
|
||||
'n': '日语',
|
||||
'v': 95
|
||||
}, {
|
||||
'n': '韩语',
|
||||
'v': 96
|
||||
}, {
|
||||
'n': '其它',
|
||||
'v': 97
|
||||
}]
|
||||
}, {
|
||||
'key': '23554',
|
||||
'name': '音乐类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '单曲MV',
|
||||
'v': 23556
|
||||
}, {
|
||||
'n': '单曲现场',
|
||||
'v': 23557
|
||||
}, {
|
||||
'n': '演唱会',
|
||||
'v': 23558
|
||||
}, {
|
||||
'n': '新闻',
|
||||
'v': 23559
|
||||
}, {
|
||||
'n': '访谈',
|
||||
'v': 23560
|
||||
}, {
|
||||
'n': '音乐记录',
|
||||
'v': 23561
|
||||
}, {
|
||||
'n': '音乐周边',
|
||||
'v': 23562
|
||||
}, {
|
||||
'n': '音乐节目',
|
||||
'v': 23563
|
||||
}, {
|
||||
'n': '影视原声',
|
||||
'v': 23564
|
||||
}, {
|
||||
'n': '音乐短片',
|
||||
'v': 23565
|
||||
}, {
|
||||
'n': '其他',
|
||||
'v': 23566
|
||||
}]
|
||||
}],
|
||||
'16': [{
|
||||
'key': 'mode',
|
||||
'name': '综合排序',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '热播榜',
|
||||
'v': 11
|
||||
}, {
|
||||
'n': '好评榜',
|
||||
'v': 8
|
||||
}, {
|
||||
'n': '新上线',
|
||||
'v': 4
|
||||
}]
|
||||
}, {
|
||||
'key': 'year',
|
||||
'name': '全部年份',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '2023',
|
||||
'v': 2023
|
||||
}, {
|
||||
'n': '2022',
|
||||
'v': 2022
|
||||
}, {
|
||||
'n': '2021',
|
||||
'v': 2021
|
||||
}, {
|
||||
'n': '2020',
|
||||
'v': 2020
|
||||
}, {
|
||||
'n': '2019',
|
||||
'v': 2019
|
||||
}, {
|
||||
'n': '2018',
|
||||
'v': 2018
|
||||
}, {
|
||||
'n': '2017',
|
||||
'v': 2017
|
||||
}, {
|
||||
'n': '2016-2011',
|
||||
'v': '2011_2016'
|
||||
}, {
|
||||
'n': '2010-2000',
|
||||
'v': '2000_2010'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '1990_1999'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '1980_1989'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '1964_1979'
|
||||
}]
|
||||
}, {
|
||||
'key': 'is_purchase',
|
||||
'name': '全部资费',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '免费',
|
||||
'v': 0
|
||||
}, {
|
||||
'n': '会员',
|
||||
'v': 1
|
||||
}, {
|
||||
'n': '付费',
|
||||
'v': 2
|
||||
}]
|
||||
}, {
|
||||
'key': '18061',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '喜剧',
|
||||
'v': 1296
|
||||
}, {
|
||||
'n': '爱情',
|
||||
'v': 1297
|
||||
}, {
|
||||
'n': '动作',
|
||||
'v': 1298
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': 1299
|
||||
}, {
|
||||
'n': '惊悚',
|
||||
'v': 1300
|
||||
}, {
|
||||
'n': '悬疑',
|
||||
'v': 1301
|
||||
}, {
|
||||
'n': '青春',
|
||||
'v': 1302
|
||||
}]
|
||||
}]
|
||||
},
|
||||
// url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&is_purchase=&mode=24&page_id=fypage&ret_num=48&three_category_id=',
|
||||
url: 'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&page_id=fypage&ret_num=48',
|
||||
filter_url: 'is_purchase={{fl.is_purchase}}&mode={{fl.mode}}&three_category_id={{fl.three_category_id}}&market_release_date_level={{fl.year}}',
|
||||
// url:'https://pcw-api.iqiyi.com/search/video/videolists?channel_id=fyclass&pageNum=fypage&pageSize=24&data_type=1&site=iqiyi',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电影&电视剧&纪录片&动漫&综艺&音乐&网络电影',
|
||||
class_url: '1&2&3&4&6&5&16',
|
||||
limit: 20,
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
try {
|
||||
let api = "" + input.split("?")[0];
|
||||
console.log(api);
|
||||
let response = fetch(api, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
let bata = JSON.parse(response);
|
||||
if (bata.url.includes("qiyi")) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
}),
|
||||
|
||||
lazy: $js.toString(() => {
|
||||
let d = [];
|
||||
const blockedField = 'https://123.yp22.cn/d/le/53SqFaimyxG6LrduZ';
|
||||
try {
|
||||
// 发起请求并获取响应,添加请求头
|
||||
let headers = {
|
||||
'User-Agent': 'okhttp/4.12.0'
|
||||
|
||||
};
|
||||
let responseText = request("http://222.186.57.24:7600/jx.php?url=" + input, { headers: headers });
|
||||
console.log("响应文本:", responseText); // 查看原始响应内容
|
||||
//备用http://llyh.xn--yi7aa.top/api/?key=5b317c16d457b31a3150d87c0a362a9e&url=
|
||||
// 解析 JSON 数据
|
||||
let response = JSON.parse(responseText);
|
||||
|
||||
// 查找以 'url' 开头的字段
|
||||
let urlField = Object.keys(response).find(key => key.startsWith('url'));
|
||||
|
||||
// 提取找到的字段值
|
||||
let urlValue = urlField ? response[urlField] : null;
|
||||
|
||||
console.log("提取的随机字段值:", urlValue); // 查看提取的值
|
||||
if (response.url.includes(blockedField)) {
|
||||
throw new Error('该链接已被屏蔽');
|
||||
};
|
||||
if (urlValue) {
|
||||
// 处理 urlValue,或将其用于 input
|
||||
input = {
|
||||
url: urlValue,
|
||||
parse: 0,
|
||||
header: rule.headers
|
||||
};
|
||||
} else {
|
||||
// 处理没有找到字段的情况
|
||||
console.error("没有找到以 'url' 开头的字段");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("处理请求或数据时发生错误:", error);
|
||||
}
|
||||
|
||||
setResult(d);
|
||||
}),
|
||||
// 推荐:'js:let d=[];fetch_params.headers["user-agent"]=PC_UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=fetch(HOST,fetch_params);let lists=pdfa(html,".qy-mod-li");lists.forEach(function(it){try{let title=pdfh(it,"p.sub&&title");let desc=pdfh(it,".qy-mod-label&&Text");let pic_url=pd(it,"img&&src");d.push({title:title,desc:desc,img:pic_url})}catch(e){}});res=setResult(d);',
|
||||
一级: 'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=request(input);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);',
|
||||
// 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=fetch(input,fetch_params);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);',
|
||||
// 一级:'json:.data.list;.name;.imageUrl;.playUrl;.latestOrder',
|
||||
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
// 二级:{is_json:1,"title":"data.name+data.subtitle;data.latestOrder","img":"data.imageUrl","desc":"data.categories;data.areas","content":"data.description","tabs":"data.name","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
二级: '',
|
||||
二级: 'js:let d=[];let html=request(input);let json=JSON.parse(html).data;VOD={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};VOD.vod_name=json.name;try{if(json.latestOrder){VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){VOD.vod_remarks=json.subtitle}VOD.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}VOD.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");VOD.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){let vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});VOD.vod_actor=vod_actors.join(",")}VOD.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i<total/200+1;i++){let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page="+i;let data=JSON.parse(request(listUrl)).data;playlists=playlists.concat(data.epsodelist)}}}}playlists.forEach(function(it){d.push({title:it.shortTitle||"第"+it.order+"集",desc:it.subtitle||it.focus||it.period,img:it.imageUrl.replace(".jpg","_480_270.jpg?caplist=jpg,webp"),url:it.playUrl})});VOD.vod_play_from="qiyi";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
// 二级:'js:let d=[];let html=request(input);let json=JSON.parse(html).data;vod={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};vod.vod_name=json.name;try{if(json.latestOrder){vod.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{vod.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){vod.vod_remarks=json.subtitle}vod.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}vod.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");vod.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});vod.vod_actor=vod_actors.join(",")}vod.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i<total/200+1;i++){let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page="+i;let data=JSON.parse(request(listUrl)).data;playlists=playlists.concat(data.epsodelist)}}}}playlists.forEach(function(it){d.push({title:it.shortTitle||"第"+it.order+"集",desc:it.subtitle||it.focus||it.period,img:it.imageUrl.replace(".jpg","_480_270.jpg?caplist=jpg,webp"),url:it.playUrl})});vod.vod_play_from="qiyi";vod.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
搜索: 'json:.data.docinfos;.albumDocInfo.albumTitle;.albumDocInfo.albumVImage;.albumDocInfo.channel;.albumDocInfo.albumId;.albumDocInfo.tvFocus',
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
globalThis.getHeaders= function(input){
|
||||
let t = new Date().getTime().toString();
|
||||
let headers = {
|
||||
'version_name': '1.0.6',
|
||||
'version_code': '6',
|
||||
'package_name': 'com.app.nanguatv',
|
||||
'sign': md5('c431ea542cee9679#uBFszdEM0oL0JRn@' + t).toUpperCase(),
|
||||
'imei': 'c431ea542cee9679',
|
||||
'timeMillis': t,
|
||||
'User-Agent': 'okhttp/4.6.0'
|
||||
};
|
||||
return headers
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title:'畅梦影视',
|
||||
host:'http://ys.changmengyun.com',
|
||||
homeUrl:'/api.php/provide/vod_rank?app=ylys&sort_type=month&imei=c431ea542cee9679&id=2&page=1',
|
||||
url:'/api.php/provide/vod_list?app=ylys&id=fyclassfyfilter&page=fypage&imei=c431ea542cee9679',
|
||||
detailUrl:'/api.php/provide/vod_detail?app=ylys&imei=c431ea542cee9679&id=fyid',
|
||||
searchUrl:'/api.php/provide/search_result_more?app=ylys&video_name=**&pageSize=20&tid=0&imei=c431ea542cee9679&page=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:1,
|
||||
filter_url:'&area={{fl.area}}&year={{fl.year}}&type={{fl.class}}&total={{fl.total or "状态"}}&order={{fl.by or "新上线"}}',
|
||||
filter:{
|
||||
"2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产剧","v":"国产剧"},{"n":"港台剧","v":"港台剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"香港地区","v":"香港地区"},{"n":"台湾地区","v":"台湾地区"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"动作片","v":"动作片"},{"n":"喜剧片","v":"喜剧片"},{"n":"爱情片","v":"爱情片"},{"n":"科幻片","v":"科幻片"},{"n":"恐怖片","v":"恐怖片"},{"n":"剧情片","v":"剧情片"},{"n":"战争片","v":"战争片"},{"n":"惊悚片","v":"惊悚片"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"华语","v":"华语"},{"n":"香港地区","v":"香港地区"},{"n":"美国","v":"美国"},{"n":"欧洲","v":"欧洲"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"台湾地区","v":"台湾地区"},{"n":"泰国","v":"泰国"},{"n":"台湾地区","v":"台湾地区"},{"n":"印度","v":"印度"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"4":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产漫","v":"国产漫"},{"n":"欧美漫","v":"欧美漫"},{"n":"日韩漫","v":"日韩漫"},{"n":"港台漫","v":"港台漫"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"中国大陆","v":"中国大陆"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]},{"key":"total","name":"状态","value":[{"n":"全部","v":"状态"},{"n":"连载","v":"连载"},{"n":"完结","v":"完结"}]}],
|
||||
"3":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"大陆","v":"大陆"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"46":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"日韩剧","v":"日韩剧"},{"n":"欧美剧","v":"欧美剧"},{"n":"海外剧","v":"海外剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"韩国","v":"韩国"},{"n":"美剧","v":"美剧"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}]
|
||||
},
|
||||
headers:{
|
||||
"User-Agent":"okhttp/4.6.0"
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'电视剧&电影&动漫&综艺&海外精选', // /api.php/provide/home_nav
|
||||
class_url:'2&1&4&3&46',
|
||||
limit:20,
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
try {
|
||||
function getvideo(url) {
|
||||
let jData = JSON.parse(request(url, {
|
||||
headers: getHeaders(url)
|
||||
}));
|
||||
if (jData.code == 1) {
|
||||
return jData.data.url
|
||||
} else {
|
||||
return 'http://43.154.104.152:1234/jhapi/cs.php?url=' + url.split('=')[1]
|
||||
}
|
||||
}
|
||||
if (/,/.test(input)) {
|
||||
let mjurl = input.split(',')[1]
|
||||
let videoUrl = getvideo(mjurl);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'user-agent': 'Lavf/58.12.100'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
let videoUrl = getvideo(input);
|
||||
if (/jhapi/.test(videoUrl)) {
|
||||
videoUrl = getvideo(videoUrl);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'user-agent': 'Lavf/58.12.100'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log(e.toString())
|
||||
}
|
||||
`,
|
||||
推荐:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.name,
|
||||
img: it.img,
|
||||
desc: it.remarks,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.list.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.name,
|
||||
img: it.img,
|
||||
desc: it.msg,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级:`js:
|
||||
var d = [];
|
||||
VOD = {
|
||||
vod_id: input.split('id=')[1]
|
||||
};
|
||||
try {
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
let node = html.data;
|
||||
VOD = {
|
||||
vod_name: node['name'],
|
||||
vod_pic: node['img'],
|
||||
type_name: node['type'],
|
||||
vod_year: node['year'],
|
||||
vod_remarks: '更新至: ' + node['msg'] + ' / 评分: ' + node['score'],
|
||||
vod_content: node['info'].strip()
|
||||
};
|
||||
let episodes = node.player_info;
|
||||
let playMap = {};
|
||||
if (typeof play_url === 'undefined') {
|
||||
var play_url = ''
|
||||
}
|
||||
episodes.forEach(function(ep) {
|
||||
let playurls = ep['video_info'];
|
||||
playurls.forEach(function(playurl) {
|
||||
let source = ep['show'];
|
||||
if (!playMap.hasOwnProperty(source)) {
|
||||
playMap[source] = []
|
||||
}
|
||||
playMap[source].append(playurl['name'].strip() + '$' + play_url + urlencode(playurl['url']))
|
||||
})
|
||||
});
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
Object.keys(playMap)
|
||||
.forEach(function(key) {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key].join('#'))
|
||||
});
|
||||
let vod_play_from = playFrom.join('$$$');
|
||||
let vod_play_url = playList.join('$$$');
|
||||
VOD['vod_play_from'] = vod_play_from;
|
||||
VOD['vod_play_url'] = vod_play_url
|
||||
} catch (e) {
|
||||
log('获取二级详情页发生错误:' + e.message)
|
||||
}
|
||||
`,
|
||||
搜索:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.data.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.video_name,
|
||||
img: it.img,
|
||||
desc: it.qingxidu + '/' + it.category,
|
||||
url: it.id,
|
||||
content: it.blurb
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
Vendored
+3108
@@ -0,0 +1,3108 @@
|
||||
import cheerio from "assets://js/lib/cheerio.min.js";
|
||||
import "assets://js/lib/crypto-js.js";
|
||||
import "./jsencrypt.js";
|
||||
import "./node-rsa.js";
|
||||
import "./pako.min.js";
|
||||
import 模板 from "./模板.js";
|
||||
import {
|
||||
gbkTool
|
||||
} from "./gbk.js";
|
||||
import "./json5.js";
|
||||
import "./jinja.js";
|
||||
const _jinja2 = cheerio.jinja2;
|
||||
cheerio.jinja2 = function(template, obj) {
|
||||
try {
|
||||
return jinja.render(template, obj)
|
||||
} catch (e) {
|
||||
console.log("新的jinja2库渲染失败,换回原始cheerio:" + e.message);
|
||||
return _jinja2(template, obj)
|
||||
}
|
||||
};
|
||||
let vercode = typeof pdfl === "function" ? "drpy2.1" : "drpy2";
|
||||
const VERSION = vercode + " 3.9.51beta6 20241126";
|
||||
const UpdateInfo = [{
|
||||
date: "20241126",
|
||||
title: "drpy更新,优化去广告算法",
|
||||
version: "3.9.51beta6 20241126",
|
||||
msg: `
|
||||
1. 更新龙头大佬提供的去广告算法
|
||||
`
|
||||
}, {
|
||||
date: "20241104",
|
||||
title: "drpy更新,增加新特性",
|
||||
version: "3.9.51beta5 20241104",
|
||||
msg: `
|
||||
1. rule增加 搜索验证标识 属性,可以不定义,默认为 '系统安全验证|请输入验证码'
|
||||
2. rule增加 searchNoPage 属性,可以不定义,如果定义 1 将关闭该源的搜索翻页功能,超过1页直接返回空
|
||||
`
|
||||
}];
|
||||
|
||||
function getUpdateInfo() {
|
||||
return UpdateInfo.map(_o => {
|
||||
_o.msg = _o.msg.trim().split("\n").map(_it => _it.trim()).join("\n");
|
||||
return _o
|
||||
})
|
||||
}
|
||||
|
||||
function init_test() {
|
||||
console.log("init_test_start");
|
||||
console.log("当前版本号:" + VERSION);
|
||||
console.log("本地代理地址:" + getProxyUrl());
|
||||
console.log(RKEY);
|
||||
console.log(JSON.stringify(rule));
|
||||
console.log("init_test_end")
|
||||
}
|
||||
|
||||
function ocr_demo_test() {
|
||||
let img_base64 = `iVBORw0KGgoAAAANSUhEUgAAAIAAAAAoBAMAAADEX+97AAAAG1BMVEXz+/4thQTa7N6QwIFFkyNeokKozqDB3b93sWHFR+MEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABN0lEQVRIie2TQU+DQBCFt9vScvQpxR4xrcSjJCZ67JDGXsX+AdR4B3vpsSYm/m2HXaRLmuySepR3Gdidb/btDAjRq5dT96eCMlfBuzi1QLZUoZy2yz5sOvI+9iomaPEZ6nWnEtxqIyiM1RcAy44GNDhBXUjot/VVNweV1ah68FqWRyjKIOqAcyYF6rGcmpYnHzGt3fycNoMw0d3/THFu7hFSJ/8OXO6iTM8/KSg09obAzIHLO250LgQ0txOZSfgrV4Exdw98uGycJ0ErAeExZGhOmFHV9zHO6qVSj0MpLq7xZON56o++MjlsEgfVhbQWWME+xQX7J4V6zfi9A1Ly9rP1BvEXp+BbVJ/M77n+wfOIDVp51pZ4iBxvmj9AGrtvry6emwfKnVkW+ZRKd5ZNMvob36vXP9YPDmQki8QiCFAAAAAASUVORK5CYII=`;
|
||||
OcrApi.api = OCR_API;
|
||||
let code = OcrApi.classification(img_base64);
|
||||
log("测试验证码图片的ocr识别结果为:" + code)
|
||||
}
|
||||
|
||||
function rsa_demo_test() {
|
||||
let t1 = (new Date).getTime();
|
||||
let pkcs1_public = `
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
|
||||
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
`.trim();
|
||||
let pkcs1_public_pem = `
|
||||
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
|
||||
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
|
||||
`.trim();
|
||||
let pkcs8_public = `
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
|
||||
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
|
||||
-----END PUBLIC KEY-----`.trim();
|
||||
let pkcs8_public_pem = `
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
|
||||
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
|
||||
`.trim();
|
||||
let pkcs1_private = `
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7
|
||||
ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt
|
||||
0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ
|
||||
AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA
|
||||
hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+
|
||||
5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS
|
||||
EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
`.trim();
|
||||
let pkcs8_private = `
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf
|
||||
dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v
|
||||
YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8
|
||||
KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8
|
||||
s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl
|
||||
AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3
|
||||
rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6
|
||||
lPxDjezd
|
||||
-----END PRIVATE KEY-----
|
||||
`.trim();
|
||||
let data = `
|
||||
NodeRsa
|
||||
这是node-rsa 现在修改集成在drpy里使用`.trim();
|
||||
let encryptedWithPublic = NODERSA.encryptRSAWithPublicKey(data, pkcs1_public, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("公钥加密");
|
||||
console.log(encryptedWithPublic);
|
||||
let decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic, pkcs1_private, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("私钥解密");
|
||||
console.log(decryptedWithPrivate);
|
||||
let pkcs1_sha256_sign = NODERSA.sign("1", pkcs1_private, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1",
|
||||
signingScheme: "pkcs1-sha256"
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_sha256_sign");
|
||||
console.log(pkcs1_sha256_sign);
|
||||
let pkcs1_sha256_sign_verify = NODERSA.verify("1", "Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==", pkcs1_private, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1",
|
||||
signingScheme: "pkcs1-sha256"
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_sha256_sign_verify");
|
||||
console.log(pkcs1_sha256_sign_verify);
|
||||
let pkcs1_oaep_sha256 = NODERSA.encryptRSAWithPublicKey(data, `-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du
|
||||
SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm
|
||||
kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8
|
||||
PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m
|
||||
PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb
|
||||
Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
`, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: {
|
||||
scheme: "pkcs1_oaep",
|
||||
hash: "sha256"
|
||||
}
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_oaep_sha256");
|
||||
console.log(pkcs1_oaep_sha256);
|
||||
decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==", `-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is
|
||||
T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S
|
||||
xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy
|
||||
3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+
|
||||
HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA
|
||||
ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/
|
||||
zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31
|
||||
iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l
|
||||
QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu
|
||||
eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ
|
||||
8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9
|
||||
l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC
|
||||
WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J
|
||||
NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0
|
||||
o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3
|
||||
ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ
|
||||
I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i
|
||||
tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P
|
||||
vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p
|
||||
yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC
|
||||
8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87
|
||||
HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN
|
||||
QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51
|
||||
MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw
|
||||
m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA==
|
||||
-----END RSA PRIVATE KEY-----`, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("decryptedWithPrivate");
|
||||
console.log(decryptedWithPrivate);
|
||||
(() => {
|
||||
let key = new NODERSA.NodeRSA({
|
||||
b: 1024
|
||||
});
|
||||
key.setOptions({
|
||||
encryptionScheme: "pkcs1"
|
||||
});
|
||||
let text = `你好drpy node-ras`;
|
||||
let encrypted = key.encrypt(text, "base64");
|
||||
console.log("encrypted: ", encrypted);
|
||||
const decrypted = key.decrypt(encrypted, "utf8");
|
||||
console.log("decrypted: ", decrypted)
|
||||
})();
|
||||
let t2 = (new Date).getTime();
|
||||
console.log("rsa_demo_test 测试耗时:" + (t2 - t1) + "毫秒")
|
||||
}
|
||||
|
||||
function pre() {
|
||||
if (typeof rule.预处理 === "string" && rule.预处理 && rule.预处理.trim()) {
|
||||
let code = rule.预处理.trim();
|
||||
console.log("执行预处理代码:" + code);
|
||||
if (code.startsWith("js:")) {
|
||||
code = code.replace("js:", "")
|
||||
}
|
||||
try {
|
||||
eval(code)
|
||||
} catch (e) {
|
||||
console.log(`预处理执行失败:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
let rule = {};
|
||||
const MOBILE_UA = "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36";
|
||||
const PC_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36";
|
||||
const UA = "Mozilla/5.0";
|
||||
const UC_UA = "Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";
|
||||
const IOS_UA = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";
|
||||
const RULE_CK = "cookie";
|
||||
const CATE_EXCLUDE = "首页|留言|APP|下载|资讯|新闻|动态";
|
||||
const TAB_EXCLUDE = "猜你|喜欢|下载|剧情|榜|评论";
|
||||
const OCR_RETRY = 3;
|
||||
const OCR_API = "https://api.nn.ci/ocr/b64/text";
|
||||
if (typeof MY_URL === "undefined") {
|
||||
var MY_URL
|
||||
}
|
||||
var HOST;
|
||||
var RKEY;
|
||||
var fetch;
|
||||
var print;
|
||||
var log;
|
||||
var rule_fetch_params;
|
||||
var fetch_params;
|
||||
var oheaders;
|
||||
var _pdfh;
|
||||
var _pdfa;
|
||||
var _pd;
|
||||
const DOM_CHECK_ATTR = /(url|src|href|-original|-src|-play|-url|style)$/;
|
||||
const SPECIAL_URL = /^(ftp|magnet|thunder|ws):/;
|
||||
const NOADD_INDEX = /:eq|:lt|:gt|:first|:last|^body$|^#/;
|
||||
const URLJOIN_ATTR = /(url|src|href|-original|-src|-play|-url|style)$|^(data-|url-|src-)/;
|
||||
const SELECT_REGEX = /:eq|:lt|:gt|#/g;
|
||||
const SELECT_REGEX_A = /:eq|:lt|:gt/g;
|
||||
const $js = {
|
||||
toString(func) {
|
||||
let strfun = func.toString();
|
||||
return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/, "js:").replace(/\}$/, "")
|
||||
}
|
||||
};
|
||||
|
||||
function window_b64() {
|
||||
let b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
let base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
|
||||
|
||||
function btoa(str) {
|
||||
var out, i, len;
|
||||
var c1, c2, c3;
|
||||
len = str.length;
|
||||
i = 0;
|
||||
out = "";
|
||||
while (i < len) {
|
||||
c1 = str.charCodeAt(i++) & 255;
|
||||
if (i == len) {
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4);
|
||||
out += "==";
|
||||
break
|
||||
}
|
||||
c2 = str.charCodeAt(i++);
|
||||
if (i == len) {
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4 | (c2 & 240) >> 4);
|
||||
out += b64map.charAt((c2 & 15) << 2);
|
||||
out += "=";
|
||||
break
|
||||
}
|
||||
c3 = str.charCodeAt(i++);
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4 | (c2 & 240) >> 4);
|
||||
out += b64map.charAt((c2 & 15) << 2 | (c3 & 192) >> 6);
|
||||
out += b64map.charAt(c3 & 63)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
function atob(str) {
|
||||
var c1, c2, c3, c4;
|
||||
var i, len, out;
|
||||
len = str.length;
|
||||
i = 0;
|
||||
out = "";
|
||||
while (i < len) {
|
||||
do {
|
||||
c1 = base64DecodeChars[str.charCodeAt(i++) & 255]
|
||||
} while (i < len && c1 == -1);
|
||||
if (c1 == -1) break;
|
||||
do {
|
||||
c2 = base64DecodeChars[str.charCodeAt(i++) & 255]
|
||||
} while (i < len && c2 == -1);
|
||||
if (c2 == -1) break;
|
||||
out += String.fromCharCode(c1 << 2 | (c2 & 48) >> 4);
|
||||
do {
|
||||
c3 = str.charCodeAt(i++) & 255;
|
||||
if (c3 == 61) return out;
|
||||
c3 = base64DecodeChars[c3]
|
||||
} while (i < len && c3 == -1);
|
||||
if (c3 == -1) break;
|
||||
out += String.fromCharCode((c2 & 15) << 4 | (c3 & 60) >> 2);
|
||||
do {
|
||||
c4 = str.charCodeAt(i++) & 255;
|
||||
if (c4 == 61) return out;
|
||||
c4 = base64DecodeChars[c4]
|
||||
} while (i < len && c4 == -1);
|
||||
if (c4 == -1) break;
|
||||
out += String.fromCharCode((c3 & 3) << 6 | c4)
|
||||
}
|
||||
return out
|
||||
}
|
||||
return {
|
||||
atob: atob,
|
||||
btoa: btoa
|
||||
}
|
||||
}
|
||||
if (typeof atob !== "function" || typeof btoa !== "function") {
|
||||
var {
|
||||
atob,
|
||||
btoa
|
||||
} = window_b64()
|
||||
}
|
||||
if (typeof Object.assign !== "function") {
|
||||
Object.assign = function() {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
return target
|
||||
}
|
||||
}
|
||||
if (!String.prototype.includes) {
|
||||
String.prototype.includes = function(search, start) {
|
||||
if (typeof start !== "number") {
|
||||
start = 0
|
||||
}
|
||||
if (start + search.length > this.length) {
|
||||
return false
|
||||
} else {
|
||||
return this.indexOf(search, start) !== -1
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!Array.prototype.includes) {
|
||||
Object.defineProperty(Array.prototype, "includes", {
|
||||
value: function(searchElement, fromIndex) {
|
||||
if (this == null) {
|
||||
throw new TypeError('"this" is null or not defined')
|
||||
}
|
||||
var o = Object(this);
|
||||
var len = o.length >>> 0;
|
||||
if (len === 0) {
|
||||
return false
|
||||
}
|
||||
var n = fromIndex | 0;
|
||||
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
||||
while (k < len) {
|
||||
if (o[k] === searchElement) {
|
||||
return true
|
||||
}
|
||||
k++
|
||||
}
|
||||
return false
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof String.prototype.startsWith !== "function") {
|
||||
String.prototype.startsWith = function(prefix) {
|
||||
return this.slice(0, prefix.length) === prefix
|
||||
}
|
||||
}
|
||||
if (typeof String.prototype.endsWith !== "function") {
|
||||
String.prototype.endsWith = function(suffix) {
|
||||
return this.indexOf(suffix, this.length - suffix.length) !== -1
|
||||
}
|
||||
}
|
||||
Object.defineProperty(Object.prototype, "myValues", {
|
||||
value: function(obj) {
|
||||
if (obj == null) {
|
||||
throw new TypeError("Cannot convert undefined or null to object")
|
||||
}
|
||||
var res = [];
|
||||
for (var k in obj) {
|
||||
if (obj.hasOwnProperty(k)) {
|
||||
res.push(obj[k])
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
enumerable: false
|
||||
});
|
||||
if (typeof Object.prototype.values !== "function") {
|
||||
Object.defineProperty(Object.prototype, "values", {
|
||||
value: function(obj) {
|
||||
if (obj == null) {
|
||||
throw new TypeError("Cannot convert undefined or null to object")
|
||||
}
|
||||
var res = [];
|
||||
for (var k in obj) {
|
||||
if (obj.hasOwnProperty(k)) {
|
||||
res.push(obj[k])
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof Array.prototype.join !== "function") {
|
||||
Object.defineProperty(Array.prototype, "join", {
|
||||
value: function(emoji) {
|
||||
emoji = emoji || "";
|
||||
let self = this;
|
||||
let str = "";
|
||||
let i = 0;
|
||||
if (!Array.isArray(self)) {
|
||||
throw String(self) + "is not Array"
|
||||
}
|
||||
if (self.length === 0) {
|
||||
return ""
|
||||
}
|
||||
if (self.length === 1) {
|
||||
return String(self[0])
|
||||
}
|
||||
i = 1;
|
||||
str = this[0];
|
||||
for (; i < self.length; i++) {
|
||||
str += String(emoji) + String(self[i])
|
||||
}
|
||||
return str
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof Array.prototype.toReversed !== "function") {
|
||||
Object.defineProperty(Array.prototype, "toReversed", {
|
||||
value: function() {
|
||||
const clonedList = this.slice();
|
||||
const reversedList = clonedList.reverse();
|
||||
return reversedList
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
Object.defineProperty(Array.prototype, "append", {
|
||||
value: Array.prototype.push,
|
||||
enumerable: false
|
||||
});
|
||||
Object.defineProperty(String.prototype, "strip", {
|
||||
value: String.prototype.trim,
|
||||
enumerable: false
|
||||
});
|
||||
Object.defineProperty(String.prototype, "rstrip", {
|
||||
value: function(chars) {
|
||||
let regex = new RegExp(chars + "$");
|
||||
return this.replace(regex, "")
|
||||
},
|
||||
enumerable: false
|
||||
});
|
||||
|
||||
function 是否正版(vipUrl) {
|
||||
let flag = new RegExp("qq.com|iqiyi.com|youku.com|mgtv.com|bilibili.com|sohu.com|ixigua.com|pptv.com|miguvideo.com|le.com|1905.com|fun.tv");
|
||||
return flag.test(vipUrl)
|
||||
}
|
||||
|
||||
function urlDeal(vipUrl) {
|
||||
if (!vipUrl) {
|
||||
return ""
|
||||
}
|
||||
if (!是否正版(vipUrl)) {
|
||||
return vipUrl
|
||||
}
|
||||
if (!/miguvideo/.test(vipUrl)) {
|
||||
vipUrl = vipUrl.split("#")[0].split("?")[0]
|
||||
}
|
||||
return vipUrl
|
||||
}
|
||||
|
||||
function setResult(d) {
|
||||
if (!Array.isArray(d)) {
|
||||
return []
|
||||
}
|
||||
VODS = [];
|
||||
d.forEach(function(it) {
|
||||
let obj = {
|
||||
vod_id: it.url || "",
|
||||
vod_name: it.title || "",
|
||||
vod_remarks: it.desc || "",
|
||||
vod_content: it.content || "",
|
||||
vod_pic: it.pic_url || it.img || ""
|
||||
};
|
||||
let keys = Object.keys(it);
|
||||
if (keys.includes("tname")) {
|
||||
obj.type_name = it.tname || ""
|
||||
}
|
||||
if (keys.includes("tid")) {
|
||||
obj.type_id = it.tid || ""
|
||||
}
|
||||
if (keys.includes("year")) {
|
||||
obj.vod_year = it.year || ""
|
||||
}
|
||||
if (keys.includes("actor")) {
|
||||
obj.vod_actor = it.actor || ""
|
||||
}
|
||||
if (keys.includes("director")) {
|
||||
obj.vod_director = it.director || ""
|
||||
}
|
||||
if (keys.includes("area")) {
|
||||
obj.vod_area = it.area || ""
|
||||
}
|
||||
VODS.push(obj)
|
||||
});
|
||||
return VODS
|
||||
}
|
||||
|
||||
function setResult2(res) {
|
||||
VODS = res.list || [];
|
||||
return VODS
|
||||
}
|
||||
|
||||
function setHomeResult(res) {
|
||||
if (!res || typeof res !== "object") {
|
||||
return []
|
||||
}
|
||||
return setResult(res.list)
|
||||
}
|
||||
|
||||
function rc(js) {
|
||||
if (js === "maomi_aes.js") {
|
||||
var a = CryptoJS.enc.Utf8.parse("625222f9149e961d");
|
||||
var t = CryptoJS.enc.Utf8.parse("5efdtf6060e2o330");
|
||||
return {
|
||||
De: function(word) {
|
||||
word = CryptoJS.enc.Hex.parse(word);
|
||||
return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(word), a, {
|
||||
iv: t,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
},
|
||||
En: function(word) {
|
||||
var Encrypted = CryptoJS.AES.encrypt(word, a, {
|
||||
iv: t,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return Encrypted.ciphertext.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
function maoss(jxurl, ref, key) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
eval(getCryptoJS());
|
||||
try {
|
||||
var getVideoInfo = function(text) {
|
||||
return CryptoJS.AES.decrypt(text, key, {
|
||||
iv: iv,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
};
|
||||
var token_key = key == undefined ? "dvyYRQlnPRCMdQSe" : key;
|
||||
if (ref) {
|
||||
var html = request(jxurl, {
|
||||
headers: {
|
||||
Referer: ref
|
||||
}
|
||||
})
|
||||
} else {
|
||||
var html = request(jxurl)
|
||||
}
|
||||
if (html.indexOf("&btwaf=") != -1) {
|
||||
html = request(jxurl + "&btwaf" + html.match(/&btwaf(.*?)"/)[1], {
|
||||
headers: {
|
||||
Referer: ref
|
||||
}
|
||||
})
|
||||
}
|
||||
var token_iv = html.split('_token = "')[1].split('"')[0];
|
||||
var key = CryptoJS.enc.Utf8.parse(token_key);
|
||||
var iv = CryptoJS.enc.Utf8.parse(token_iv);
|
||||
eval(html.match(/var config = {[\s\S]*?}/)[0] + "");
|
||||
if (!config.url.startsWith("http")) {
|
||||
config.url = CryptoJS.AES.decrypt(config.url, key, {
|
||||
iv: iv,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
}
|
||||
return config.url
|
||||
} catch (e) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function urlencode(str) {
|
||||
str = (str + "").toString();
|
||||
return encodeURIComponent(str).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A").replace(/%20/g, "+")
|
||||
}
|
||||
|
||||
function encodeUrl(str) {
|
||||
if (typeof encodeURI == "function") {
|
||||
return encodeURI(str)
|
||||
} else {
|
||||
str = (str + "").toString();
|
||||
return encodeURIComponent(str).replace(/%2F/g, "/").replace(/%3F/g, "?").replace(/%3A/g, ":").replace(/%40/g, "@").replace(/%3D/g, "=").replace(/%3A/g, ":").replace(/%2C/g, ",").replace(/%2B/g, "+").replace(/%24/g, "$")
|
||||
}
|
||||
}
|
||||
|
||||
function base64Encode(text) {
|
||||
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text))
|
||||
}
|
||||
|
||||
function base64Decode(text) {
|
||||
return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text))
|
||||
}
|
||||
|
||||
function md5(text) {
|
||||
return CryptoJS.MD5(text).toString()
|
||||
}
|
||||
|
||||
function uint8ArrayToBase64(uint8Array) {
|
||||
let binaryString = String.fromCharCode.apply(null, Array.from(uint8Array));
|
||||
return btoa(binaryString)
|
||||
}
|
||||
|
||||
function Utf8ArrayToStr(array) {
|
||||
var out, i, len, c;
|
||||
var char2, char3;
|
||||
out = "";
|
||||
len = array.length;
|
||||
i = 0;
|
||||
while (i < len) {
|
||||
c = array[i++];
|
||||
switch (c >> 4) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
out += String.fromCharCode(c);
|
||||
break;
|
||||
case 12:
|
||||
case 13:
|
||||
char2 = array[i++];
|
||||
out += String.fromCharCode((c & 31) << 6 | char2 & 63);
|
||||
break;
|
||||
case 14:
|
||||
char2 = array[i++];
|
||||
char3 = array[i++];
|
||||
out += String.fromCharCode((c & 15) << 12 | (char2 & 63) << 6 | (char3 & 63) << 0);
|
||||
break
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
function gzip(str) {
|
||||
let arr = pako.gzip(str, {});
|
||||
return uint8ArrayToBase64(arr)
|
||||
}
|
||||
|
||||
function ungzip(b64Data) {
|
||||
let strData = atob(b64Data);
|
||||
const charData = strData.split("").map(function(x) {
|
||||
return x.charCodeAt(0)
|
||||
});
|
||||
const binData = new Uint8Array(charData);
|
||||
const data = pako.inflate(binData);
|
||||
return Utf8ArrayToStr(data)
|
||||
}
|
||||
|
||||
function encodeStr(input, encoding) {
|
||||
encoding = encoding || "gbk";
|
||||
if (encoding.startsWith("gb")) {
|
||||
const strTool = gbkTool();
|
||||
input = strTool.encode(input)
|
||||
}
|
||||
return input
|
||||
}
|
||||
|
||||
function decodeStr(input, encoding) {
|
||||
encoding = encoding || "gbk";
|
||||
if (encoding.startsWith("gb")) {
|
||||
const strTool = gbkTool();
|
||||
input = strTool.decode(input)
|
||||
}
|
||||
return input
|
||||
}
|
||||
|
||||
function getCryptoJS() {
|
||||
return 'console.log("CryptoJS已装载");'
|
||||
}
|
||||
const RSA = {
|
||||
decode: function(data, key, option) {
|
||||
option = option || {};
|
||||
if (typeof JSEncrypt === "function") {
|
||||
let chunkSize = option.chunkSize || 117;
|
||||
let privateKey = this.getPrivateKey(key);
|
||||
const decryptor = new JSEncrypt;
|
||||
decryptor.setPrivateKey(privateKey);
|
||||
let uncrypted = "";
|
||||
uncrypted = decryptor.decryptUnicodeLong(data);
|
||||
return uncrypted
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
encode: function(data, key, option) {
|
||||
option = option || {};
|
||||
if (typeof JSEncrypt === "function") {
|
||||
let chunkSize = option.chunkSize || 117;
|
||||
let publicKey = this.getPublicKey(key);
|
||||
const encryptor = new JSEncrypt;
|
||||
encryptor.setPublicKey(publicKey);
|
||||
let encrypted = "";
|
||||
encrypted = encryptor.encryptUnicodeLong(data);
|
||||
return encrypted
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
fixKey(key, prefix, endfix) {
|
||||
if (!key.includes(prefix)) {
|
||||
key = prefix + key
|
||||
}
|
||||
if (!key.includes(endfix)) {
|
||||
key += endfix
|
||||
}
|
||||
return key
|
||||
},
|
||||
getPrivateKey(key) {
|
||||
let prefix = "-----BEGIN RSA PRIVATE KEY-----";
|
||||
let endfix = "-----END RSA PRIVATE KEY-----";
|
||||
return this.fixKey(key, prefix, endfix)
|
||||
},
|
||||
getPublicKey(key) {
|
||||
let prefix = "-----BEGIN PUBLIC KEY-----";
|
||||
let endfix = "-----END PUBLIC KEY-----";
|
||||
return this.fixKey(key, prefix, endfix)
|
||||
}
|
||||
};
|
||||
|
||||
function getProxyUrl() {
|
||||
if (typeof getProxy === "function") {
|
||||
return getProxy(true)
|
||||
} else {
|
||||
return "http://127.0.0.1:9978/proxy?do=js"
|
||||
}
|
||||
}
|
||||
|
||||
function fixAdM3u8(m3u8_text, m3u8_url, ad_remove) {
|
||||
if (!m3u8_text && !m3u8_url || !m3u8_text && m3u8_url && !m3u8_url.startsWith("http")) {
|
||||
return ""
|
||||
}
|
||||
if (!m3u8_text) {
|
||||
log("m3u8_url:" + m3u8_url);
|
||||
m3u8_text = request(m3u8_url)
|
||||
}
|
||||
log("len(m3u8_text):" + m3u8_text.length);
|
||||
if (!ad_remove) {
|
||||
return m3u8_text
|
||||
}
|
||||
if (ad_remove.startsWith("reg:")) {
|
||||
ad_remove = ad_remove.slice(4)
|
||||
} else if (ad_remove.startsWith("js:")) {
|
||||
ad_remove = ad_remove.slice(3)
|
||||
}
|
||||
let m3u8_start = m3u8_text.slice(0, m3u8_text.indexOf("#EXTINF")).trim();
|
||||
let m3u8_body = m3u8_text.slice(m3u8_text.indexOf("#EXTINF"), m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();
|
||||
let m3u8_end = m3u8_text.slice(m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();
|
||||
let murls = [];
|
||||
let m3_body_list = m3u8_body.split("\n");
|
||||
let m3_len = m3_body_list.length;
|
||||
let i = 0;
|
||||
while (i < m3_len) {
|
||||
let mi = m3_body_list[i];
|
||||
let mi_1 = m3_body_list[i + 1];
|
||||
if (mi.startsWith("#EXTINF")) {
|
||||
murls.push([mi, mi_1].join("&"));
|
||||
i += 2
|
||||
} else if (mi.startsWith("#EXT-X-DISCONTINUITY")) {
|
||||
let mi_2 = m3_body_list[i + 2];
|
||||
murls.push([mi, mi_1, mi_2].join("&"));
|
||||
i += 3
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
let new_m3u8_body = [];
|
||||
for (let murl of murls) {
|
||||
if (ad_remove && new RegExp(ad_remove).test(murl)) {} else {
|
||||
let murl_list = murl.split("&");
|
||||
if (!murl_list[murl_list.length - 1].startsWith("http") && m3u8_url.startsWith("http")) {
|
||||
murl_list[murl_list.length - 1] = urljoin(m3u8_url, murl_list[murl_list.length - 1])
|
||||
}
|
||||
murl_list.forEach(it => {
|
||||
new_m3u8_body.push(it)
|
||||
})
|
||||
}
|
||||
}
|
||||
new_m3u8_body = new_m3u8_body.join("\n").trim();
|
||||
m3u8_text = [m3u8_start, new_m3u8_body, m3u8_end].join("\n").trim();
|
||||
return m3u8_text
|
||||
}
|
||||
|
||||
function fixAdM3u8Ai(m3u8_url, headers) {
|
||||
let ts = (new Date).getTime();
|
||||
let option = headers ? {
|
||||
headers: headers
|
||||
} : {};
|
||||
|
||||
function b(s1, s2) {
|
||||
let i = 0;
|
||||
while (i < s1.length) {
|
||||
if (s1[i] !== s2[i]) {
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
function reverseString(str) {
|
||||
return str.split("").reverse().join("")
|
||||
}
|
||||
let m3u8 = request(m3u8_url, option);
|
||||
m3u8 = m3u8.trim().split("\n").map(it => it.startsWith("#") ? it : urljoin(m3u8_url, it)).join("\n");
|
||||
m3u8 = m3u8.replace(/\n\n/gi, "\n");
|
||||
let last_url = m3u8.split("\n").slice(-1)[0];
|
||||
if (last_url.length < 5) {
|
||||
last_url = m3u8.split("\n").slice(-2)[0]
|
||||
}
|
||||
if (last_url.includes(".m3u8") && last_url !== m3u8_url) {
|
||||
m3u8_url = urljoin2(m3u8_url, last_url);
|
||||
log("嵌套的m3u8_url:" + m3u8_url);
|
||||
m3u8 = request(m3u8_url, option)
|
||||
}
|
||||
let s = m3u8.trim().split("\n").filter(it => it.trim()).join("\n");
|
||||
let ss = s.split("\n");
|
||||
if (m3u8_url.indexOf("ffzy") > 0) {
|
||||
let j = 0,
|
||||
k1 = 0,
|
||||
m = 0,
|
||||
n = 0,
|
||||
t = 0;
|
||||
let s2 = "";
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
let s1 = "";
|
||||
if (s.startsWith("#EXTINF")) {
|
||||
s1 = s.slice(8);
|
||||
n++;
|
||||
if (n == 1) k1 = i;
|
||||
if (s2.indexOf(s1) == -1) {
|
||||
s2 = s2 + s1;
|
||||
m++
|
||||
}
|
||||
t = t + parseFloat(s1);
|
||||
i++;
|
||||
s = ss[i]
|
||||
}
|
||||
if (s.startsWith("#EXT-X-DISCONTINUITY")) {
|
||||
if (n == 5) {
|
||||
log("n:" + n);
|
||||
log("m:" + m);
|
||||
for (let j = k1; j < k1 + n * 2; j++) {
|
||||
log(ss[j])
|
||||
}
|
||||
log("广告位置:" + k1);
|
||||
log("数据条数:" + n);
|
||||
log("数据种类:" + m);
|
||||
log("广告时间:" + t.toFixed(5));
|
||||
ss.splice(k1, 2 * n + 1);
|
||||
i = i - 2 * n + 1
|
||||
}
|
||||
t = 0;
|
||||
m = 0;
|
||||
n = 0;
|
||||
s2 = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
let firststr = "";
|
||||
let maxl = 0;
|
||||
let kk = 0;
|
||||
let kkk1 = 1;
|
||||
let kkk2 = 0;
|
||||
let secondstr = "";
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
if (!s.startsWith("#")) {
|
||||
if (kk == 0) firststr = s;
|
||||
if (kk > 0) {
|
||||
if (maxl > b(firststr, s) + 1) {
|
||||
if (secondstr.length < 5) secondstr = s;
|
||||
kkk2++
|
||||
} else {
|
||||
maxl = b(firststr, s);
|
||||
kkk1++
|
||||
}
|
||||
}
|
||||
kk++;
|
||||
if (kk >= 30) break
|
||||
}
|
||||
}
|
||||
if (kkk2 > kkk1) firststr = secondstr;
|
||||
let firststrlen = firststr.length;
|
||||
let ml = Math.round(ss.length / 2).toString().length;
|
||||
let maxc = 0;
|
||||
let laststr = ss.toReversed().find(x => {
|
||||
if (!x.startsWith("#")) {
|
||||
let k = b(reverseString(firststr), reverseString(x));
|
||||
maxl = b(firststr, x);
|
||||
maxc++;
|
||||
if (firststrlen - maxl <= ml + k || maxc > 10) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
});
|
||||
log("最后一条切片:" + laststr);
|
||||
let ad_urls = [];
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
if (!s.startsWith("#")) {
|
||||
if (b(firststr, s) < maxl) {
|
||||
ad_urls.push(s);
|
||||
ss.splice(i - 1, 2);
|
||||
i = i - 2
|
||||
} else {
|
||||
ss[i] = urljoin(m3u8_url, s)
|
||||
}
|
||||
} else {
|
||||
ss[i] = s.replace(/URI=\"(.*)\"/, 'URI="' + urljoin(m3u8_url, "$1") + '"')
|
||||
}
|
||||
}
|
||||
log("处理的m3u8地址:" + m3u8_url);
|
||||
log("----广告地址----");
|
||||
log(ad_urls);
|
||||
m3u8 = ss.join("\n");
|
||||
log("处理耗时:" + ((new Date).getTime() - ts).toString());
|
||||
log(m3u8);
|
||||
return m3u8
|
||||
}
|
||||
|
||||
function forceOrder(lists, key, option) {
|
||||
let start = Math.floor(lists.length / 2);
|
||||
let end = Math.min(lists.length - 1, start + 1);
|
||||
if (start >= end) {
|
||||
return lists
|
||||
}
|
||||
let first = lists[start];
|
||||
let second = lists[end];
|
||||
if (key) {
|
||||
try {
|
||||
first = first[key];
|
||||
second = second[key]
|
||||
} catch (e) {}
|
||||
}
|
||||
if (option && typeof option === "function") {
|
||||
try {
|
||||
first = option(first);
|
||||
second = option(second)
|
||||
} catch (e) {}
|
||||
}
|
||||
first += "";
|
||||
second += "";
|
||||
if (first.match(/(\d+)/) && second.match(/(\d+)/)) {
|
||||
let num1 = Number(first.match(/(\d+)/)[1]);
|
||||
let num2 = Number(second.match(/(\d+)/)[1]);
|
||||
if (num1 > num2) {
|
||||
lists.reverse()
|
||||
}
|
||||
}
|
||||
return lists
|
||||
}
|
||||
let VODS = [];
|
||||
let VOD = {};
|
||||
let TABS = [];
|
||||
let LISTS = [];
|
||||
|
||||
function getQuery(url) {
|
||||
try {
|
||||
if (url.indexOf("?") > -1) {
|
||||
url = url.slice(url.indexOf("?") + 1)
|
||||
}
|
||||
let arr = url.split("#")[0].split("&");
|
||||
const resObj = {};
|
||||
arr.forEach(item => {
|
||||
let arr1 = item.split("=");
|
||||
let key = arr1[0];
|
||||
let value = arr1.slice(1).join("=");
|
||||
resObj[key] = value
|
||||
});
|
||||
return resObj
|
||||
} catch (err) {
|
||||
log(`getQuery发生错误:${e.message}`);
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
function urljoin(fromPath, nowPath) {
|
||||
fromPath = fromPath || "";
|
||||
nowPath = nowPath || "";
|
||||
return joinUrl(fromPath, nowPath)
|
||||
}
|
||||
var urljoin2 = urljoin;
|
||||
const defaultParser = {
|
||||
pdfh: pdfh,
|
||||
pdfa: pdfa,
|
||||
pd: pd
|
||||
};
|
||||
|
||||
function pdfh2(html, parse) {
|
||||
let html2 = html;
|
||||
try {
|
||||
if (typeof html !== "string") {
|
||||
html2 = html.rr(html.ele).toString()
|
||||
}
|
||||
} catch (e) {
|
||||
print(`html对象转文本发生了错误:${e.message}`)
|
||||
}
|
||||
let result = defaultParser.pdfh(html2, parse);
|
||||
let option = parse.includes("&&") ? parse.split("&&").slice(-1)[0] : parse.split(" ").slice(-1)[0];
|
||||
if (/style/.test(option.toLowerCase()) && /url\(/.test(result)) {
|
||||
try {
|
||||
result = result.match(/url\((.*?)\)/)[1];
|
||||
result = result.replace(/^['|"](.*)['|"]$/, "$1")
|
||||
} catch (e) {}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function pdfa2(html, parse) {
|
||||
let html2 = html;
|
||||
try {
|
||||
if (typeof html !== "string") {
|
||||
html2 = html.rr(html.ele).toString()
|
||||
}
|
||||
} catch (e) {
|
||||
print(`html对象转文本发生了错误:${e.message}`)
|
||||
}
|
||||
return defaultParser.pdfa(html2, parse)
|
||||
}
|
||||
|
||||
function pd2(html, parse, uri) {
|
||||
let ret = pdfh2(html, parse);
|
||||
if (typeof uri === "undefined" || !uri) {
|
||||
uri = ""
|
||||
}
|
||||
if (DOM_CHECK_ATTR.test(parse) && !SPECIAL_URL.test(ret)) {
|
||||
if (/http/.test(ret)) {
|
||||
ret = ret.slice(ret.indexOf("http"))
|
||||
} else {
|
||||
ret = urljoin(MY_URL, ret)
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
const parseTags = {
|
||||
jsp: {
|
||||
pdfh: pdfh2,
|
||||
pdfa: pdfa2,
|
||||
pd: pd2
|
||||
},
|
||||
json: {
|
||||
pdfh(html, parse) {
|
||||
if (!parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
if (typeof html === "string") {
|
||||
html = JSON.parse(html)
|
||||
}
|
||||
parse = parse.trim();
|
||||
if (!parse.startsWith("$.")) {
|
||||
parse = "$." + parse
|
||||
}
|
||||
parse = parse.split("||");
|
||||
for (let ps of parse) {
|
||||
let ret = cheerio.jp(ps, html);
|
||||
if (Array.isArray(ret)) {
|
||||
ret = ret[0] || ""
|
||||
} else {
|
||||
ret = ret || ""
|
||||
}
|
||||
if (ret && typeof ret !== "string") {
|
||||
ret = ret.toString()
|
||||
}
|
||||
if (ret) {
|
||||
return ret
|
||||
}
|
||||
}
|
||||
return ""
|
||||
},
|
||||
pdfa(html, parse) {
|
||||
if (!parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
if (typeof html === "string") {
|
||||
html = JSON.parse(html)
|
||||
}
|
||||
parse = parse.trim();
|
||||
if (!parse.startsWith("$.")) {
|
||||
parse = "$." + parse
|
||||
}
|
||||
let ret = cheerio.jp(parse, html);
|
||||
if (Array.isArray(ret) && Array.isArray(ret[0]) && ret.length === 1) {
|
||||
return ret[0] || []
|
||||
}
|
||||
return ret || []
|
||||
},
|
||||
pd(html, parse) {
|
||||
let ret = parseTags.json.pdfh(html, parse);
|
||||
if (ret) {
|
||||
return urljoin(MY_URL, ret)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
},
|
||||
jq: {
|
||||
pdfh(html, parse) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
parse = parse.trim();
|
||||
let result = defaultParser.pdfh(html, parse);
|
||||
return result
|
||||
},
|
||||
pdfa(html, parse) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return []
|
||||
}
|
||||
parse = parse.trim();
|
||||
let result = defaultParser.pdfa(html, parse);
|
||||
print(`pdfa解析${parse}=>${result.length}`);
|
||||
return result
|
||||
},
|
||||
pd(html, parse, base_url) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
parse = parse.trim();
|
||||
base_url = base_url || MY_URL;
|
||||
return defaultParser.pd(html, parse, base_url)
|
||||
}
|
||||
},
|
||||
getParse(p0) {
|
||||
if (p0.startsWith("jsp:")) {
|
||||
return this.jsp
|
||||
} else if (p0.startsWith("json:")) {
|
||||
return this.json
|
||||
} else if (p0.startsWith("jq:")) {
|
||||
return this.jq
|
||||
} else {
|
||||
return this.jq
|
||||
}
|
||||
}
|
||||
};
|
||||
const stringify = JSON.stringify;
|
||||
const jsp = parseTags.jsp;
|
||||
const jq = parseTags.jq;
|
||||
|
||||
function readFile(filePath) {
|
||||
filePath = filePath || "./uri.min.js";
|
||||
var fd = os.open(filePath);
|
||||
var buffer = new ArrayBuffer(1024);
|
||||
var len = os.read(fd, buffer, 0, 1024);
|
||||
console.log(len);
|
||||
let text = String.fromCharCode.apply(null, new Uint8Array(buffer));
|
||||
console.log(text);
|
||||
return text
|
||||
}
|
||||
|
||||
function dealJson(html) {
|
||||
try {
|
||||
html = html.trim();
|
||||
if (!(html.startsWith("{") && html.endsWith("}") || html.startsWith("[") && html.endsWith("]"))) {
|
||||
html = "{" + html.match(/.*?\{(.*)\}/m)[1] + "}"
|
||||
}
|
||||
} catch (e) {}
|
||||
try {
|
||||
html = JSON.parse(html)
|
||||
} catch (e) {}
|
||||
return html
|
||||
}
|
||||
var OcrApi = {
|
||||
api: OCR_API,
|
||||
classification: function(img) {
|
||||
let code = "";
|
||||
try {
|
||||
log("通过drpy_ocr验证码接口过验证...");
|
||||
let html = "";
|
||||
if (this.api.endsWith("drpy/text")) {
|
||||
html = request(this.api, {
|
||||
data: {
|
||||
img: img
|
||||
},
|
||||
headers: {
|
||||
"User-Agent": PC_UA
|
||||
},
|
||||
method: "POST"
|
||||
}, true)
|
||||
} else {
|
||||
html = post(this.api, {
|
||||
body: img
|
||||
})
|
||||
}
|
||||
code = html || ""
|
||||
} catch (e) {
|
||||
log(`OCR识别验证码发生错误:${e.message}`)
|
||||
}
|
||||
return code
|
||||
}
|
||||
};
|
||||
|
||||
function verifyCode(url) {
|
||||
let cnt = 0;
|
||||
let host = getHome(url);
|
||||
let cookie = "";
|
||||
while (cnt < OCR_RETRY) {
|
||||
try {
|
||||
let yzm_url = `${host}/index.php/verify/index.html`;
|
||||
console.log(`验证码链接:${yzm_url}`);
|
||||
let hhtml = request(yzm_url, {
|
||||
withHeaders: true,
|
||||
toBase64: true
|
||||
}, true);
|
||||
let json = JSON.parse(hhtml);
|
||||
if (!cookie) {
|
||||
let setCk = Object.keys(json).find(it => it.toLowerCase() === "set-cookie");
|
||||
cookie = setCk ? json[setCk].split(";")[0] : ""
|
||||
}
|
||||
console.log("cookie:" + cookie);
|
||||
let img = json.body;
|
||||
let code = OcrApi.classification(img);
|
||||
console.log(`第${cnt+1}次验证码识别结果:${code}`);
|
||||
let submit_url = `${host}/index.php/ajax/verify_check?type=search&verify=${code}`;
|
||||
console.log(submit_url);
|
||||
let html = request(submit_url, {
|
||||
headers: {
|
||||
Cookie: cookie
|
||||
},
|
||||
method: "POST"
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
if (html.msg === "ok") {
|
||||
console.log(`第${cnt+1}次验证码提交成功`);
|
||||
return cookie
|
||||
} else if (html.msg !== "ok" && cnt + 1 >= OCR_RETRY) {
|
||||
cookie = ""
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`第${cnt+1}次验证码提交失败:${e.message}`);
|
||||
if (cnt + 1 >= OCR_RETRY) {
|
||||
cookie = ""
|
||||
}
|
||||
}
|
||||
cnt += 1
|
||||
}
|
||||
return cookie
|
||||
}
|
||||
|
||||
function setItem(k, v) {
|
||||
local.set(RKEY, k, v);
|
||||
console.log(`规则${RKEY}设置${k} => ${v}`)
|
||||
}
|
||||
|
||||
function getItem(k, v) {
|
||||
return local.get(RKEY, k) || v
|
||||
}
|
||||
|
||||
function clearItem(k) {
|
||||
local.delete(RKEY, k)
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
function buildUrl(url, obj) {
|
||||
obj = obj || {};
|
||||
if (url.indexOf("?") < 0) {
|
||||
url += "?"
|
||||
}
|
||||
let param_list = [];
|
||||
let keys = Object.keys(obj);
|
||||
keys.forEach(it => {
|
||||
param_list.push(it + "=" + obj[it])
|
||||
});
|
||||
let prs = param_list.join("&");
|
||||
if (keys.length > 0 && !url.endsWith("?")) {
|
||||
url += "&"
|
||||
}
|
||||
url += prs;
|
||||
return url
|
||||
}
|
||||
|
||||
function $require(url) {
|
||||
eval(request(url))
|
||||
}
|
||||
|
||||
function keysToLowerCase(obj) {
|
||||
return Object.keys(obj).reduce((result, key) => {
|
||||
const newKey = key.toLowerCase();
|
||||
result[newKey] = obj[key];
|
||||
return result
|
||||
}, {})
|
||||
}
|
||||
|
||||
function parseQueryString(query) {
|
||||
const params = {};
|
||||
query.split("&").forEach(function(part) {
|
||||
const regex = /^(.*?)=(.*)/;
|
||||
const match = part.match(regex);
|
||||
if (match) {
|
||||
const key = decodeURIComponent(match[1]);
|
||||
const value = decodeURIComponent(match[2]);
|
||||
params[key] = value
|
||||
}
|
||||
});
|
||||
return params
|
||||
}
|
||||
|
||||
function encodeIfContainsSpecialChars(value) {
|
||||
const specialChars = ":/?#[]@!$'()*+,;=%";
|
||||
if (specialChars.split("").some(char => value.includes(char))) {
|
||||
return encodeURIComponent(value)
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
function objectToQueryString(obj) {
|
||||
const encoded = [];
|
||||
for (let key in obj) {
|
||||
if (obj.hasOwnProperty(key)) {
|
||||
encoded.push(encodeURIComponent(key) + "=" + encodeIfContainsSpecialChars(obj[key]))
|
||||
}
|
||||
}
|
||||
return encoded.join("&")
|
||||
}
|
||||
|
||||
function request(url, obj, ocr_flag) {
|
||||
ocr_flag = ocr_flag || false;
|
||||
if (typeof obj === "undefined" || !obj || obj === {}) {
|
||||
if (!fetch_params || !fetch_params.headers) {
|
||||
let headers = {
|
||||
"User-Agent": MOBILE_UA
|
||||
};
|
||||
if (rule.headers) {
|
||||
Object.assign(headers, rule.headers)
|
||||
}
|
||||
if (!fetch_params) {
|
||||
fetch_params = {}
|
||||
}
|
||||
fetch_params.headers = headers
|
||||
}
|
||||
if (!fetch_params.headers.Referer) {
|
||||
fetch_params.headers.Referer = getHome(url)
|
||||
}
|
||||
obj = fetch_params
|
||||
} else {
|
||||
let headers = obj.headers || {};
|
||||
let keys = Object.keys(headers).map(it => it.toLowerCase());
|
||||
if (!keys.includes("user-agent")) {
|
||||
headers["User-Agent"] = MOBILE_UA;
|
||||
if (typeof fetch_params === "object" && fetch_params && fetch_params.headers) {
|
||||
let fetch_headers = keysToLowerCase(fetch_params.headers);
|
||||
if (fetch_headers["user-agent"]) {
|
||||
headers["User-Agent"] = fetch_headers["user-agent"]
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!keys.includes("referer")) {
|
||||
headers["Referer"] = getHome(url)
|
||||
}
|
||||
obj.headers = headers
|
||||
}
|
||||
if (rule.encoding && rule.encoding !== "utf-8" && !ocr_flag) {
|
||||
if (!obj.headers.hasOwnProperty("Content-Type") && !obj.headers.hasOwnProperty("content-type")) {
|
||||
obj.headers["Content-Type"] = "text/html; charset=" + rule.encoding
|
||||
}
|
||||
}
|
||||
if (typeof obj.body != "undefined" && obj.body && typeof obj.body === "string") {
|
||||
if (!obj.headers.hasOwnProperty("Content-Type") && !obj.headers.hasOwnProperty("content-type")) {
|
||||
obj.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=" + rule.encoding
|
||||
}
|
||||
} else if (typeof obj.body != "undefined" && obj.body && typeof obj.body === "object") {
|
||||
obj.data = obj.body;
|
||||
delete obj.body
|
||||
}
|
||||
if (!url) {
|
||||
return obj.withHeaders ? "{}" : ""
|
||||
}
|
||||
if (obj.toBase64) {
|
||||
obj.buffer = 2;
|
||||
delete obj.toBase64
|
||||
}
|
||||
if (obj.redirect === false) {
|
||||
obj.redirect = 0
|
||||
}
|
||||
if (obj.headers.hasOwnProperty("Content-Type") || obj.headers.hasOwnProperty("content-type")) {
|
||||
let _contentType = obj.headers["Content-Type"] || obj.headers["content-type"] || "";
|
||||
if (_contentType.includes("application/x-www-form-urlencoded")) {
|
||||
log("custom body is application/x-www-form-urlencoded");
|
||||
if (typeof obj.body == "string") {
|
||||
let temp_obj = parseQueryString(obj.body);
|
||||
console.log(JSON.stringify(temp_obj))
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(obj.headers));
|
||||
console.log("request:" + url + `|method:${obj.method||"GET"}|body:${obj.body||""}`);
|
||||
let res = req(url, obj);
|
||||
let html = res.content || "";
|
||||
if (obj.withHeaders) {
|
||||
let htmlWithHeaders = res.headers;
|
||||
htmlWithHeaders.body = html;
|
||||
return JSON.stringify(htmlWithHeaders)
|
||||
} else {
|
||||
return html
|
||||
}
|
||||
}
|
||||
|
||||
function post(url, obj) {
|
||||
obj = obj || {};
|
||||
obj.method = "POST";
|
||||
return request(url, obj)
|
||||
}
|
||||
|
||||
function reqCookie(url, obj, all_cookie) {
|
||||
obj = obj || {};
|
||||
obj.withHeaders = true;
|
||||
all_cookie = all_cookie || false;
|
||||
let html = request(url, obj);
|
||||
let json = JSON.parse(html);
|
||||
let setCk = Object.keys(json).find(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(";")
|
||||
}
|
||||
if (!all_cookie) {
|
||||
cookie = cookie.split(";")[0]
|
||||
}
|
||||
html = json.body;
|
||||
return {
|
||||
cookie: cookie,
|
||||
html: html
|
||||
}
|
||||
}
|
||||
fetch = request;
|
||||
print = function(data) {
|
||||
data = data || "";
|
||||
if (typeof data == "object" && Object.keys(data).length > 0) {
|
||||
try {
|
||||
data = JSON.stringify(data);
|
||||
console.log(data)
|
||||
} catch (e) {
|
||||
console.log(typeof data + ":" + data.length);
|
||||
return
|
||||
}
|
||||
} else if (typeof data == "object" && Object.keys(data).length < 1) {
|
||||
console.log("null object")
|
||||
} else {
|
||||
console.log(data)
|
||||
}
|
||||
};
|
||||
log = print;
|
||||
|
||||
function checkHtml(html, url, obj) {
|
||||
if (/\?btwaf=/.test(html)) {
|
||||
let btwaf = html.match(/btwaf(.*?)"/)[1];
|
||||
url = url.split("#")[0] + "?btwaf" + btwaf;
|
||||
print("宝塔验证访问链接:" + url);
|
||||
html = request(url, obj)
|
||||
}
|
||||
return html
|
||||
}
|
||||
|
||||
function getCode(url, obj) {
|
||||
let html = request(url, obj);
|
||||
html = checkHtml(html, url, obj);
|
||||
return html
|
||||
}
|
||||
|
||||
function getHtml(url) {
|
||||
let obj = {};
|
||||
if (rule.headers) {
|
||||
obj.headers = rule.headers
|
||||
}
|
||||
let cookie = getItem(RULE_CK, "");
|
||||
if (cookie) {
|
||||
if (obj.headers && !Object.keys(obj.headers).map(it => it.toLowerCase()).includes("cookie")) {
|
||||
log("历史无cookie,新增过验证后的cookie");
|
||||
obj.headers["Cookie"] = cookie
|
||||
} else if (obj.headers && obj.headers.cookie && obj.headers.cookie !== cookie) {
|
||||
obj.headers["Cookie"] = cookie;
|
||||
log("历史有小写过期的cookie,更新过验证后的cookie")
|
||||
} else if (obj.headers && obj.headers.Cookie && obj.headers.Cookie !== cookie) {
|
||||
obj.headers["Cookie"] = cookie;
|
||||
log("历史有大写过期的cookie,更新过验证后的cookie")
|
||||
} else if (!obj.headers) {
|
||||
obj.headers = {
|
||||
Cookie: cookie
|
||||
};
|
||||
log("历史无headers,更新过验证后的含cookie的headers")
|
||||
}
|
||||
}
|
||||
let html = getCode(url, obj);
|
||||
return html
|
||||
}
|
||||
|
||||
function homeParse(homeObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let classes = [];
|
||||
if (homeObj.class_name && homeObj.class_url) {
|
||||
let names = homeObj.class_name.split("&");
|
||||
let urls = homeObj.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]
|
||||
})
|
||||
}
|
||||
}
|
||||
if (homeObj.class_parse) {
|
||||
if (homeObj.class_parse.startsWith("js:")) {
|
||||
var input = homeObj.MY_URL;
|
||||
try {
|
||||
eval(homeObj.class_parse.replace("js:", ""));
|
||||
if (Array.isArray(input)) {
|
||||
classes = input
|
||||
}
|
||||
} catch (e) {
|
||||
log(`通过js动态获取分类发生了错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
let p = homeObj.class_parse.split(";");
|
||||
let p0 = p[0];
|
||||
let _ps = parseTags.getParse(p0);
|
||||
let is_json = p0.startsWith("json:");
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
MY_URL = rule.url;
|
||||
if (is_json) {
|
||||
try {
|
||||
let cms_cate_url = homeObj.MY_URL.replace("ac=detail", "ac=list");
|
||||
let html = homeObj.home_html || getHtml(cms_cate_url);
|
||||
if (html) {
|
||||
if (cms_cate_url === homeObj.MY_URL) {
|
||||
homeHtmlCache = html
|
||||
}
|
||||
let list = _pdfa(html, p0.replace("json:", ""));
|
||||
if (list && list.length > 0) {
|
||||
classes = list
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
} else if (p.length >= 3 && !is_json) {
|
||||
try {
|
||||
let html = homeObj.home_html || getHtml(homeObj.MY_URL);
|
||||
if (html) {
|
||||
homeHtmlCache = html;
|
||||
let list = _pdfa(html, p0);
|
||||
if (list && list.length > 0) {
|
||||
list.forEach((it, idex) => {
|
||||
try {
|
||||
let name = _pdfh(it, p[1]);
|
||||
if (homeObj.cate_exclude && new RegExp(homeObj.cate_exclude).test(name)) {
|
||||
return
|
||||
}
|
||||
let url = _pd(it, p[2]);
|
||||
if (p.length > 3 && p[3] && !homeObj.home_html) {
|
||||
let exp = new RegExp(p[3]);
|
||||
url = url.match(exp)[1]
|
||||
}
|
||||
classes.push({
|
||||
type_id: url.trim(),
|
||||
type_name: name.trim()
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
classes = classes.filter(it => !homeObj.cate_exclude || !new RegExp(homeObj.cate_exclude).test(it.type_name));
|
||||
let resp = {
|
||||
class: classes
|
||||
};
|
||||
if (homeObj.filter) {
|
||||
resp.filters = homeObj.filter
|
||||
}
|
||||
console.log(JSON.stringify(resp));
|
||||
return JSON.stringify(resp)
|
||||
}
|
||||
|
||||
function getPP(p, pn, pp, ppn) {
|
||||
try {
|
||||
let ps = p[pn] === "*" && pp.length > ppn ? pp[ppn] : p[pn];
|
||||
return ps
|
||||
} catch (e) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function homeVodParse(homeVodObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let d = [];
|
||||
MY_URL = homeVodObj.homeUrl;
|
||||
console.log(MY_URL);
|
||||
let t1 = (new Date).getTime();
|
||||
let p = homeVodObj.推荐;
|
||||
print("p:" + p);
|
||||
if (p === "*" && rule.一级) {
|
||||
p = rule.一级;
|
||||
homeVodObj.double = false
|
||||
}
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
p = p.trim();
|
||||
let pp = rule.一级 ? rule.一级.split(";") : [];
|
||||
if (p.startsWith("js:")) {
|
||||
const TYPE = "home";
|
||||
var input = MY_URL;
|
||||
HOST = rule.host;
|
||||
eval(p.replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (!homeVodObj.double && p.length < 5) {
|
||||
return "{}"
|
||||
} else if (homeVodObj.double && p.length < 6) {
|
||||
return "{}"
|
||||
}
|
||||
let p0 = getPP(p, 0, pp, 0);
|
||||
let _ps = parseTags.getParse(p0);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p0.startsWith("json:");
|
||||
p0 = p0.replace(/^(jsp:|json:|jq:)/, "");
|
||||
let html = homeHtmlCache || getHtml(MY_URL);
|
||||
homeHtmlCache = undefined;
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
try {
|
||||
console.log("double:" + homeVodObj.double);
|
||||
if (homeVodObj.double) {
|
||||
let items = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 0);
|
||||
let p2 = getPP(p, 2, pp, 1);
|
||||
let p3 = getPP(p, 3, pp, 2);
|
||||
let p4 = getPP(p, 4, pp, 3);
|
||||
let p5 = getPP(p, 5, pp, 4);
|
||||
let p6 = getPP(p, 6, pp, 5);
|
||||
for (let item of items) {
|
||||
let items2 = _pdfa(item, p1);
|
||||
for (let item2 of items2) {
|
||||
try {
|
||||
let title = _pdfh(item2, p2);
|
||||
let img = "";
|
||||
try {
|
||||
img = _pd(item2, p3)
|
||||
} catch (e) {}
|
||||
let desc = "";
|
||||
try {
|
||||
desc = _pdfh(item2, p4)
|
||||
} catch (e) {}
|
||||
let links = [];
|
||||
for (let _p5 of p5.split("+")) {
|
||||
let link = !homeVodObj.detailUrl ? _pd(item2, _p5, MY_URL) : _pdfh(item2, _p5);
|
||||
links.push(link)
|
||||
}
|
||||
let content;
|
||||
if (p.length > 6 && p[6]) {
|
||||
content = _pdfh(item2, p6)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vid = links.join("$");
|
||||
if (rule.二级 === "*") {
|
||||
vid = vid + "@@" + title + "@@" + img
|
||||
}
|
||||
let vod = {
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: desc,
|
||||
vod_content: content,
|
||||
vod_id: vid
|
||||
};
|
||||
d.push(vod)
|
||||
} catch (e) {
|
||||
console.log(`首页列表双层定位处理发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let items = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 1);
|
||||
let p2 = getPP(p, 2, pp, 2);
|
||||
let p3 = getPP(p, 3, pp, 3);
|
||||
let p4 = getPP(p, 4, pp, 4);
|
||||
let p5 = getPP(p, 5, pp, 5);
|
||||
for (let item of items) {
|
||||
try {
|
||||
let title = _pdfh(item, p1);
|
||||
let img = "";
|
||||
try {
|
||||
img = _pd(item, p2, MY_URL)
|
||||
} catch (e) {}
|
||||
let desc = "";
|
||||
try {
|
||||
desc = _pdfh(item, p3)
|
||||
} catch (e) {}
|
||||
let links = [];
|
||||
for (let _p5 of p4.split("+")) {
|
||||
let link = !homeVodObj.detailUrl ? _pd(item, _p5, MY_URL) : _pdfh(item, _p5);
|
||||
links.push(link)
|
||||
}
|
||||
let content;
|
||||
if (p.length > 5 && p[5]) {
|
||||
content = _pdfh(item, p5)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vid = links.join("$");
|
||||
if (rule.二级 === "*") {
|
||||
vid = vid + "@@" + title + "@@" + img
|
||||
}
|
||||
let vod = {
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: desc,
|
||||
vod_content: content,
|
||||
vod_id: vid
|
||||
};
|
||||
d.push(vod)
|
||||
} catch (e) {
|
||||
console.log(`首页列表单层定位处理发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
let t2 = (new Date).getTime();
|
||||
console.log("加载首页推荐耗时:" + (t2 - t1) + "毫秒");
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
if (d.length > 0) {
|
||||
print(d.slice(0, 2))
|
||||
}
|
||||
return JSON.stringify({
|
||||
list: d
|
||||
})
|
||||
}
|
||||
|
||||
function categoryParse(cateObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let p = cateObj.一级;
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
let d = [];
|
||||
let url = cateObj.url.replaceAll("fyclass", cateObj.tid);
|
||||
if (cateObj.pg === 1 && url.includes("[") && url.includes("]")) {
|
||||
url = url.split("[")[1].split("]")[0]
|
||||
} else if (cateObj.pg > 1 && url.includes("[") && url.includes("]")) {
|
||||
url = url.split("[")[0]
|
||||
}
|
||||
if (rule.filter_url) {
|
||||
if (!/fyfilter/.test(url)) {
|
||||
if (!url.endsWith("&") && !rule.filter_url.startsWith("&")) {
|
||||
url += "&"
|
||||
}
|
||||
url += rule.filter_url
|
||||
} else {
|
||||
url = url.replace("fyfilter", rule.filter_url)
|
||||
}
|
||||
url = url.replaceAll("fyclass", cateObj.tid);
|
||||
let fl = cateObj.filter ? cateObj.extend : {};
|
||||
if (rule.filter_def && typeof rule.filter_def === "object") {
|
||||
try {
|
||||
if (Object.keys(rule.filter_def).length > 0 && rule.filter_def.hasOwnProperty(cateObj.tid)) {
|
||||
let self_fl_def = rule.filter_def[cateObj.tid];
|
||||
if (self_fl_def && typeof self_fl_def === "object") {
|
||||
let fl_def = JSON.parse(JSON.stringify(self_fl_def));
|
||||
fl = Object.assign(fl_def, fl)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
print(`合并不同分类对应的默认筛选出错:${e.message}`)
|
||||
}
|
||||
}
|
||||
let new_url;
|
||||
new_url = cheerio.jinja2(url, {
|
||||
fl: fl,
|
||||
fyclass: cateObj.tid
|
||||
});
|
||||
url = new_url
|
||||
}
|
||||
if (/fypage/.test(url)) {
|
||||
if (url.includes("(") && url.includes(")")) {
|
||||
let url_rep = url.match(/.*?\((.*)\)/)[1];
|
||||
let cnt_page = url_rep.replaceAll("fypage", cateObj.pg);
|
||||
let cnt_pg = eval(cnt_page);
|
||||
url = url.replaceAll(url_rep, cnt_pg).replaceAll("(", "").replaceAll(")", "")
|
||||
} else {
|
||||
url = url.replaceAll("fypage", cateObj.pg)
|
||||
}
|
||||
}
|
||||
MY_URL = url;
|
||||
console.log(MY_URL);
|
||||
p = p.trim();
|
||||
const MY_CATE = cateObj.tid;
|
||||
if (p.startsWith("js:")) {
|
||||
var MY_FL = cateObj.extend;
|
||||
const TYPE = "cate";
|
||||
var input = MY_URL;
|
||||
const MY_PAGE = cateObj.pg;
|
||||
var desc = "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (p.length < 5) {
|
||||
return "{}"
|
||||
}
|
||||
let _ps = parseTags.getParse(p[0]);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p[0].startsWith("json:");
|
||||
p[0] = p[0].replace(/^(jsp:|json:|jq:)/, "");
|
||||
try {
|
||||
let html = getHtml(MY_URL);
|
||||
if (html) {
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
let list = _pdfa(html, p[0]);
|
||||
list.forEach(it => {
|
||||
let links = p[4].split("+").map(p4 => {
|
||||
return !rule.detailUrl ? _pd(it, p4, MY_URL) : _pdfh(it, p4)
|
||||
});
|
||||
let link = links.join("$");
|
||||
let vod_id = rule.detailUrl ? MY_CATE + "$" + link : link;
|
||||
let vod_name = _pdfh(it, p[1]).replace(/\n|\t/g, "").trim();
|
||||
let vod_pic = _pd(it, p[2], MY_URL);
|
||||
if (rule.二级 === "*") {
|
||||
vod_id = vod_id + "@@" + vod_name + "@@" + vod_pic
|
||||
}
|
||||
d.push({
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
vod_remarks: _pdfh(it, p[3]).replace(/\n|\t/g, "").trim()
|
||||
})
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
}
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
if (d.length > 0) {
|
||||
print(d.slice(0, 2))
|
||||
}
|
||||
let pagecount = 0;
|
||||
if (rule.pagecount && typeof rule.pagecount === "object" && rule.pagecount.hasOwnProperty(MY_CATE)) {
|
||||
print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);
|
||||
pagecount = parseInt(rule.pagecount[MY_CATE])
|
||||
}
|
||||
let nodata = {
|
||||
list: [{
|
||||
vod_name: "无数据,防无限请求",
|
||||
vod_id: "no_data",
|
||||
vod_remarks: "不要点,会崩的",
|
||||
vod_pic: "https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"
|
||||
}],
|
||||
total: 1,
|
||||
pagecount: 1,
|
||||
page: 1,
|
||||
limit: 1
|
||||
};
|
||||
let vod = d.length < 1 ? JSON.stringify(nodata) : JSON.stringify({
|
||||
page: parseInt(cateObj.pg),
|
||||
pagecount: pagecount || 999,
|
||||
limit: 20,
|
||||
total: 999,
|
||||
list: d
|
||||
});
|
||||
return vod
|
||||
}
|
||||
|
||||
function searchParse(searchObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let d = [];
|
||||
if (!searchObj.searchUrl) {
|
||||
return "{}"
|
||||
}
|
||||
if (rule.searchNoPage && Number(searchObj.pg) > 1) {
|
||||
return "{}"
|
||||
}
|
||||
let p = searchObj.搜索 === "*" && rule.一级 ? rule.一级 : searchObj.搜索;
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
p = p.trim();
|
||||
let pp = rule.一级 ? rule.一级.split(";") : [];
|
||||
let url = searchObj.searchUrl.replaceAll("**", searchObj.wd);
|
||||
if (searchObj.pg === 1 && url.includes("[") && url.includes("]") && !url.includes("#")) {
|
||||
url = url.split("[")[1].split("]")[0]
|
||||
} else if (searchObj.pg > 1 && url.includes("[") && url.includes("]") && !url.includes("#")) {
|
||||
url = url.split("[")[0]
|
||||
}
|
||||
if (/fypage/.test(url)) {
|
||||
if (url.includes("(") && url.includes(")")) {
|
||||
let url_rep = url.match(/.*?\((.*)\)/)[1];
|
||||
let cnt_page = url_rep.replaceAll("fypage", searchObj.pg);
|
||||
let cnt_pg = eval(cnt_page);
|
||||
url = url.replaceAll(url_rep, cnt_pg).replaceAll("(", "").replaceAll(")", "")
|
||||
} else {
|
||||
url = url.replaceAll("fypage", searchObj.pg)
|
||||
}
|
||||
}
|
||||
MY_URL = url;
|
||||
console.log(MY_URL);
|
||||
if (p.startsWith("js:")) {
|
||||
const TYPE = "search";
|
||||
const MY_PAGE = searchObj.pg;
|
||||
const KEY = searchObj.wd;
|
||||
var input = MY_URL;
|
||||
var detailUrl = rule.detailUrl || "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (p.length < 5) {
|
||||
return "{}"
|
||||
}
|
||||
let p0 = getPP(p, 0, pp, 0);
|
||||
let _ps = parseTags.getParse(p0);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p0.startsWith("json:");
|
||||
p0 = p0.replace(/^(jsp:|json:|jq:)/, "");
|
||||
try {
|
||||
let req_method = MY_URL.split(";").length > 1 ? MY_URL.split(";")[1].toLowerCase() : "get";
|
||||
let html;
|
||||
if (req_method === "post") {
|
||||
let rurls = MY_URL.split(";")[0].split("#");
|
||||
let rurl = rurls[0];
|
||||
let params = rurls.length > 1 ? rurls[1] : "";
|
||||
print(`post=》rurl:${rurl},params:${params}`);
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let postData = {
|
||||
body: params
|
||||
};
|
||||
Object.assign(_fetch_params, postData);
|
||||
html = post(rurl, _fetch_params)
|
||||
} else if (req_method === "postjson") {
|
||||
let rurls = MY_URL.split(";")[0].split("#");
|
||||
let rurl = rurls[0];
|
||||
let params = rurls.length > 1 ? rurls[1] : "";
|
||||
print(`postjson-》rurl:${rurl},params:${params}`);
|
||||
try {
|
||||
params = JSON.parse(params)
|
||||
} catch (e) {
|
||||
params = "{}"
|
||||
}
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let postData = {
|
||||
body: params
|
||||
};
|
||||
Object.assign(_fetch_params, postData);
|
||||
html = post(rurl, _fetch_params)
|
||||
} else {
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
if (html) {
|
||||
let search_tag = rule.搜索验证标识 || "系统安全验证|输入验证码";
|
||||
if (new RegExp(search_tag).test(html)) {
|
||||
let cookie = verifyCode(MY_URL);
|
||||
if (cookie) {
|
||||
console.log(`本次成功过验证,cookie:${cookie}`);
|
||||
setItem(RULE_CK, cookie)
|
||||
} else {
|
||||
console.log(`本次自动过搜索验证失败,cookie:${cookie}`)
|
||||
}
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
if (!html.includes(searchObj.wd)) {
|
||||
console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");
|
||||
console.log(html)
|
||||
}
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
let list = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 1);
|
||||
let p2 = getPP(p, 2, pp, 2);
|
||||
let p3 = getPP(p, 3, pp, 3);
|
||||
let p4 = getPP(p, 4, pp, 4);
|
||||
let p5 = getPP(p, 5, pp, 5);
|
||||
list.forEach(it => {
|
||||
let links = p4.split("+").map(_p4 => {
|
||||
return !rule.detailUrl ? _pd(it, _p4, MY_URL) : _pdfh(it, _p4)
|
||||
});
|
||||
let link = links.join("$");
|
||||
let content;
|
||||
if (p.length > 5 && p[5]) {
|
||||
content = _pdfh(it, p5)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vod_id = link;
|
||||
let vod_name = _pdfh(it, p1).replace(/\n|\t/g, "").trim();
|
||||
let vod_pic = _pd(it, p2, MY_URL);
|
||||
if (rule.二级 === "*") {
|
||||
vod_id = vod_id + "@@" + vod_name + "@@" + vod_pic
|
||||
}
|
||||
let ob = {
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
vod_remarks: _pdfh(it, p3).replace(/\n|\t/g, "").trim(),
|
||||
vod_content: content.replace(/\n|\t/g, "").trim()
|
||||
};
|
||||
d.push(ob)
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
print(`搜索发生错误:${e.message}`);
|
||||
return "{}"
|
||||
}
|
||||
}
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
return JSON.stringify({
|
||||
page: parseInt(searchObj.pg),
|
||||
pagecount: 10,
|
||||
limit: 20,
|
||||
total: 100,
|
||||
list: d
|
||||
})
|
||||
}
|
||||
|
||||
function detailParse(detailObj) {
|
||||
let t1 = (new Date).getTime();
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let orId = detailObj.orId;
|
||||
let vod_name = "片名";
|
||||
let vod_pic = "";
|
||||
let vod_id = orId;
|
||||
if (rule.二级 === "*") {
|
||||
let extra = orId.split("@@");
|
||||
vod_name = extra.length > 1 ? extra[1] : vod_name;
|
||||
vod_pic = extra.length > 2 ? extra[2] : vod_pic
|
||||
}
|
||||
let vod = {
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
type_name: "类型",
|
||||
vod_year: "年份",
|
||||
vod_area: "地区",
|
||||
vod_remarks: "更新信息",
|
||||
vod_actor: "主演",
|
||||
vod_director: "导演",
|
||||
vod_content: "简介"
|
||||
};
|
||||
let p = detailObj.二级;
|
||||
let url = detailObj.url;
|
||||
let detailUrl = detailObj.detailUrl;
|
||||
let fyclass = detailObj.fyclass;
|
||||
let tab_exclude = detailObj.tab_exclude;
|
||||
let html = detailObj.html || "";
|
||||
MY_URL = url;
|
||||
if (detailObj.二级访问前) {
|
||||
try {
|
||||
print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);
|
||||
eval(detailObj.二级访问前.trim().replace("js:", ""))
|
||||
} catch (e) {
|
||||
print(`二级访问前执行代码出现错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (p === "*") {
|
||||
vod.vod_play_from = "在线播放";
|
||||
vod.vod_remarks = detailUrl;
|
||||
vod.vod_actor = "没有二级,只有一级链接直接嗅探播放";
|
||||
vod.vod_content = MY_URL;
|
||||
vod.vod_play_url = "嗅探播放$" + MY_URL.split("@@")[0]
|
||||
} else if (typeof p === "string" && p.trim().startsWith("js:")) {
|
||||
const TYPE = "detail";
|
||||
var input = MY_URL;
|
||||
var play_url = "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
vod = VOD;
|
||||
console.log(JSON.stringify(vod))
|
||||
} else if (p && typeof p === "object") {
|
||||
let tt1 = (new Date).getTime();
|
||||
if (!html) {
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);
|
||||
let _ps;
|
||||
if (p.is_json) {
|
||||
print("二级是json");
|
||||
_ps = parseTags.json;
|
||||
html = dealJson(html)
|
||||
} else if (p.is_jsp) {
|
||||
print("二级是jsp");
|
||||
_ps = parseTags.jsp
|
||||
} else if (p.is_jq) {
|
||||
print("二级是jq");
|
||||
_ps = parseTags.jq
|
||||
} else {
|
||||
print("二级默认jq");
|
||||
_ps = parseTags.jq
|
||||
}
|
||||
let tt2 = (new Date).getTime();
|
||||
print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
if (p.title) {
|
||||
let p1 = p.title.split(";");
|
||||
vod.vod_name = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim();
|
||||
let type_name = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g, "").replace(/ /g, "").trim() : "";
|
||||
vod.type_name = type_name || vod.type_name
|
||||
}
|
||||
if (p.desc) {
|
||||
try {
|
||||
let p1 = p.desc.split(";");
|
||||
vod.vod_remarks = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim();
|
||||
vod.vod_year = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_area = p1.length > 2 ? _pdfh(html, p1[2]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_actor = p1.length > 3 ? _pdfh(html, p1[3]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_director = p1.length > 4 ? _pdfh(html, p1[4]).replace(/\n|\t/g, "").trim() : ""
|
||||
} catch (e) {}
|
||||
}
|
||||
if (p.content) {
|
||||
try {
|
||||
let p1 = p.content.split(";");
|
||||
vod.vod_content = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim()
|
||||
} catch (e) {}
|
||||
}
|
||||
if (p.img) {
|
||||
try {
|
||||
let p1 = p.img.split(";");
|
||||
vod.vod_pic = _pd(html, p1[0], MY_URL)
|
||||
} catch (e) {}
|
||||
}
|
||||
let vod_play_from = "$$$";
|
||||
let playFrom = [];
|
||||
if (p.重定向 && p.重定向.startsWith("js:")) {
|
||||
print("开始执行重定向代码:" + p.重定向);
|
||||
html = eval(p.重定向.replace("js:", ""))
|
||||
}
|
||||
if (p.tabs) {
|
||||
if (p.tabs.startsWith("js:")) {
|
||||
print("开始执行tabs代码:" + p.tabs);
|
||||
var input = MY_URL;
|
||||
eval(p.tabs.replace("js:", ""));
|
||||
playFrom = TABS
|
||||
} else {
|
||||
let p_tab = p.tabs.split(";")[0];
|
||||
let vHeader = _pdfa(html, p_tab);
|
||||
console.log(vHeader.length);
|
||||
let tab_text = p.tab_text || "body&&Text";
|
||||
let new_map = {};
|
||||
for (let v of vHeader) {
|
||||
let v_title = _pdfh(v, tab_text).trim();
|
||||
if (!v_title) {
|
||||
v_title = "线路空"
|
||||
}
|
||||
console.log(v_title);
|
||||
if (tab_exclude && new RegExp(tab_exclude).test(v_title)) {
|
||||
continue
|
||||
}
|
||||
if (!new_map.hasOwnProperty(v_title)) {
|
||||
new_map[v_title] = 1
|
||||
} else {
|
||||
new_map[v_title] += 1
|
||||
}
|
||||
if (new_map[v_title] > 1) {
|
||||
v_title += Number(new_map[v_title] - 1)
|
||||
}
|
||||
playFrom.push(v_title)
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(playFrom))
|
||||
} else {
|
||||
playFrom = ["在线播放"]
|
||||
}
|
||||
vod.vod_play_from = playFrom.join(vod_play_from);
|
||||
let vod_play_url = "$$$";
|
||||
let vod_tab_list = [];
|
||||
if (p.lists) {
|
||||
if (p.lists.startsWith("js:")) {
|
||||
print("开始执行lists代码:" + p.lists);
|
||||
try {
|
||||
var input = MY_URL;
|
||||
var play_url = "";
|
||||
eval(p.lists.replace("js:", ""));
|
||||
for (let i in LISTS) {
|
||||
if (LISTS.hasOwnProperty(i)) {
|
||||
try {
|
||||
LISTS[i] = LISTS[i].map(it => it.split("$").slice(0, 2).join("$"))
|
||||
} catch (e) {
|
||||
print(`格式化LISTS发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
vod_play_url = LISTS.map(it => it.join("#")).join(vod_play_url)
|
||||
} catch (e) {
|
||||
print(`js执行lists: 发生错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
let list_text = p.list_text || "body&&Text";
|
||||
let list_url = p.list_url || "a&&href";
|
||||
let list_url_prefix = p.list_url_prefix || "";
|
||||
let is_tab_js = p.tabs.trim().startsWith("js:");
|
||||
for (let i = 0; i < playFrom.length; i++) {
|
||||
let tab_name = playFrom[i];
|
||||
let tab_ext = p.tabs.split(";").length > 1 && !is_tab_js ? p.tabs.split(";")[1] : "";
|
||||
let p1 = p.lists.replaceAll("#idv", tab_name).replaceAll("#id", i);
|
||||
tab_ext = tab_ext.replaceAll("#idv", tab_name).replaceAll("#id", i);
|
||||
let tabName = tab_ext ? _pdfh(html, tab_ext) : tab_name;
|
||||
console.log(tabName);
|
||||
let new_vod_list = [];
|
||||
let tt1 = (new Date).getTime();
|
||||
if (typeof pdfl === "function") {
|
||||
new_vod_list = pdfl(html, p1, list_text, list_url, MY_URL);
|
||||
if (list_url_prefix) {
|
||||
new_vod_list = new_vod_list.map(it => it.split("$")[0] + "$" + list_url_prefix + it.split("$").slice(1).join("$"))
|
||||
}
|
||||
} else {
|
||||
let vodList = [];
|
||||
try {
|
||||
vodList = _pdfa(html, p1);
|
||||
console.log("len(vodList):" + vodList.length)
|
||||
} catch (e) {}
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
new_vod_list.push(_pdfh(it, list_text).trim() + "$" + list_url_prefix + _pd(it, list_url, MY_URL))
|
||||
}
|
||||
}
|
||||
if (new_vod_list.length > 0) {
|
||||
new_vod_list = forceOrder(new_vod_list, "", x => x.split("$")[0]);
|
||||
console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)
|
||||
}
|
||||
let vlist = new_vod_list.join("#");
|
||||
vod_tab_list.push(vlist)
|
||||
}
|
||||
vod_play_url = vod_tab_list.join(vod_play_url)
|
||||
}
|
||||
}
|
||||
vod.vod_play_url = vod_play_url
|
||||
}
|
||||
if (rule.图片替换 && rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
vod.vod_pic = vod.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
if (rule.图片来源 && vod.vod_pic && vod.vod_pic.startsWith("http")) {
|
||||
vod.vod_pic = vod.vod_pic + rule.图片来源
|
||||
}
|
||||
if (!vod.vod_id || vod_id.includes("$") && vod.vod_id !== vod_id) {
|
||||
vod.vod_id = vod_id
|
||||
}
|
||||
let t2 = (new Date).getTime();
|
||||
console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);
|
||||
try {
|
||||
vod = vodDeal(vod)
|
||||
} catch (e) {
|
||||
console.log(`vodDeal发生错误:${e.message}`)
|
||||
}
|
||||
return JSON.stringify({
|
||||
list: [vod]
|
||||
})
|
||||
}
|
||||
|
||||
function get_tab_index(vod) {
|
||||
let obj = {};
|
||||
vod.vod_play_from.split("$$$").forEach((it, index) => {
|
||||
obj[it] = index
|
||||
});
|
||||
return obj
|
||||
}
|
||||
|
||||
function vodDeal(vod) {
|
||||
let vod_play_from = vod.vod_play_from.split("$$$");
|
||||
let vod_play_url = vod.vod_play_url.split("$$$");
|
||||
let tab_removed_list = vod_play_from;
|
||||
let tab_ordered_list = vod_play_from;
|
||||
let tab_renamed_list = vod_play_from;
|
||||
let tab_list = vod_play_from;
|
||||
let play_ordered_list = vod_play_url;
|
||||
if (rule.tab_remove && rule.tab_remove.length > 0 || rule.tab_order && rule.tab_order.length > 0) {
|
||||
let tab_index_dict = get_tab_index(vod);
|
||||
if (rule.tab_remove && rule.tab_remove.length > 0) {
|
||||
tab_removed_list = vod_play_from.filter(it => !rule.tab_remove.includes(it));
|
||||
tab_list = tab_removed_list
|
||||
}
|
||||
if (rule.tab_order && rule.tab_order.length > 0) {
|
||||
let tab_order = rule.tab_order;
|
||||
tab_ordered_list = tab_removed_list.sort((a, b) => {
|
||||
return (tab_order.indexOf(a) === -1 ? 9999 : tab_order.indexOf(a)) - (tab_order.indexOf(b) === -1 ? 9999 : tab_order.indexOf(b))
|
||||
});
|
||||
tab_list = tab_ordered_list
|
||||
}
|
||||
play_ordered_list = tab_list.map(it => vod_play_url[tab_index_dict[it]])
|
||||
}
|
||||
if (rule.tab_rename && typeof rule.tab_rename === "object" & Object.keys(rule.tab_rename).length > 0) {
|
||||
tab_renamed_list = tab_list.map(it => rule.tab_rename[it] || it);
|
||||
tab_list = tab_renamed_list
|
||||
}
|
||||
vod.vod_play_from = tab_list.join("$$$");
|
||||
vod.vod_play_url = play_ordered_list.join("$$$");
|
||||
return vod
|
||||
}
|
||||
|
||||
function tellIsJx(url) {
|
||||
try {
|
||||
let is_vip = !/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0]) && 是否正版(url);
|
||||
return is_vip ? 1 : 0
|
||||
} catch (e) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
function playParse(playObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
MY_URL = playObj.url;
|
||||
var MY_FLAG = playObj.flag;
|
||||
if (!/http/.test(MY_URL)) {
|
||||
try {
|
||||
MY_URL = base64Decode(MY_URL)
|
||||
} catch (e) {}
|
||||
}
|
||||
MY_URL = decodeURIComponent(MY_URL);
|
||||
var input = MY_URL;
|
||||
var flag = MY_FLAG;
|
||||
let common_play = {
|
||||
parse: SPECIAL_URL.test(input) || /^(push:)/.test(input) ? 0 : 1,
|
||||
url: input,
|
||||
flag: flag,
|
||||
jx: tellIsJx(input)
|
||||
};
|
||||
let lazy_play;
|
||||
if (!rule.play_parse || !rule.lazy) {
|
||||
lazy_play = common_play
|
||||
} else if (rule.play_parse && rule.lazy && typeof rule.lazy === "string") {
|
||||
try {
|
||||
let lazy_code = rule.lazy.trim();
|
||||
if (lazy_code.startsWith("js:")) {
|
||||
lazy_code = lazy_code.replace("js:", "").trim()
|
||||
}
|
||||
print("开始执行js免嗅=>" + lazy_code);
|
||||
eval(lazy_code);
|
||||
lazy_play = typeof input === "object" ? input : {
|
||||
parse: SPECIAL_URL.test(input) || /^(push:)/.test(input) ? 0 : 1,
|
||||
jx: tellIsJx(input),
|
||||
url: input
|
||||
}
|
||||
} catch (e) {
|
||||
print(`js免嗅错误:${e.message}`);
|
||||
lazy_play = common_play
|
||||
}
|
||||
} else {
|
||||
lazy_play = common_play
|
||||
}
|
||||
if (Array.isArray(rule.play_json) && rule.play_json.length > 0) {
|
||||
let web_url = lazy_play.url;
|
||||
for (let pjson of rule.play_json) {
|
||||
if (pjson.re && (pjson.re === "*" || web_url.match(new RegExp(pjson.re)))) {
|
||||
if (pjson.json && typeof pjson.json === "object") {
|
||||
let base_json = pjson.json;
|
||||
lazy_play = Object.assign(lazy_play, base_json);
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (rule.play_json && !Array.isArray(rule.play_json)) {
|
||||
let base_json = {
|
||||
jx: 1,
|
||||
parse: 1
|
||||
};
|
||||
lazy_play = Object.assign(lazy_play, base_json)
|
||||
} else if (!rule.play_json) {
|
||||
let base_json = {
|
||||
jx: 0,
|
||||
parse: 1
|
||||
};
|
||||
lazy_play = Object.assign(lazy_play, base_json)
|
||||
}
|
||||
console.log(JSON.stringify(lazy_play));
|
||||
return JSON.stringify(lazy_play)
|
||||
}
|
||||
|
||||
function proxyParse(proxyObj) {
|
||||
var input = proxyObj.params;
|
||||
if (proxyObj.proxy_rule) {
|
||||
log("准备执行本地代理规则:\n" + proxyObj.proxy_rule);
|
||||
try {
|
||||
eval(proxyObj.proxy_rule);
|
||||
if (input && input !== proxyObj.params && Array.isArray(input) && input.length >= 3) {
|
||||
return input
|
||||
} else {
|
||||
return [404, "text/plain", "Not Found"]
|
||||
}
|
||||
} catch (e) {
|
||||
return [500, "text/plain", "代理规则错误:" + e.message]
|
||||
}
|
||||
} else {
|
||||
return [404, "text/plain", "Not Found"]
|
||||
}
|
||||
}
|
||||
|
||||
function isVideoParse(isVideoObj) {
|
||||
var input = isVideoObj.url;
|
||||
if (!isVideoObj.t) {
|
||||
let re_matcher = new RegExp(isVideoObj.isVideo, "i");
|
||||
return re_matcher.test(input)
|
||||
} else {
|
||||
try {
|
||||
eval(isVideoObj.isVideo);
|
||||
if (typeof input === "boolean") {
|
||||
return input
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} catch (e) {
|
||||
log(`执行嗅探规则发生错误:${e.message}`);
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getOriginalJs(js_code) {
|
||||
let current_match = /var rule|[\u4E00-\u9FA5]+|function|let |var |const |\(|\)|"|'/;
|
||||
if (current_match.test(js_code)) {
|
||||
return js_code
|
||||
}
|
||||
let rsa_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqin/jUpqM6+fgYP/oMqj9zcdHMM0mEZXLeTyixIJWP53lzJV2N2E3OP6BBpUmq2O1a9aLnTIbADBaTulTNiOnVGoNG58umBnupnbmmF8iARbDp2mTzdMMeEgLdrfXS6Y3VvazKYALP8EhEQykQVarexR78vRq7ltY3quXx7cgI0ROfZz5Sw3UOLQJ+VoWmwIxu9AMEZLVzFDQN93hzuzs3tNyHK6xspBGB7zGbwCg+TKi0JeqPDrXxYUpAz1cQ/MO+Da0WgvkXnvrry8NQROHejdLVOAslgr6vYthH9bKbsGyNY3H+P12kcxo9RAcVveONnZbcMyxjtF5dWblaernAgMBAAECggEAGdEHlSEPFmAr5PKqKrtoi6tYDHXdyHKHC5tZy4YV+Pp+a6gxxAiUJejx1hRqBcWSPYeKne35BM9dgn5JofgjI5SKzVsuGL6bxl3ayAOu+xXRHWM9f0t8NHoM5fdd0zC3g88dX3fb01geY2QSVtcxSJpEOpNH3twgZe6naT2pgiq1S4okpkpldJPo5GYWGKMCHSLnKGyhwS76gF8bTPLoay9Jxk70uv6BDUMlA4ICENjmsYtd3oirWwLwYMEJbSFMlyJvB7hjOjR/4RpT4FPnlSsIpuRtkCYXD4jdhxGlvpXREw97UF2wwnEUnfgiZJ2FT/MWmvGGoaV/CfboLsLZuQKBgQDTNZdJrs8dbijynHZuuRwvXvwC03GDpEJO6c1tbZ1s9wjRyOZjBbQFRjDgFeWs9/T1aNBLUrgsQL9c9nzgUziXjr1Nmu52I0Mwxi13Km/q3mT+aQfdgNdu6ojsI5apQQHnN/9yMhF6sNHg63YOpH+b+1bGRCtr1XubuLlumKKscwKBgQDOtQ2lQjMtwsqJmyiyRLiUOChtvQ5XI7B2mhKCGi8kZ+WEAbNQcmThPesVzW+puER6D4Ar4hgsh9gCeuTaOzbRfZ+RLn3Aksu2WJEzfs6UrGvm6DU1INn0z/tPYRAwPX7sxoZZGxqML/z+/yQdf2DREoPdClcDa2Lmf1KpHdB+vQKBgBXFCVHz7a8n4pqXG/HvrIMJdEpKRwH9lUQS/zSPPtGzaLpOzchZFyQQBwuh1imM6Te+VPHeldMh3VeUpGxux39/m+160adlnRBS7O7CdgSsZZZ/dusS06HAFNraFDZf1/VgJTk9BeYygX+AZYu+0tReBKSs9BjKSVJUqPBIVUQXAoGBAJcZ7J6oVMcXxHxwqoAeEhtvLcaCU9BJK36XQ/5M67ceJ72mjJC6/plUbNukMAMNyyi62gO6I9exearecRpB/OGIhjNXm99Ar59dAM9228X8gGfryLFMkWcO/fNZzb6lxXmJ6b2LPY3KqpMwqRLTAU/zy+ax30eFoWdDHYa4X6e1AoGAfa8asVGOJ8GL9dlWufEeFkDEDKO9ww5GdnpN+wqLwePWqeJhWCHad7bge6SnlylJp5aZXl1+YaBTtOskC4Whq9TP2J+dNIgxsaF5EFZQJr8Xv+lY9lu0CruYOh9nTNF9x3nubxJgaSid/7yRPfAGnsJRiknB5bsrCvgsFQFjJVs=";
|
||||
let decode_content = "";
|
||||
|
||||
function aes_decrypt(data) {
|
||||
let key = CryptoJS.enc.Hex.parse("686A64686E780A0A0A0A0A0A0A0A0A0A");
|
||||
let iv = CryptoJS.enc.Hex.parse("647A797964730A0A0A0A0A0A0A0A0A0A");
|
||||
let encrypted = CryptoJS.AES.decrypt({
|
||||
ciphertext: CryptoJS.enc.Base64.parse(data)
|
||||
}, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8);
|
||||
return encrypted
|
||||
}
|
||||
let error_log = false;
|
||||
|
||||
function logger(text) {
|
||||
if (error_log) {
|
||||
log(text)
|
||||
}
|
||||
}
|
||||
let decode_funcs = [text => {
|
||||
try {
|
||||
return ungzip(text)
|
||||
} catch (e) {
|
||||
logger("非gzip加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return base64Decode(text)
|
||||
} catch (e) {
|
||||
logger("非b64加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return aes_decrypt(text)
|
||||
} catch (e) {
|
||||
logger("非aes加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return RSA.decode(text, rsa_private_key, null)
|
||||
} catch (e) {
|
||||
logger("非rsa加密");
|
||||
return ""
|
||||
}
|
||||
}];
|
||||
let func_index = 0;
|
||||
while (!current_match.test(decode_content)) {
|
||||
decode_content = decode_funcs[func_index](js_code);
|
||||
func_index++;
|
||||
if (func_index >= decode_funcs.length) {
|
||||
break
|
||||
}
|
||||
}
|
||||
return decode_content
|
||||
}
|
||||
|
||||
function runMain(main_func_code, arg) {
|
||||
let mainFunc = function() {
|
||||
return ""
|
||||
};
|
||||
try {
|
||||
eval(main_func_code + "\nmainFunc=main;");
|
||||
return mainFunc(arg)
|
||||
} catch (e) {
|
||||
log(`执行main_funct发生了错误:${e.message}`);
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function init(ext) {
|
||||
console.log("init");
|
||||
rule = {};
|
||||
rule_fetch_params = {};
|
||||
fetch_params = null;
|
||||
try {
|
||||
let muban = 模板.getMubans();
|
||||
if (typeof ext == "object") {
|
||||
rule = ext
|
||||
} else if (typeof ext == "string") {
|
||||
let is_file = ext.startsWith("file://");
|
||||
if (ext.startsWith("http") || is_file) {
|
||||
let query = getQuery(ext);
|
||||
if (is_file) {
|
||||
ext = ext.split("?")[0]
|
||||
}
|
||||
let js = request(ext, {
|
||||
method: "GET"
|
||||
});
|
||||
if (js) {
|
||||
js = getOriginalJs(js);
|
||||
eval("(function(){" + js.replace("var rule", "rule") + "})()")
|
||||
}
|
||||
if (query.type === "url" && query.params) {
|
||||
if (is_file && /^http/.test(query.params)) {
|
||||
rule.params = query.params
|
||||
} else {
|
||||
rule.params = urljoin(ext, query.params)
|
||||
}
|
||||
} else if (query.params) {
|
||||
rule.params = query.params
|
||||
}
|
||||
} else {
|
||||
ext = getOriginalJs(ext);
|
||||
eval("(function(){" + ext.replace("var rule", "rule") + "})()")
|
||||
}
|
||||
} else {
|
||||
console.log(`规则加载失败,不支持的规则类型:${typeof ext}`);
|
||||
return
|
||||
}
|
||||
rule.host = (rule.host || "").rstrip("/");
|
||||
HOST = rule.host;
|
||||
if (rule.hostJs) {
|
||||
console.log(`检测到hostJs,准备执行...`);
|
||||
try {
|
||||
eval(rule.hostJs);
|
||||
rule.host = HOST.rstrip("/")
|
||||
} catch (e) {
|
||||
console.log(`执行${rule.hostJs}获取host发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (rule["模板"] === "自动") {
|
||||
try {
|
||||
let host_headers = rule["headers"] || {};
|
||||
let host_html = getCode(HOST, {
|
||||
headers: host_headers
|
||||
});
|
||||
let match_muban = "";
|
||||
let muban_keys = Object.keys(muban).filter(it => !/默认|短视2|采集1/.test(it));
|
||||
for (let muban_key of muban_keys) {
|
||||
try {
|
||||
let host_data = JSON.parse(home({}, host_html, muban[muban_key].class_parse));
|
||||
if (host_data.class && host_data.class.length > 0) {
|
||||
match_muban = muban_key;
|
||||
console.log(`自动匹配模板:【${muban_key}】`);
|
||||
break
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`自动匹配模板:【${muban_key}】错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (match_muban) {
|
||||
muban["自动"] = muban[match_muban];
|
||||
if (rule["模板修改"] && rule["模板修改"].startsWith("js:")) {
|
||||
eval(rule["模板修改"].replace("js:", "").trim())
|
||||
}
|
||||
} else {
|
||||
delete rule["模板"]
|
||||
}
|
||||
} catch (e) {
|
||||
delete rule["模板"]
|
||||
}
|
||||
}
|
||||
if (rule.模板 && muban.hasOwnProperty(rule.模板)) {
|
||||
print("继承模板:" + rule.模板);
|
||||
rule = Object.assign(muban[rule.模板], rule)
|
||||
}
|
||||
let rule_cate_excludes = (rule.cate_exclude || "").split("|").filter(it => it.trim());
|
||||
let rule_tab_excludes = (rule.tab_exclude || "").split("|").filter(it => it.trim());
|
||||
rule_cate_excludes = rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it => it.trim()));
|
||||
rule_tab_excludes = rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it => it.trim()));
|
||||
rule.cate_exclude = rule_cate_excludes.join("|");
|
||||
rule.tab_exclude = rule_tab_excludes.join("|");
|
||||
rule.类型 = rule.类型 || "影视";
|
||||
rule.url = rule.url || "";
|
||||
rule.double = rule.double || false;
|
||||
rule.homeUrl = rule.homeUrl || "";
|
||||
rule.detailUrl = rule.detailUrl || "";
|
||||
rule.searchUrl = rule.searchUrl || "";
|
||||
rule.homeUrl = rule.host && rule.homeUrl ? urljoin(rule.host, rule.homeUrl) : rule.homeUrl || rule.host;
|
||||
rule.homeUrl = cheerio.jinja2(rule.homeUrl, {
|
||||
rule: rule
|
||||
});
|
||||
rule.detailUrl = rule.host && rule.detailUrl ? urljoin(rule.host, rule.detailUrl) : rule.detailUrl;
|
||||
rule.二级访问前 = rule.二级访问前 || "";
|
||||
if (rule.url.includes("[") && rule.url.includes("]")) {
|
||||
let u1 = rule.url.split("[")[0];
|
||||
let u2 = rule.url.split("[")[1].split("]")[0];
|
||||
rule.url = rule.host && rule.url ? urljoin(rule.host, u1) + "[" + urljoin(rule.host, u2) + "]" : rule.url
|
||||
} else {
|
||||
rule.url = rule.host && rule.url ? urljoin(rule.host, rule.url) : rule.url
|
||||
}
|
||||
if (rule.searchUrl.includes("[") && rule.searchUrl.includes("]") && !rule.searchUrl.includes("#")) {
|
||||
let u1 = rule.searchUrl.split("[")[0];
|
||||
let u2 = rule.searchUrl.split("[")[1].split("]")[0];
|
||||
rule.searchUrl = rule.host && rule.searchUrl ? urljoin(rule.host, u1) + "[" + urljoin(rule.host, u2) + "]" : rule.searchUrl
|
||||
} else {
|
||||
rule.searchUrl = rule.host && rule.searchUrl ? urljoin(rule.host, rule.searchUrl) : rule.searchUrl
|
||||
}
|
||||
rule.timeout = rule.timeout || 5e3;
|
||||
rule.encoding = rule.编码 || rule.encoding || "utf-8";
|
||||
rule.search_encoding = rule.搜索编码 || rule.search_encoding || "";
|
||||
rule.图片来源 = rule.图片来源 || "";
|
||||
rule.图片替换 = rule.图片替换 || "";
|
||||
rule.play_json = rule.hasOwnProperty("play_json") ? rule.play_json : [];
|
||||
rule.pagecount = rule.hasOwnProperty("pagecount") ? rule.pagecount : {};
|
||||
rule.proxy_rule = rule.hasOwnProperty("proxy_rule") ? rule.proxy_rule : "";
|
||||
if (!rule.hasOwnProperty("sniffer")) {
|
||||
rule.sniffer = false
|
||||
}
|
||||
rule.sniffer = rule.hasOwnProperty("sniffer") ? rule.sniffer : "";
|
||||
rule.sniffer = !!(rule.sniffer && rule.sniffer !== "0" && rule.sniffer !== "false");
|
||||
rule.isVideo = rule.hasOwnProperty("isVideo") ? rule.isVideo : "";
|
||||
if (rule.sniffer && !rule.isVideo) {
|
||||
rule.isVideo = "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*|http((?!http).)*?obj/tos*"
|
||||
}
|
||||
rule.tab_remove = rule.hasOwnProperty("tab_remove") ? rule.tab_remove : [];
|
||||
rule.tab_order = rule.hasOwnProperty("tab_order") ? rule.tab_order : [];
|
||||
rule.tab_rename = rule.hasOwnProperty("tab_rename") ? rule.tab_rename : {};
|
||||
if (rule.headers && typeof rule.headers === "object") {
|
||||
try {
|
||||
let header_keys = Object.keys(rule.headers);
|
||||
for (let k of header_keys) {
|
||||
if (k.toLowerCase() === "user-agent") {
|
||||
let v = rule.headers[k];
|
||||
console.log(v);
|
||||
if (["MOBILE_UA", "PC_UA", "UC_UA", "IOS_UA", "UA"].includes(v)) {
|
||||
rule.headers[k] = eval(v)
|
||||
}
|
||||
} else if (k.toLowerCase() === "cookie") {
|
||||
let v = rule.headers[k];
|
||||
if (v && v.startsWith("http")) {
|
||||
console.log(v);
|
||||
try {
|
||||
v = fetch(v);
|
||||
console.log(v);
|
||||
rule.headers[k] = v
|
||||
} catch (e) {
|
||||
console.log(`从${v}获取cookie发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`处理headers发生错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
rule.headers = {}
|
||||
}
|
||||
oheaders = deepCopy(rule.headers);
|
||||
rule_fetch_params = {
|
||||
headers: rule.headers,
|
||||
timeout: rule.timeout,
|
||||
encoding: rule.encoding
|
||||
};
|
||||
RKEY = typeof key !== "undefined" && key ? key : "drpy_" + (rule.title || rule.host);
|
||||
pre();
|
||||
init_test()
|
||||
} catch (e) {
|
||||
console.log(`init_test发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
let homeHtmlCache = undefined;
|
||||
|
||||
function home(filter, home_html, class_parse) {
|
||||
console.log("home");
|
||||
home_html = home_html || "";
|
||||
class_parse = class_parse || "";
|
||||
if (typeof rule.filter === "string" && rule.filter.trim().length > 0) {
|
||||
try {
|
||||
let filter_json = ungzip(rule.filter.trim());
|
||||
rule.filter = JSON.parse(filter_json)
|
||||
} catch (e) {
|
||||
rule.filter = {}
|
||||
}
|
||||
}
|
||||
let homeObj = {
|
||||
filter: rule.filter || false,
|
||||
MY_URL: rule.homeUrl,
|
||||
class_name: rule.class_name || "",
|
||||
class_url: rule.class_url || "",
|
||||
class_parse: class_parse || rule.class_parse || "",
|
||||
cate_exclude: rule.cate_exclude,
|
||||
home_html: home_html
|
||||
};
|
||||
return homeParse(homeObj)
|
||||
}
|
||||
|
||||
function homeVod(params) {
|
||||
console.log("homeVod");
|
||||
let homeVodObj = {
|
||||
"推荐": rule.推荐,
|
||||
double: rule.double,
|
||||
homeUrl: rule.homeUrl,
|
||||
detailUrl: rule.detailUrl
|
||||
};
|
||||
return homeVodParse(homeVodObj)
|
||||
}
|
||||
|
||||
function category(tid, pg, filter, extend) {
|
||||
let cateObj = {
|
||||
url: rule.url,
|
||||
"一级": rule.一级,
|
||||
tid: tid,
|
||||
pg: parseInt(pg),
|
||||
filter: filter,
|
||||
extend: extend
|
||||
};
|
||||
return categoryParse(cateObj)
|
||||
}
|
||||
|
||||
function detail(vod_url) {
|
||||
let orId = vod_url;
|
||||
let fyclass = "";
|
||||
log("orId:" + orId);
|
||||
if (vod_url.indexOf("$") > -1) {
|
||||
let tmp = vod_url.split("$");
|
||||
fyclass = tmp[0];
|
||||
vod_url = tmp[1]
|
||||
}
|
||||
let detailUrl = vod_url.split("@@")[0];
|
||||
let url;
|
||||
if (!detailUrl.startsWith("http") && !detailUrl.includes("/")) {
|
||||
url = rule.detailUrl.replaceAll("fyid", detailUrl).replaceAll("fyclass", fyclass)
|
||||
} else if (detailUrl.includes("/")) {
|
||||
url = urljoin(rule.homeUrl, detailUrl)
|
||||
} else {
|
||||
url = detailUrl
|
||||
}
|
||||
let detailObj = {
|
||||
orId: orId,
|
||||
url: url,
|
||||
"二级": rule.二级,
|
||||
"二级访问前": rule.二级访问前,
|
||||
detailUrl: detailUrl,
|
||||
fyclass: fyclass,
|
||||
tab_exclude: rule.tab_exclude
|
||||
};
|
||||
return detailParse(detailObj)
|
||||
}
|
||||
|
||||
function play(flag, id, flags) {
|
||||
let playObj = {
|
||||
url: id,
|
||||
flag: flag,
|
||||
flags: flags
|
||||
};
|
||||
return playParse(playObj)
|
||||
}
|
||||
|
||||
function search(wd, quick, pg) {
|
||||
if (rule.search_encoding) {
|
||||
if (rule.search_encoding.toLowerCase() !== "utf-8") {
|
||||
wd = encodeStr(wd, rule.search_encoding)
|
||||
}
|
||||
} else if (rule.encoding && rule.encoding.toLowerCase() !== "utf-8") {
|
||||
wd = encodeStr(wd, rule.encoding)
|
||||
}
|
||||
let searchObj = {
|
||||
searchUrl: rule.searchUrl,
|
||||
"搜索": rule.搜索,
|
||||
wd: wd,
|
||||
pg: pg || 1,
|
||||
quick: quick
|
||||
};
|
||||
return searchParse(searchObj)
|
||||
}
|
||||
|
||||
function proxy(params) {
|
||||
if (rule.proxy_rule && rule.proxy_rule.trim()) {
|
||||
rule.proxy_rule = rule.proxy_rule.trim()
|
||||
}
|
||||
if (rule.proxy_rule.startsWith("js:")) {
|
||||
rule.proxy_rule = rule.proxy_rule.replace("js:", "")
|
||||
}
|
||||
let proxyObj = {
|
||||
params: params,
|
||||
proxy_rule: rule.proxy_rule
|
||||
};
|
||||
return proxyParse(proxyObj)
|
||||
}
|
||||
|
||||
function sniffer() {
|
||||
let enable_sniffer = rule.sniffer || false;
|
||||
if (enable_sniffer) {
|
||||
log("开始执行辅助嗅探代理规则...")
|
||||
}
|
||||
return enable_sniffer
|
||||
}
|
||||
|
||||
function isVideo(url) {
|
||||
let t = 0;
|
||||
let is_video;
|
||||
if (rule.isVideo && rule.isVideo.trim()) {
|
||||
is_video = rule.isVideo.trim()
|
||||
}
|
||||
if (is_video.startsWith("js:")) {
|
||||
is_video = is_video.replace("js:", "");
|
||||
t = 1
|
||||
}
|
||||
let isVideoObj = {
|
||||
url: url,
|
||||
isVideo: is_video,
|
||||
t: t
|
||||
};
|
||||
let result = isVideoParse(isVideoObj);
|
||||
if (result) {
|
||||
log("成功执行辅助嗅探规则并检测到视频地址:\n" + rule.isVideo)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function getRule(key) {
|
||||
return key ? rule[key] || "" : rule
|
||||
}
|
||||
|
||||
function deepCopy(_obj) {
|
||||
return JSON.parse(JSON.stringify(_obj))
|
||||
}
|
||||
|
||||
function matchesAll(str, pattern, flatten) {
|
||||
if (!pattern.global) {
|
||||
pattern = new RegExp(pattern.source, "g" + (pattern.ignoreCase ? "i" : "") + (pattern.multiline ? "m" : ""))
|
||||
}
|
||||
var matches = [];
|
||||
var match;
|
||||
while ((match = pattern.exec(str)) !== null) {
|
||||
matches.push(match)
|
||||
}
|
||||
return flatten ? matches.flat() : matches
|
||||
}
|
||||
|
||||
function stringUtils() {
|
||||
Object.defineProperties(String.prototype, {
|
||||
replaceX: {
|
||||
value: function(regex, replacement) {
|
||||
let matches = matchesAll(this, regex, true);
|
||||
if (matches && matches.length > 1) {
|
||||
const hasCaptureGroup = /\$\d/.test(replacement);
|
||||
if (hasCaptureGroup) {
|
||||
return this.replace(regex, m => m.replace(regex, replacement))
|
||||
} else {
|
||||
return this.replace(regex, (m, p1) => m.replace(p1, replacement))
|
||||
}
|
||||
}
|
||||
return this.replace(regex, replacement)
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
},
|
||||
parseX: {
|
||||
get: function() {
|
||||
try {
|
||||
return JSON.parse(this)
|
||||
} catch (e) {
|
||||
console.log(e.message);
|
||||
return this.startsWith("[") ? [] : {}
|
||||
}
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function cut(text, start, end, method, All) {
|
||||
let result = "";
|
||||
let c = (t, s, e) => {
|
||||
let result = "";
|
||||
let rs = [];
|
||||
let results = [];
|
||||
try {
|
||||
let lr = new RegExp(String.raw`${s}`.toString());
|
||||
let rr = new RegExp(String.raw`${e}`.toString());
|
||||
const segments = t.split(lr);
|
||||
if (segments.length < 2) return "";
|
||||
let cutSegments = segments.slice(1).map(segment => {
|
||||
let splitSegment = segment.split(rr);
|
||||
return splitSegment.length < 2 ? undefined : splitSegment[0] + e
|
||||
}).filter(f => f);
|
||||
if (All) {
|
||||
return `[${cutSegments.join(",")}]`
|
||||
} else {
|
||||
return cutSegments[0]
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`Error cutting text:${e.message}`)
|
||||
}
|
||||
return result
|
||||
};
|
||||
result = c(text, start, end);
|
||||
stringUtils();
|
||||
if (method && typeof method === "function") {
|
||||
result = method(result)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function DRPY() {
|
||||
return {
|
||||
runMain: runMain,
|
||||
getRule: getRule,
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
proxy: proxy,
|
||||
sniffer: sniffer,
|
||||
isVideo: isVideo,
|
||||
fixAdM3u8Ai: fixAdM3u8Ai
|
||||
}
|
||||
}
|
||||
export default {
|
||||
runMain: runMain,
|
||||
getRule: getRule,
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
proxy: proxy,
|
||||
sniffer: sniffer,
|
||||
isVideo: isVideo,
|
||||
fixAdM3u8Ai: fixAdM3u8Ai,
|
||||
DRPY: DRPY
|
||||
};
|
||||
Vendored
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,37 @@
|
||||
var rule = {
|
||||
title: 'drpy',
|
||||
host: 'https://frodo.douban.com',
|
||||
apidoc: 'https://www.doubanapi.com',
|
||||
homeUrl: '',
|
||||
searchUrl: '',
|
||||
searchable: 1,
|
||||
quickSearch: 1,
|
||||
filterable: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
url: '/?pg=fypage&class=fyclass&douban=2297669',
|
||||
filter_url: 'fl={{fl}}',
|
||||
图片来源: '@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/113.0.0.0%20Safari/537.36',
|
||||
headers: {
|
||||
"Host": "frodo.douban.com",
|
||||
// "Host": "api.douban.com",
|
||||
"Connection": "Keep-Alive",
|
||||
"Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html",
|
||||
// "content-type": "application/json",
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '我的豆瓣&热门电影&热播剧集&热播综艺&电影筛选&电视筛选&电影榜单&电视榜单',
|
||||
class_url: 'interests&hot_gaia&tv_hot&show_hot&movie&tv&rank_list_movie&rank_list_tv',
|
||||
filter: { 'interests': [{ 'key': 'status', 'name': '状态', 'value': [{ 'n': '想看', 'v': 'mark' }, { 'n': '在看', 'v': 'doing' }, { 'n': '看过', 'v': 'done' }] }, { 'key': 'subtype_tag', 'name': '形式', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '电影', 'v': 'movie' }, { 'n': '电视', 'v': 'tv' }] }, { 'key': 'year_tag', 'name': '年代', 'value': [{ 'n': '全部', 'v': '全部' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2010年代', 'v': '2010年代' }, { 'n': '2000年代', 'v': '2000年代' }, { 'n': '90年代', 'v': '90年代' }, { 'n': '80年代', 'v': '80年代' }, { 'n': '70年代', 'v': '70年代' }, { 'n': '60年代', 'v': '60年代' }, { 'n': '更早', 'v': '更早' }] }], 'hot_gaia': [{ 'key': 'sort', 'name': '排序', 'value': [{ 'n': '热度', 'v': 'recommend' }, { 'n': '最新', 'v': 'time' }, { 'n': '评分', 'v': 'rank' }] }, { 'key': 'area', 'name': '地区', 'value': [{ 'n': '全部', 'v': '全部' }, { 'n': '华语', 'v': '华语' }, { 'n': '欧美', 'v': '欧美' }, { 'n': '韩国', 'v': '韩国' }, { 'n': '日本', 'v': '日本' }] }], 'tv_hot': [{ 'key': 'type', 'name': '分类', 'value': [{ 'n': '综合', 'v': 'tv_hot' }, { 'n': '国产剧', 'v': 'tv_domestic' }, { 'n': '欧美剧', 'v': 'tv_american' }, { 'n': '日剧', 'v': 'tv_japanese' }, { 'n': '韩剧', 'v': 'tv_korean' }, { 'n': '动画', 'v': 'tv_animation' }] }], 'show_hot': [{ 'key': 'type', 'name': '分类', 'value': [{ 'n': '综合', 'v': 'show_hot' }, { 'n': '国内', 'v': 'show_domestic' }, { 'n': '国外', 'v': 'show_foreign' }] }], 'movie': [{ 'key': '类型', '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': '短片' }] }, { 'key': '地区', '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': '丹麦' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '近期热度', 'v': 'T' }, { 'n': '首映时间', 'v': 'R' }, { 'n': '高分优先', 'v': 'S' }] }, { 'key': '年代', 'name': '年代', 'value': [{ 'n': '全部年代', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2010年代', 'v': '2010年代' }, { 'n': '2000年代', 'v': '2000年代' }, { 'n': '90年代', 'v': '90年代' }, { 'n': '80年代', 'v': '80年代' }, { 'n': '70年代', 'v': '70年代' }, { 'n': '60年代', 'v': '60年代' }, { 'n': '更早', 'v': '更早' }] }], 'tv': [{ 'key': '类型', 'name': '类型', 'value': [{ 'n': '不限', 'v': '' }, { 'n': '电视剧', 'v': '电视剧' }, { 'n': '综艺', 'v': '综艺' }] }, { 'key': '电视剧形式', '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': '音乐' }] }, { 'key': '综艺形式', 'name': '综艺形式', 'value': [{ 'n': '不限', 'v': '' }, { 'n': '真人秀', 'v': '真人秀' }, { 'n': '脱口秀', 'v': '脱口秀' }, { 'n': '音乐', 'v': '音乐' }, { 'n': '歌舞', 'v': '歌舞' }] }, { 'key': '地区', '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': '澳大利亚' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '近期热度', 'v': 'T' }, { 'n': '首播时间', 'v': 'R' }, { 'n': '高分优先', 'v': 'S' }] }, { 'key': '年代', 'name': '年代', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2010年代', 'v': '2010年代' }, { 'n': '2000年代', 'v': '2000年代' }, { 'n': '90年代', 'v': '90年代' }, { 'n': '80年代', 'v': '80年代' }, { 'n': '70年代', 'v': '70年代' }, { 'n': '60年代', 'v': '60年代' }, { 'n': '更早', 'v': '更早' }] }, { 'key': '平台', 'name': '平台', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '腾讯视频', 'v': '腾讯视频' }, { 'n': '爱奇艺', 'v': '爱奇艺' }, { 'n': '优酷', 'v': '优酷' }, { 'n': '湖南卫视', 'v': '湖南卫视' }, { 'n': 'Netflix', 'v': 'Netflix' }, { 'n': 'HBO', 'v': 'HBO' }, { 'n': 'BBC', 'v': 'BBC' }, { 'n': 'NHK', 'v': 'NHK' }, { 'n': 'CBS', 'v': 'CBS' }, { 'n': 'NBC', 'v': 'NBC' }, { 'n': 'tvN', 'v': 'tvN' }] }], 'rank_list_movie': [{ 'key': '榜单', 'name': '榜单', 'value': [{ 'n': '实时热门电影', 'v': 'movie_real_time_hotest' }, { 'n': '一周口碑电影榜', 'v': 'movie_weekly_best' }, { 'n': '豆瓣电影Top250', 'v': 'movie_top250' }] }], 'rank_list_tv': [{ 'key': '榜单', 'name': '榜单', 'value': [{ 'n': '实时热门电视', 'v': 'tv_real_time_hotest' }, { 'n': '华语口碑剧集榜', 'v': 'tv_chinese_best_weekly' }, { 'n': '全球口碑剧集榜', 'v': 'tv_global_best_weekly' }, { 'n': '国内口碑综艺榜', 'v': 'show_chinese_best_weekly' }, { 'n': '国外口碑综艺榜', 'v': 'show_global_best_weekly' }] }] },
|
||||
limit: 20,
|
||||
play_parse: false,
|
||||
推荐: '',
|
||||
推荐: 'js:let d=[];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function subject_real_time_hotest(){try{let res=miniapp_request("/subject_collection/subject_real_time_hotest/items",{});let lists=[];let arr=res.subject_collection_items||[];arr.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"暂无评分";let honnor=(item.honor_infos||[]).map(function(it){return it.title}).join("|");lists.append({vod_id:"msearch:"+TYPE,vod_name:item.title||"",vod_pic:item.pic.normal,vod_remarks:rating+" "+honnor})}});return lists}catch(e){print("发生了错误:"+e.message);return[]}}VODS=subject_real_time_hotest();print(VODS);',
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
lazy: '',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: '',
|
||||
一级: 'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);if(/request_error/.test(html)){print(html)}return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{let res={};if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;let tags;let sort;if(Object.keys(MY_FL).length>0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d,douban);setResult2(res);',
|
||||
二级: '',
|
||||
搜索: '',
|
||||
}
|
||||
Vendored
+95
File diff suppressed because one or more lines are too long
@@ -0,0 +1,32 @@
|
||||
var rule = {
|
||||
title: 'i275听书',
|
||||
host: 'https://m.ting275.com',
|
||||
// url: '/category/fyclass/2.html?page=fypage',
|
||||
url:'/category/fyclass/fyfilter/fypage.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.by}}',
|
||||
filter:{"6":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"7":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"8":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"9":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"10":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"11":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"12":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"13":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"14":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"15":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"49":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"50":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"51":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}]},
|
||||
filter_def:{6:{by:'2'},7:{by:'2'},8:{by:'2'},9:{by:'2'},10:{by:'2'},11:{by:'2'},12:{by:'2'},13:{by:'2'},14:{by:'2'},15:{by:'2'},49:{by:'2'},50:{by:'2'},51:{by:'2'}},
|
||||
searchUrl: '/pc/index/search.html?keyword=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
class_name:'玄幻奇幻&都市言情&宫斗女频&官场商战&武侠仙侠&刑侦推理&探险科幻&重生穿越&恐怖惊悚&文学历史&两性情感&网游竞技&相声评书',
|
||||
class_url:'6&7&8&9&10&11&12&13&14&15&49&50&51',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐:'*',
|
||||
// 一级:'.list-wrapper&&.item-link;h2--span&&Text;img&&data-cfsrc;.status&&Text;a&&href',
|
||||
一级:'.list-wrapper&&.item-link;h2--span&&Text;img&&src;.status&&Text;a&&href',
|
||||
二级:{
|
||||
"title":".book-title&&Text;.text:eq(0)&&Text",
|
||||
// "img":".img&&data-cfsrc",
|
||||
"img":".img&&src",
|
||||
"desc":".update-time&&Text;;;.text:eq(1)&&Text;.text:eq(2)&&Text",
|
||||
"content":".book-intro&&Text",
|
||||
"tabs":".operate-bar&&.total-num",
|
||||
"lists":".book-list:eq(#id)&&.list-item"
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
||||
@@ -0,0 +1,1448 @@
|
||||
央视,#genre#
|
||||
CCTV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226016/index.m3u8
|
||||
CCTV2,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226195/1.m3u8
|
||||
CCTV3,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226397/1.m3u8
|
||||
CCTV4,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8
|
||||
CCTV5,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8
|
||||
CCTV5+,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225603/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225761/1.m3u8
|
||||
CCTV6,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226010/index.m3u8
|
||||
CCTV7,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225733/index.m3u8
|
||||
CCTV8,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226008/index.m3u8
|
||||
CCTV9,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225734/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226197/1.m3u8
|
||||
CCTV10,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225730/index.m3u8
|
||||
CCTV11,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225597/index.m3u8
|
||||
CCTV12,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225731/index.m3u8
|
||||
CCTV13,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226537/index.m3u8#https://pi.0472.org/tv/startv.php?auth=231110
|
||||
CCTV14,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225732/index.m3u8
|
||||
CCTV15,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225601/index.m3u8#http://182.107.188.104:8888/newlive/live/hls/17/live.m3u8#http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8
|
||||
CCTV16,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226100/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226921/1.m3u8
|
||||
CCTV17,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225765/index.m3u8
|
||||
CCTV5,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv5.m3u8
|
||||
CCTV5+,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv5p.m3u8
|
||||
CCTV16,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv16.m3u8
|
||||
CCTV1,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv1.m3u8
|
||||
CCTV2,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv2.m3u8
|
||||
CCTV3,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv3.m3u8
|
||||
CCTV4,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv4.m3u8
|
||||
CCTV6,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv6.m3u8
|
||||
CCTV7,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv7.m3u8
|
||||
CCTV8,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv8.m3u8
|
||||
CCTV9,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv9.m3u8
|
||||
CCTV10,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv10.m3u8
|
||||
CCTV11,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv11.m3u8
|
||||
CCTV12,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv12.m3u8
|
||||
CCTV13,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv13.m3u8
|
||||
CCTV14,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv14.m3u8
|
||||
CCTV15,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv15.m3u8
|
||||
CCTV17,http://61.170.80.241/liveali-tpgq.cctv.cn/live/cctv17.m3u8
|
||||
CCTV1,http://[2409:8087:7000:20::11]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226231/index.m3u8
|
||||
CCTV2,http://[2409:8087:7001:20:3::6]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226195/index.m3u8
|
||||
CCTV3,http://[2409:8087:7001:20:3::7]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226397/index.m3u8
|
||||
CCTV4,http://[2409:8087:7000:20::204]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226191/index.m3u8
|
||||
CCTV6,http://[2409:8087:7001:20:3::7]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226393/index.m3u8
|
||||
CCTV7,http://[2409:8087:7001:20:3::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226192/index.m3u8
|
||||
CCTV8,http://[2409:8087:7001:20:3::8]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226391/index.m3u8
|
||||
CCTV9,http://[2409:8087:7001:20:3::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226197/index.m3u8
|
||||
CCTV10,http://[2409:8087:7001:20:3::2]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226189/index.m3u8
|
||||
CCTV11,http://[2409:8087:7001:20:3::5]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226240/index.m3u8
|
||||
CCTV12,http://[2409:8087:7001:20:3::6]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226190/index.m3u8
|
||||
CCTV13,http://[2409:8087:7001:20:3::2]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226233/index.m3u8
|
||||
CCTV15,http://[2409:8087:7001:20:3::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225785/index.m3u8
|
||||
CCTV17,http://[2409:8087:7001:20:3::5]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226198/index.m3u8
|
||||
CCTV5,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001850/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV5+,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001008/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV16,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000002395/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV1,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001068/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV2,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001293/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV3,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001598/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV4,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001290/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV6,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001859/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV7,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001291/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV8,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001869/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV9,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001294/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV10,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001288/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV11,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001327/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV12,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001289/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV13,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001328/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV14,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001292/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV15,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001020/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV17,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001295/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
|
||||
CCTV央视台球 8M1080,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226956/index.m3u8
|
||||
CCTV1,http://[2409:8087:2001:20:2800:0:df6e:eb09]:80/ott.mobaibox.com/PLTV/4/224/3221227467/index.m3u8
|
||||
CCTV2,http://[2409:8087:2001:20:2800:0:df6e:eb16]:80/ott.mobaibox.com/PLTV/4/224/3221228094/index.m3u8
|
||||
CCTV3,http://[2409:8087:2001:20:2800:0:df6e:eb20]/ott.mobaibox.com/PLTV/4/224/3221228499/index.m3u8
|
||||
CCTV3,http://[2409:8087:2001:20:2800:0:df6e:eb24]:80/ott.mobaibox.com/PLTV/4/224/3221228499/index.m3u8
|
||||
CCTV4,http://[2409:8087:2001:20:2800:0:df6e:eb13]:80/ott.mobaibox.com/PLTV/4/224/3221227549/index.m3u8
|
||||
CCTV5,http://[2409:8087:2001:20:2800:0:df6e:eb22]/ott.mobaibox.com/PLTV/4/224/3221228502/index.m3u8
|
||||
CCTV5+,http://[2409:8087:2001:20:2800:0:df6e:eb16]:80/ott.mobaibox.com/PLTV/4/224/3221228176/index.m3u8
|
||||
CCTV6,http://[2409:8087:2001:20:2800:0:df6e:eb14]:80/ott.mobaibox.com/PLTV/4/224/3221228123/index.m3u8
|
||||
CCTV7,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226192/1.m3u8
|
||||
CCTV8,http://[2409:8087:2001:20:2800:0:df6e:eb13]:80/ott.mobaibox.com/PLTV/4/224/3221227473/index.m3u8
|
||||
CCTV9,http://[2409:8087:2001:20:2800:0:df6e:eb13]:80/ott.mobaibox.com/PLTV/4/224/3221227614/index.m3u8
|
||||
CCTV10,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226189/1.m3u8
|
||||
CCTV11,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226240/1.m3u8
|
||||
CCTV12,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226190/1.m3u8
|
||||
CCTV13,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221227387/index.m3u8
|
||||
CCTV14,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226193/1.m3u8
|
||||
CCTV15,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225785/1.m3u8
|
||||
CCTV16,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221228112/index.m3u8
|
||||
CCTV17,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221227592/index.m3u8
|
||||
|
||||
CCTV5,http://[2409:8087:7001:20:3::3]/wh7f454c46tw3218411025_-341535470/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226395/index.m3u8?icpid=88888890&RTS=1705805314&from=20&hms_devid=8055&prioritypopid=20&online=1705805314&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226395/index.m3u8
|
||||
CCTV5+,http://[2409:8087:7000:20::12]/wh7f454c46tw3258228256_697191967/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226221/index.m3u8?icpid=88888890&RTS=1705805354&from=20&hms_devid=503&prioritypopid=20&online=1705805354&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226221/index.m3u8
|
||||
CCTV16,http://[2409:8087:7001:20:3::6]/wh7f454c46tw3283213504_271598614/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226921/index.m3u8?icpid=88888890&RTS=1705805379&from=20&ocs=2_2409:8087:7001:20:3::4_80&hms_devid=8052&prioritypopid=20&online=1705805379&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226921/index.m3u8
|
||||
CCTV1,http://[2409:8087:7000:20::11]/wh7f454c46tw3308636521_-960931008/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226231/index.m3u8?icpid=88888890&RTS=1705805404&from=20&hms_devid=403&prioritypopid=20&online=1705805404&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226231/index.m3u8
|
||||
CCTV2,http://[2409:8087:7001:20:3::6]/wh7f454c46tw3327426708_644193504/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226195/index.m3u8?icpid=88888890&RTS=1705805423&from=20&hms_devid=8052&prioritypopid=20&online=1705805423&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226195/index.m3u8
|
||||
CCTV3,http://[2409:8087:7001:20:3::2]/wh7f454c46tw3350062131_1396522967/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226397/index.m3u8?icpid=88888890&RTS=1705805446&from=20&hms_devid=8055&prioritypopid=20&online=1705805446&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226397/index.m3u8
|
||||
CCTV4,http://[2409:8087:7001:20:3::3]/wh7f454c46tw3371510982_-278344571/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226191/index.m3u8?icpid=88888890&RTS=1705805467&from=20&hms_devid=8055&prioritypopid=20&online=1705805467&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226191/index.m3u8
|
||||
CCTV6,http://[2409:8087:7001:20:3::3]/wh7f454c46tw3395548875_-2084910950/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226393/index.m3u8?icpid=88888890&RTS=1705805491&from=20&hms_devid=8055&prioritypopid=20&online=1705805491&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226393/index.m3u8
|
||||
CCTV7,http://[2409:8087:7001:20:3::2]/wh7f454c46tw3418168108_-2020767886/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226192/index.m3u8?icpid=88888890&RTS=1705805514&from=20&hms_devid=8055&prioritypopid=20&online=1705805514&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226192/index.m3u8
|
||||
CCTV8,http://[2409:8087:7001:20:3::6]/wh7f454c46tw3436617844_-1261718983/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226391/index.m3u8?icpid=88888890&RTS=1705805532&from=20&hms_devid=8052&prioritypopid=20&online=1705805532&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226391/index.m3u8
|
||||
CCTV9,http://[2409:8087:7001:20:3::9]/wh7f454c46tw3456115735_1419407603/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226197/index.m3u8?icpid=88888890&RTS=1705805552&from=20&hms_devid=8054&prioritypopid=20&online=1705805552&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226197/index.m3u8
|
||||
CCTV10,http://[2409:8087:7001:20:3::4]/wh7f454c46tw3476850409_259923237/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226189/index.m3u8?icpid=88888890&RTS=1705805573&from=20&hms_devid=8050&prioritypopid=20&online=1705805573&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226189/index.m3u8
|
||||
CCTV11,http://[2409:8087:7001:20:3::7]/wh7f454c46tw3495967158_-1000537098/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226240/index.m3u8?icpid=88888890&RTS=1705805592&from=20&hms_devid=8052&prioritypopid=20&online=1705805592&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226240/index.m3u8
|
||||
CCTV12,http://[2409:8087:7001:20:3::5]/wh7f454c46tw3517259394_2031054429/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226190/index.m3u8?icpid=88888890&RTS=1705805613&from=20&hms_devid=8050&prioritypopid=20&online=1705805613&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226190/index.m3u8
|
||||
CCTV13,http://[2409:8087:7001:20:3::8]/wh7f454c46tw3548527598_-247833450/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226233/index.m3u8?icpid=88888890&RTS=1705805644&from=20&hms_devid=8054&prioritypopid=20&online=1705805644&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226233/index.m3u8
|
||||
CCTV14,http://[2409:8087:7001:20:3::2]/wh7f454c46tw3567192805_1865609604/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226193/index.m3u8?icpid=88888890&RTS=1705805663&from=20&hms_devid=8055&prioritypopid=20&online=1705805663&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226193/index.m3u8
|
||||
CCTV15,http://[2409:8087:7001:20:3::9]/wh7f454c46tw3584853708_-1665532811/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8?icpid=88888890&RTS=1705805681&from=20&hms_devid=8054&prioritypopid=20&online=1705805681&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8
|
||||
CCTV17,http://[2409:8087:7001:20:3::5]/wh7f454c46tw3601196922_-1733842586/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226198/index.m3u8?icpid=88888890&RTS=1705805697&from=20&hms_devid=8050&prioritypopid=20&online=1705805697&vqe=3#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226198/index.m3u8
|
||||
|
||||
CCTV5,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8
|
||||
CCTV5+,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225603/index.m3u8
|
||||
CCTV16,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226100/index.m3u8
|
||||
CCTV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226419/index.m3u8
|
||||
CCTV2,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
|
||||
CCTV3,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8
|
||||
CCTV4,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8
|
||||
CCTV6,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226010/index.m3u8
|
||||
CCTV7,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225733/index.m3u8
|
||||
CCTV8,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226008/index.m3u8
|
||||
CCTV9,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225734/index.m3u8
|
||||
CCTV10,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225730/index.m3u8
|
||||
CCTV11,http://zteres.sn.chinamobile.com:6060/000000001000/5000000011000031106/1.m3u8?channel-id=bestzb&Contentid=5000000011000031106&livemode=1&stbId=3
|
||||
CCTV12,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225731/index.m3u8
|
||||
CCTV13,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226537/index.m3u8
|
||||
CCTV14,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225732/index.m3u8
|
||||
CCTV15,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8
|
||||
CCTV17,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225765/index.m3u8
|
||||
|
||||
CCTV1,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226231/index.m3u8
|
||||
CCTV2,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226195/index.m3u8
|
||||
CCTV3,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226397/index.m3u8
|
||||
CCTV4,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226191/index.m3u8
|
||||
CCTV5,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226395/index.m3u8
|
||||
CCTV5+,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226221/index.m3u8
|
||||
CCTV6,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226393/index.m3u8
|
||||
CCTV7,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226192/index.m3u8
|
||||
CCTV8,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226391/index.m3u8
|
||||
CCTV9,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226197/index.m3u8
|
||||
CCTV10,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226189/index.m3u8
|
||||
CCTV11,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226240/index.m3u8
|
||||
CCTV12,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226190/index.m3u8
|
||||
CCTV13,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226233/index.m3u8
|
||||
CCTV14,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226193/index.m3u8
|
||||
CCTV15,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8
|
||||
CCTV16,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226921/index.m3u8
|
||||
CCTV17,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226198/index.m3u8
|
||||
CTV5+,http://[2409:8087:1a01:df::4077]/ottrrs.hl.chinamobile.com/PLTV/88888888/8/3221225603/index.m3u8
|
||||
CCTV6,http://[2409:8087:2001:20:2800:0:df6e:eb22]/ott.mobaibox.com/PLTV/4/224/3221228516/index.m3u8
|
||||
CCTV1,http://58.57.40.22:9901/tsfile/live/0001_1.m3u8
|
||||
CCTV1,http://play.kankanlive.com/live/1661761962676984.m3u8
|
||||
CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
|
||||
CCTV1,http://120.76.248.139/live/bfgd/4200000488.m3u8
|
||||
CCTV2,http://58.57.40.22:9901/tsfile/live/1001_1.m3u8
|
||||
CCTV2,http://36.105.100.208:35455/gaoma/cctv2.m3u8
|
||||
CCTV2,http://60.29.124.66:6080/hls/13/index.m3u8
|
||||
CCTV2,http://120.76.248.139/live/bfgd/4200000061.m3u8
|
||||
CCTV3,http://36.105.100.208:35455/gaoma/cctv3.m3u8
|
||||
CCTV3,http://58.17.48.228:808/hls/3/index.m3u8
|
||||
CCTV3,http://gmxw.7766.org:808/hls/91/index.m3u8
|
||||
CCTV3,http://60.29.124.66:6080/hls/14/index.m3u8
|
||||
CCTV4,http://116.9.204.242:9901/tsfile/live/0004_1.m3u8
|
||||
CCTV4,http://120.238.94.10:9901/tsfile/live/1021_1.m3u8
|
||||
CCTV5,http://58.17.48.228:808/hls/5/index.m3u8
|
||||
CCTV5,http://gmxw.7766.org:808/hls/93/index.m3u8
|
||||
CCTV5,http://60.29.124.66:6080/hls/16/index.m3u8
|
||||
CCTV5,http://182.150.23.74:808/hls/5/index.m3u8
|
||||
CCTV5,http://120.238.94.10:9901/tsfile/live/1022_1.m3u8
|
||||
CCTV5+,http://58.57.40.22:9901/tsfile/live/1005_1.m3u8
|
||||
CCTV5+,http://36.105.100.208:35455/gaoma/cctv5p.m3u8
|
||||
CCTV5+,http://123.129.70.178:9901/tsfile/live/0016_1.m3u8
|
||||
CCTV5+,https://piccpndali.v.myalicdn.com/audio/cctv5plus_2.m3u8
|
||||
CCTV6,http://58.57.40.22:9901/tsfile/live/1006_1.m3u8
|
||||
CCTV6,http://36.105.100.208:35455/gaoma/cctv6.m3u8
|
||||
CCTV6,http://58.17.48.228:808/hls/6/index.m3u8
|
||||
CCTV6,http://60.29.124.66:6080/hls/17/index.m3u8
|
||||
CCTV6,http://183.11.239.36:808/hls/94/index.m3u8
|
||||
CCTV7,http://58.57.40.22:9901/tsfile/live/1007_1.m3u8
|
||||
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
|
||||
CCTV7,http://58.221.214.82:9901/tsfile/live/0007_1.m3u8
|
||||
CCTV8,http://218.3.138.25:1111/tsfile/live/1007_1.m3u8
|
||||
CCTV8,http://120.238.94.10:9901/tsfile/live/1026_1.m3u8
|
||||
CCTV8,http://110.7.131.79:9901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV9,http://36.105.100.208:35455/gaoma/cctv9.m3u8
|
||||
CCTV9,http://112.46.85.60:8009/hls/509/index.m3u8
|
||||
CCTV9,http://58.19.43.46:9901/tsfile/live/1028_1.m3u8
|
||||
CCTV9,http://58.57.40.22:9901/tsfile/live/1009_1.m3u8
|
||||
CCTV9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
|
||||
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
|
||||
CCTV10,http://36.105.100.208:35455/gaoma/cctv10.m3u8
|
||||
CCTV10,http://120.76.248.139/live/bfgd/4200000129.m3u8
|
||||
CCTV10,http://182.150.23.74:808/hls/10/index.m3u8
|
||||
CCTV11,http://58.57.40.22:9901/tsfile/live/1011_1.m3u8
|
||||
CCTV11,http://36.105.100.208:35455/gaoma/cctv11.m3u8
|
||||
CCTV11,http://120.76.248.139/live/bfgd/4200000130.m3u8
|
||||
CCTV11,https://piccpndali.v.myalicdn.com/audio/cctv11_2.m3u8
|
||||
CCTV12,http://36.105.100.208:35455/gaoma/cctv12.m3u8
|
||||
CCTV12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV12,http://123.129.70.178:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV13,http://58.57.40.22:9901/tsfile/live/1013_1.m3u8
|
||||
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
|
||||
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
|
||||
CCTV13,http://jwplay.hebyun.com.cn/live/cctv13/1500k/tzwj_video.m3u8
|
||||
CCTV13,https://ldncctvwbcdcnc.v.wscdns.com/ldncctvwbcd/cdrmldcctv13_1/index.m3u8
|
||||
CCTV14,http://58.57.40.22:9901/tsfile/live/1014_1.m3u8
|
||||
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
|
||||
CCTV14,http://36.105.100.208:35455/gaoma/cctv14.m3u8
|
||||
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
|
||||
CCTV14,http://116.9.204.242:9901/tsfile/live/0014_1.m3u8
|
||||
CCTV15,http://60.29.124.66:6080/hls/26/index.m3u8
|
||||
CCTV15,http://183.11.239.36:808/hls/102/index.m3u8
|
||||
CCTV15,http://58.19.43.46:9901/tsfile/live/1034_1.m3u8
|
||||
CCTV15,http://58.221.214.82:9901/tsfile/live/0015_1.m3u8
|
||||
CCTV16,http://58.17.48.228:808/hls/25/index.m3u8
|
||||
CCTV16,http://gmxw.7766.org:808/hls/169/index.m3u8
|
||||
CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
|
||||
CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8
|
||||
CCTV17,https://piccpndali.v.myalicdn.com/audio/cctv17_2.m3u8
|
||||
CCTV17,http://113.57.111.4:1111/tsfile/live/1014_1.m3u8
|
||||
CCTV17,http://58.19.43.46:9901/tsfile/live/1047_1.m3u8
|
||||
CCTV17,http://58.57.40.22:9901/tsfile/live/0019_1.m3u8
|
||||
CCTV1,http://116.128.242.83:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路354』
|
||||
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8
|
||||
CCTV6,http://zzssw01.55555.io:9901/tsfile/live/0006_1.m3u8
|
||||
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
|
||||
CCTV7,https://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
|
||||
CCTV7,http://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
|
||||
CCTV11,http://39.137.75.230/000000001000/1000000005000265011/index.m3u8?channel-id=ystenlive&Contentid=1000000005000265011&livemode=1&stbId=no
|
||||
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
|
||||
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
|
||||
CCTV13,http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
|
||||
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
|
||||
CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
|
||||
CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』
|
||||
CCTV16,http://58.221.214.82:9901/tsfile/live/0002_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
|
||||
CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
|
||||
CCTV11,http://61.136.172.236:9901/tsfile/live/0011_1.m3u8
|
||||
CCTV13,http://61.136.172.236:9901/tsfile/live/0013_1.m3u8
|
||||
CCTV15,http://61.136.172.236:9901/tsfile/live/0015_1.m3u8
|
||||
CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
||||
CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
|
||||
|
||||
|
||||
卫视,#genre#
|
||||
黑龙江卫视,http://39.134.66.110/PLTV/88888888/224/3221225985/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221226006/1.m3u8
|
||||
深圳卫视,http://39.134.66.110/PLTV/88888888/224/3221225668/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225943/1.m3u8#http://39.134.65.164/PLTV/88888888/224/3221225668/index.m3u8#http://39.134.65.166/PLTV/88888888/224/3221225668/index.m3u8#http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225739/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225801/index.m3u8#http://39.134.66.163/PLTV/88888888/224/3221225668/index.m3u8
|
||||
湖南卫视,http://39.134.66.110/PLTV/88888888/224/3221225506/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226211/index.m3u8#http://39.134.65.166/PLTV/88888888/224/3221225506/index.m3u8#http://39.134.65.181/PLTV/88888888/224/3221225506/index.m3u8#http://39.134.65.208/PLTV/88888888/224/3221225506/index.m3u8#http://39.134.65.162/PLTV/88888888/224/3221225506/index.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225506/index.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225977/index.m3u8#http://39.134.66.2/PLTV/88888888/224/3221225506/index.m3u8
|
||||
浙江卫视,http://39.134.66.2/PLTV/88888888/224/3221225514/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225959/1.m3u8#http://39.134.65.175/PLTV/88888888/224/3221225514/index.m3u8#http://39.134.65.179/PLTV/88888888/224/3221225514/index.m3u8#http://39.134.65.208/PLTV/88888888/224/3221225514/index.m3u8#http://39.134.67.2:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225612/1.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225514/index.m3u8
|
||||
湖北卫视,http://39.134.66.66/PLTV/88888888/224/3221225569/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225975/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226194/index.m3u8#http://39.134.65.164/PLTV/88888888/224/3221225569/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226206/index.m3u8
|
||||
天津卫视,http://39.134.66.66/PLTV/88888888/224/3221225665/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225972/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226204/index.m3u8#http://39.134.65.166/PLTV/88888888/224/3221225665/index.m3u8#http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225740/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226204/index.m3u8
|
||||
安徽卫视,http://39.134.65.141/PLTV/88888888/224/3221225925/1.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225925/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226203/index.m3u8
|
||||
山西卫视,http://39.134.67.108/PLTV/88888888/224/3221226009/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225763/index.m3u8
|
||||
河南卫视,http://39.134.66.110/PLTV/88888888/224/3221225988/index.m3u8
|
||||
贵州卫视,http://39.134.65.151/PLTV/88888888/224/3221225974/1.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225974/1.m3u8#http://39.134.65.149/PLTV/88888888/224/3221225974/index.m3u8#http://39.134.65.149:80/PLTV/88888888/224/3221225974/1653148920-1-1652757727.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225974/index.m3u8
|
||||
内蒙古卫视,http://39.134.67.108/PLTV/88888888/224/3221226017/1.m3u8#http://111.59.63.32:9901/tsfile/live/1038_1.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225577/index.m3u8
|
||||
江苏卫视,http://39.134.66.110/PLTV/88888888/224/3221225503/index.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225938/1.m3u8#http://39.134.65.181/PLTV/88888888/224/3221225503/index.m3u8#http://39.134.65.208/PLTV/88888888/224/3221225503/index.m3u8#http://39.134.66.2/PLTV/88888888/224/3221225503/index.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225503/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225800/index.m3u8
|
||||
吉林卫视,http://39.134.65.145/PLTV/88888888/224/3221225981/1.m3u8#http://39.134.67.108/PLTV/88888888/224/3221226013/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225792/index.m3u8#http://39.134.65.149/PLTV/88888888/224/3221225981/1.m3u8#http://39.134.65.149:80/PLTV/88888888/224/3221225981/1653149014-1-1652757736.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225981/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225792/index.m3u8
|
||||
海南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225639/index.m3u8
|
||||
新疆卫视,http://106.124.91.222:9901/tsfile/live/21212_1.m3u8#http://39.134.67.108/PLTV/88888888/224/3221225999/1.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225582/index.m3u8
|
||||
西藏卫视,http://39.134.67.108/PLTV/88888888/224/3221225951/1.m3u8#http://221.213.43.82:8888/newlive/live/hls/37/live.m3u8
|
||||
广西卫视,http://39.134.67.108/PLTV/88888888/224/3221226024/1.m3u8
|
||||
四川卫视,http://39.134.67.108/PLTV/88888888/224/3221225970/1.m3u8
|
||||
山东卫视,http://39.134.67.108/PLTV/88888888/224/3221225952/1.m3u8
|
||||
北京卫视,http://39.134.67.108/PLTV/88888888/224/3221225931/1.m3u8#http://39.134.65.164/PLTV/88888888/224/3221225678/index.m3u8#http://39.134.65.179/PLTV/88888888/224/3221225678/index.m3u8#http://39.134.65.208/PLTV/88888888/224/3221225678/index.m3u8
|
||||
辽宁卫视,http://39.134.66.66/PLTV/88888888/224/3221225499/index.m3u8
|
||||
广东卫视,http://39.134.67.108/PLTV/88888888/224/3221225966/1.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225966/index.m3u8#http://39.134.66.163/PLTV/88888888/224/3221225966/index.m3u8
|
||||
江西卫视,http://39.134.67.108/PLTV/88888888/224/3221225935/1.m3u8
|
||||
东南卫视,http://39.134.67.108/PLTV/88888888/224/3221225950/1.m3u8
|
||||
云南卫视,http://fxgm.fxjf.work:19901/tsfile/live/0119_1.m3u8
|
||||
河北卫视,http://39.134.67.108/PLTV/88888888/224/3221225961/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225750/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225750/index.m3u8
|
||||
甘肃卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225633/index.m3u8
|
||||
重庆卫视,http://39.134.67.108/PLTV/88888888/224/3221225963/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226202/index.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225963/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226202/index.m3u8
|
||||
东方卫视,http://39.134.67.108/PLTV/88888888/224/3221225942/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226217/index.m3u8#http://39.134.65.164/PLTV/88888888/224/3221225672/index.m3u8#http://39.134.65.175/PLTV/88888888/224/3221225672/index.m3u8#http://39.134.65.179/PLTV/88888888/224/3221225672/index.m3u8#http://39.134.65.208/PLTV/88888888/224/3221225672/index.m3u8#http://39.134.66.110/PLTV/88888888/224/3221225672/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221225797/index.m3u8#http://39.134.66.66/PLTV/88888888/224/3221225672/index.m3u8
|
||||
宁夏卫视,http://39.134.67.108/PLTV/88888888/224/3221226028/1.m3u8#https://hls.ningxiahuangheyun.com/tv/nxws.m3u8
|
||||
陕西卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226457/index.m3u8
|
||||
青海卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226323/index.m3u8#http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=63cf437e1591689484#http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=f35a89681647856030
|
||||
教育卫视,http://39.134.65.162/PLTV/88888888/224/3221225558/1.m3u8#http://39.134.65.164/PLTV/88888888/224/3221225558/1.m3u8
|
||||
三沙卫视,https://pullsstv90080111.ssws.tv/live/SSTV20220729.m3u8
|
||||
兵团卫视,http://mobilelive-ds.ysp.cctv.cn/ysp/2022606701_fhd.m3u8#http://39.134.67.108/PLTV/88888888/224/3221226005/1.m3u8#https://epg.pw/stream/85e6975cbd16ed8411909474995d0973728889c2e84a98f21e3063311adb4c84.m3u8
|
||||
农林卫视,http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226229/index.m3u8#http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226229/index.m3u8
|
||||
厦门卫视,http://220.163.178.144:8888/tsfile/live/0115_1.m3u8
|
||||
安多卫视,http://stream.qhbtv.com/adws/sd/live.m3u8
|
||||
康巴卫视,http://110.184.112.221:4022/udp/239.93.0.41:5140#http://39.134.66.66/PLTV/88888888/224/3221225527/index.m3u8
|
||||
大湾区卫视,http://39.134.67.108/PLTV/88888888/224/3221226020/1.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226218/index.m3u8#http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226218/index.m3u8
|
||||
|
||||
安徽卫视,http://39.164.160.249:9901/tsfile/live/0130_1.m3u8
|
||||
安徽卫视,http://183.11.239.36:808/hls/40/index.m3u8
|
||||
安徽卫视,http://123.130.84.106:8154/tsfile/live/0130_1.m3u8
|
||||
安徽卫视,http://111.14.181.15:9901/tsfile/live/0130_1.m3u8
|
||||
安徽卫视,http://gmxw.7766.org:808/hls/40/index.m3u8
|
||||
北京卫视,http://39.164.160.249:9901/tsfile/live/0122_1.m3u8
|
||||
北京卫视,http://satellitepull.cnr.cn/live/wxbtv/playlist.m3u8
|
||||
北京卫视,http://183.11.239.36:808/hls/41/index.m3u8
|
||||
北京卫视,http://120.76.248.139/live/bfgd/4200000083.m3u8
|
||||
兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
|
||||
兵团卫视,http://183.11.239.36:808/hls/7/index.m3u8
|
||||
兵团卫视,http://120.76.248.139/live/bfgd/4200000124.m3u8
|
||||
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
|
||||
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
|
||||
东方卫视,http://183.11.239.36:808/hls/114/index.m3u8
|
||||
东方卫视,http://120.76.248.139/live/bfgd/4200000093.m3u8
|
||||
东方卫视,http://58.19.43.46:9901/tsfile/live/1035_1.m3u8
|
||||
东南卫视,http://58.57.40.22:9901/tsfile/live/1037_1.m3u8
|
||||
东南卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
|
||||
东南卫视,http://58.19.43.46:9901/tsfile/live/1046_1.m3u8
|
||||
东南卫视,http://123.129.70.178:9901/tsfile/live/0137_1.m3u8
|
||||
东南卫视,http://58.221.214.82:9901/tsfile/live/0137_1.m3u8
|
||||
广东卫视,http://58.57.40.22:9901/tsfile/live/1039_1.m3u8
|
||||
广东卫视,http://120.238.94.10:9901/tsfile/live/1008_1.m3u8
|
||||
广东卫视,http://183.11.239.36:808/hls/80/index.m3u8
|
||||
广西卫视,https://hlscdn.liangtv.cn/live/de0f97348eb84f62aa6b7d8cf0430770/dd505d87880c478f901f38560ca4d4e6.m3u8
|
||||
广西卫视,https://hlscdn.liangtv.cn/live/0c4ef3a44b934cacb8b47121dfada66c/d7e04258157b480dae53883cc6f8123b.m3u8
|
||||
广西卫视,http://182.150.23.74:808/hls/31/index.m3u8
|
||||
广西卫视,http://113.25.252.226:9901/tsfile/live/0113_1.m3u8
|
||||
贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
|
||||
贵州卫视,http://110.7.131.40:9901/tsfile/live/0120_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
|
||||
海南卫视,http://36.32.174.67:60080/newlive/live/hls/46/live.m3u8
|
||||
海南卫视,http://218.89.240.144:59901/tsfile/live/1000_1.m3u8
|
||||
海南卫视,http://113.57.111.4:1111/tsfile/live/1031_1.m3u8
|
||||
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/chunklist0.m3u8
|
||||
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/playlist.m3u8
|
||||
河北卫视,https://jwplay.hebyun.com.cn/live/hbwstv/1500k/tzwj_video.m3u8
|
||||
河北卫视,http://36.32.174.67:60080/newlive/live/hls/36/live.m3u8
|
||||
河北卫视,http://111.61.236.247:9081/hls/17/index.m3u8
|
||||
河北卫视,http://120.76.248.139/live/bfgd/4200000108.m3u8
|
||||
河北卫视,http://61.156.228.12:8154/tsfile/live/0117_1.m3u8
|
||||
河南卫视,http://58.57.40.22:9901/tsfile/live/1048_1.m3u8
|
||||
河南卫视,http://satellitepull.cnr.cn/live/wxhnws/playlist.m3u8
|
||||
河南卫视,http://tvpull.dxhmt.cn:9081/tv/11425-1.m3u8
|
||||
河南卫视,http://120.76.248.139/live/bfgd/4200000339.m3u8
|
||||
湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
|
||||
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
|
||||
湖北卫视,http://61.156.228.12:8154/tsfile/live/0132_1.m3u8
|
||||
湖南卫视,http://39.164.160.249:9901/tsfile/live/0128_1.m3u8
|
||||
湖南卫视,http://58.57.40.22:9901/tsfile/live/1028_1.m3u8
|
||||
湖南卫视,http://58.17.48.228:808/hls/31/index.m3u8
|
||||
湖南卫视,http://antvlive.ab5c6921.cdnviet.com/antv/playlist.m3u8
|
||||
湖南卫视,http://120.76.248.139/live/bfgd/4200000086.m3u8
|
||||
吉林卫视,http://58.57.40.22:9901/tsfile/live/1050_1.m3u8
|
||||
吉林卫视,http://satellitepull.cnr.cn/live/wxjlws/playlist.m3u8
|
||||
吉林卫视,http://cssbyd.imwork.net:8082/hls/41/index.m3u8
|
||||
吉林卫视,http://183.11.239.36:808/hls/10/index.m3u8
|
||||
吉林卫视,http://182.150.23.74:808/hls/35/index.m3u8
|
||||
江苏卫视,http://58.57.40.22:9901/tsfile/live/1031_1.m3u8
|
||||
江苏卫视,http://183.11.239.36:808/hls/38/index.m3u8
|
||||
江苏卫视,http://120.76.248.139/live/bfgd/4200000085.m3u8
|
||||
江苏卫视,http://112.46.85.60:8009/hls/33/index.m3u8
|
||||
江苏卫视,http://182.150.23.74:808/hls/18/index.m3u8
|
||||
江西卫视,http://39.164.160.249:9901/tsfile/live/0138_1.m3u8
|
||||
江西卫视,http://58.17.48.228:808/hls/17/index.m3u8
|
||||
江西卫视,http://36.32.174.67:60080/newlive/live/hls/31/live.m3u8
|
||||
江西卫视,http://58.221.214.82:9901/tsfile/live/0138_1.m3u8
|
||||
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
|
||||
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
|
||||
辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
|
||||
辽宁卫视,http://183.11.239.36:808/hls/47/index.m3u8
|
||||
辽宁卫视,http://113.57.111.4:1111/tsfile/live/1026_1.m3u8
|
||||
辽宁卫视,http://61.156.228.12:8154/tsfile/live/0121_1.m3u8
|
||||
辽宁卫视,http://61.136.172.236:9901/tsfile/live/0121_1.m3u8
|
||||
宁夏卫视,http://58.57.40.22:9901/tsfile/live/1054_1.m3u8
|
||||
宁夏卫视,http://120.238.94.10:9901/tsfile/live/1076_1.m3u8
|
||||
宁夏卫视,http://36.32.174.67:60080/newlive/live/hls/49/live.m3u8
|
||||
宁夏卫视,http://58.19.43.46:9901/tsfile/live/1003_1.m3u8
|
||||
宁夏卫视,http://111.61.236.247:9081/hls/51/index.m3u8
|
||||
农林卫视,http://112.46.105.20:8009/hls/27/index.m3u8
|
||||
农林卫视,http://120.76.248.139/live/bfgd/4200000122.m3u8
|
||||
农林卫视,http://112.46.85.60:8009/hls/27/index.m3u8
|
||||
青海卫视,http://58.57.40.22:9901/tsfile/live/1057_1.m3u8
|
||||
青海卫视,http://120.238.94.10:9901/tsfile/live/1073_1.m3u8
|
||||
青海卫视,http://58.19.43.46:9901/tsfile/live/1014_1.m3u8
|
||||
青海卫视,http://120.76.248.139/live/bfgd/4200000111.m3u8
|
||||
青海卫视,http://123.130.84.106:8154/tsfile/live/0140_1.m3u8
|
||||
山东卫视,http://39.164.160.249:9901/tsfile/live/0131_1.m3u8
|
||||
山东卫视,http://l.cztvcloud.com/channels/lantian/SXshengzhou1/720p.m3u8
|
||||
山东卫视,http://183.11.239.36:808/hls/43/index.m3u8
|
||||
山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
|
||||
山东卫视,http://61.136.172.236:9901/tsfile/live/0131_1.m3u8
|
||||
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
|
||||
深圳卫视,http://58.57.40.22:9901/tsfile/live/1036_1.m3u8
|
||||
深圳卫视,http://38.64.72.148:80/hls/modn/list/4007/playlist.m3u8
|
||||
深圳卫视,http://183.11.239.36:808/hls/45/index.m3u8
|
||||
深圳卫视,http://182.150.23.74:808/hls/20/index.m3u8
|
||||
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
|
||||
四川卫视,http://183.11.239.36:808/hls/50/index.m3u8
|
||||
四川卫视,http://113.25.252.226:9901/tsfile/live/0123_1.m3u8
|
||||
四川卫视,http://39.150.96.141:65535/tsfile/live/0123_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
|
||||
天津卫视,http://112.46.85.60:8009/hls/44/index.m3u8
|
||||
天津卫视,http://113.57.111.4:1111/tsfile/live/1024_1.m3u8
|
||||
西藏卫视,http://36.32.174.67:60080/newlive/live/hls/48/live.m3u8
|
||||
西藏卫视,http://111.61.236.247:9081/hls/52/index.m3u8
|
||||
西藏卫视,http://183.11.239.36:808/hls/64/index.m3u8
|
||||
西藏卫视,http://120.76.248.139/live/bfgd/4200000121.m3u8
|
||||
新疆卫视,http://39.164.160.249:9901/tsfile/live/0110_1.m3u8
|
||||
新疆卫视,http://58.57.40.22:9901/tsfile/live/1055_1.m3u8
|
||||
新疆卫视,http://36.32.174.67:60080/newlive/live/hls/47/live.m3u8
|
||||
新疆卫视,http://111.61.236.247:9081/hls/53/index.m3u8
|
||||
新疆卫视,http://113.25.252.226:9901/tsfile/live/0110_1.m3u8
|
||||
延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
|
||||
延边卫视,http://gmxw.7766.org:808/hls/15/index.m3u8
|
||||
云南卫视,http://58.57.40.22:9901/tsfile/live/1047_1.m3u8
|
||||
云南卫视,http://36.32.174.67:60080/newlive/live/hls/45/live.m3u8
|
||||
云南卫视,http://cssbyd.imwork.net:8082/hls/36/index.m3u8
|
||||
浙江卫视,http://58.57.40.22:9901/tsfile/live/1029_1.m3u8
|
||||
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://l.cztvcloud.com/channels/lantian/SXpinghu3/720p.m3u8
|
||||
浙江卫视,http://ali-vl.cztv.com/channels/lantian/channel001/360p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
|
||||
重庆卫视,http://36.32.174.67:60080/newlive/live/hls/34/live.m3u8
|
||||
重庆卫视,http://111.14.181.15:9901/tsfile/live/0142_1.m3u8
|
||||
重庆卫视,http://61.136.172.236:9901/tsfile/live/0142_1.m3u8
|
||||
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
|
||||
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
|
||||
东方卫视,http://183.11.239.36:808/hls/114/index.m3u8
|
||||
东方卫视,http://120.76.248.139/live/bfgd/4200000093.m3u8
|
||||
东方卫视,http://58.19.43.46:9901/tsfile/live/1035_1.m3u8
|
||||
黑龙江卫视,http://39.164.160.249:9901/tsfile/live/0143_1.m3u8
|
||||
黑龙江卫视,http://58.57.40.22:9901/tsfile/live/1040_1.m3u8
|
||||
黑龙江卫视,http://l.cztvcloud.com/channels/lantian/SXyuyao3/720p.m3u8
|
||||
黑龙江卫视,http://58.19.43.46:9901/tsfile/live/1008_1.m3u8
|
||||
内蒙古卫视,http://111.61.236.247:9081/hls/48/index.m3u8
|
||||
内蒙古卫视,http://183.11.239.36:808/hls/60/index.m3u8
|
||||
内蒙古卫视,http://120.76.248.139/live/bfgd/4200000110.m3u8
|
||||
山东教育,https://test1.live.sdetv.com.cn/live/dianshizhibo/playlist.m3u8
|
||||
香港卫视,http://cctvtxyh5c.liveplay.myqcloud.com/cstv/xianggangweishi_2/index.m3u8
|
||||
安多卫视,https://liveout.xntv.tv/a65jur/96iln2.m3u8
|
||||
北京卫视,http://183.215.134.239:19901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
|
||||
兵团卫视,https://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
|
||||
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
|
||||
东南卫视,http://120.76.248.139/live/bfgd/4200000483.m3u8
|
||||
甘肃卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
|
||||
广东卫视,http://183.215.134.239:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8
|
||||
江西卫视,http://120.76.248.139/live/bfgd/4200000098.m3u8
|
||||
江西卫视,http://183.215.134.239:19901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
内蒙古蒙语卫视,https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629213c9a300bf66&txTime=771EF880
|
||||
内蒙古卫视,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
|
||||
内蒙古卫视,https://livestream-bt.nmtv.cn/nmtv/3208526general.m3u8?txSecret=eb5a3102dd5406c7ffeddf560b024952&txTime=76B2F9A0
|
||||
山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
|
||||
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
|
||||
深圳卫视,http://120.76.248.139/live/bfgd/4200000100.m3u8
|
||||
深圳卫视,http://183.215.134.239:19901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
深圳卫视,http://yncbn.ks-cdn.gitv.tv/gitv_live/G_SHENZHEN-HQ/G_SHENZHEN-HQ.m3u8
|
||||
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
|
||||
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8$LR•IPV4『线路20』
|
||||
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8?
|
||||
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
|
||||
浙江卫视,https://stream1.freetv.fun/2e3a01b886780ceca10b44bb6cdb57413757275a6fdcb083800db996bc2f81e3.m3u8
|
||||
湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』
|
||||
北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』
|
||||
安徽卫视,http://61.136.172.236:9901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路75』
|
||||
广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』
|
||||
深圳卫视,http://api3.52tb.xyz/info?id=28&token=20230227aesvnb
|
||||
东南卫视,http://api3.52tb.xyz/info?id=29&token=20230227aesvnb
|
||||
河南卫视,http://api3.52tb.xyz/info?id=31&token=20230227aesvnb
|
||||
海南卫视,http://api3.52tb.xyz/info?id=38&token=20230227aesvnb
|
||||
吉林卫视,http://api3.52tb.xyz/info?id=40&token=20230227aesvnb
|
||||
|
||||
|
||||
IPV6,#genre#
|
||||
CCTV-1综合,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?
|
||||
CCTV-2财经,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226893/1.m3u8?
|
||||
CCTV-3综艺,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226471/1.m3u8?
|
||||
CCTV-4中文国际,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8?
|
||||
CCTV-5体育,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226469/1.m3u8?
|
||||
CCTV-5+体育赛事,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226894/1.m3u8?
|
||||
CCTV-6电影,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226468/1.m3u8?
|
||||
CCTV-7国防军事,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226946/1.m3u8?
|
||||
CCTV-8电视剧,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226485/1.m3u8?
|
||||
CCTV-9纪录,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226944/1.m3u8?
|
||||
CCTV-10科教,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226937/1.m3u8?
|
||||
CCTV-11戏曲,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8?
|
||||
CCTV-12社会与法,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226942/1.m3u8?
|
||||
CCTV-13新闻,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226316/1.m3u8?
|
||||
CCTV-14少儿,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226947/1.m3u8?
|
||||
CCTV-15音乐,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8?
|
||||
CCTV-16奥林匹克,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227002/1.m3u8?
|
||||
CCTV-17农业农村,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8?
|
||||
CGTN英语,https://0472.org/hls/cgtn.m3u8
|
||||
CGTN记录,https://0472.org/hls/cgtnd.m3u8
|
||||
CGTN俄语,https://0472.org/hls/cgtne.m3u8
|
||||
CGTN法语,https://0472.org/hls/cgtnf.m3u8
|
||||
CGTN西语,https://0472.org/hls/cgtnx.m3u8
|
||||
CGTN阿语,https://0472.org/hls/cgtna.m3u8
|
||||
北京卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226900/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcYPi33WFyhvd6SjmqUKhJg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
东方卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226898/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0uh4lyjjBCCN7TCq21vSIQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
浙江卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226899/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ETYfTgTra_pUx2cPrgZ_BDw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
江苏卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226897/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0BmO6uHF7WFoTed__Xr3NQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
广东卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226961/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E2MGyx659D_aaDPP0qt3NgA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
湖南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226509/1.m3u8?zoneoffset=480&servicetype=1&icpid=&limitflux=-1&limitdur=-1&tenantId=8601&accountinfo=%7E%7EV2.0%7EIGb_ib7rnBX9_sANRKq9sg%7EpK8OKM5JoJWWbLRyLfPcUMkwWZ90MzSI9S9PDltJsYzd0ZGcS3Tkh7syciNKJa-w60mDOdwtDyoNwCx9aRgzHNH9AUREV_qvNJtXHRPzYw0%7EExtInfo9bj61dxzlMXrsixrqcFYPg%3D%3D%3A20221022013542%2C915973%2C119.123.71.209%2C20221022013542%2C10000100000000050000000003873458%2C915973%2C-1%2C0%2C1%2C%2C%2C2%2C%2C%2C%2C2%2C%2C10000100000000060000000007253514_0%2CEND&GuardEncType=2
|
||||
深圳卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226959/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EGrVNEZREjuNVKiTJo2mtwg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
四川卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226995/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBQiz3wrGrpG0CUSRIJ-7Jg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
天津卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226954/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eaf3wyULP1h575eM_4ByMDg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
辽宁卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226966/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E6qJH8Fd-zgCGx3P-Ce86cA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
黑龙江卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226965/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E7UiKL56-L86ihmTWaZ6csw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
吉林卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227015/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EW5-3AVdwD5KlUpuA4mz7Cg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
海南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227029/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEuBMjt2kLMD8fAO7QYER7Q%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
广西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227010/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkAhb-89sxdm9fz6-heXCuw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
河北卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227014/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ErSGjhI3DMaaAASPrbQJYTg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
山东卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226957/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EjW26v5VaHGy1jQuIA-4EbA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
山西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227016/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ESb5Qr3NTpE2ZugIroKoyTw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
湖北卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226952/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EREB40lnZnCEwjRy7LZuhIQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
江西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226956/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ei6ZIpVizXlewg-YfGvH8dA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
重庆卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226963/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EjTXsJprEx2nE38tdvu5lhA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
东南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226991/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EQ6F5Mjgs0tJyEArWFL3vQA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
陕西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226999/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EsGLKaSqf0wDZMbAjeQtfyw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
青海卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227017/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EacviHy_ucMT27Ymf2iLtZA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
安徽卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226943/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0QmKQ_slRCwvVVUUfxPVbw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
云南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227028/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EGfQPqRNVeBjTMsZ48qu0SA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
贵州卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227012/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EnqBF03rFwPucF8ODtWxLQQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
宁夏卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227003/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ESco1zinvdUYzleEkXYhIvA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
甘肃卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227020/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Err-CLugPnTcUinEM8JeySg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
内蒙古卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227018/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ErN_hoRDwApMKnJqiNHvn9w%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
新疆卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227011/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ExAUu61iVvo_xYbANWJhgXw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
西藏卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227033/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EdeTB7OZ9G_VNJk5C3t96fQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
延边卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227045/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eq0D3NdTUN7FuRzr8eJsbQA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
康巴卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227027/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkHMvBpWz4rccMxNvSRekpQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
中国教育1台,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8?
|
||||
中国教育2台,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226537/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E7AxXs4eTU2oiWrhopr9sHw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNxsM0Bor098BJglrhfEQTl%2CEND
|
||||
中国教育3台,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226577/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EhE2Z89HKgsQOlN9opVn1iw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN03yUnk4zBVk1bynPPL3hZ%2CEND
|
||||
中国教育4台,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226997/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EAw_OvjRgJVjtlaOa0dcgzg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
浙江新闻,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
|
||||
浙江国际,https://ali-m-l.cztv.com/channels/lantian/channel010/1080p.m3u8
|
||||
浙江少儿,https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
|
||||
浙江教科,https://ali-m-l.cztv.com/channels/lantian/channel004/1080p.m3u8
|
||||
之江纪录,https://ali-m-l.cztv.com/channels/lantian/channel012/1080p.m3u8
|
||||
浙江民生,https://ali-m-l.cztv.com/channels/lantian/channel006/1080p.m3u8
|
||||
浙江经济,https://ali-m-l.cztv.com/channels/lantian/channel003/1080p.m3u8
|
||||
浙江钱江,https://ali-m-l.cztv.com/channels/lantian/channel002/1080p.m3u8
|
||||
内蒙新闻,https://livestream-bt.nmtv.cn/nmtv/2316general.m3u8?txSecret=b4373417a82ed64e52b0982a66da8df2&txTime=771E8800
|
||||
内蒙经济,https://livestream-bt.nmtv.cn/nmtv/2317general.m3u8?txSecret=112b2c4c872de52b0f37aff6ead63ef0&txTime=771E8800
|
||||
内蒙少儿,https://livestream-bt.nmtv.cn/nmtv/2318general.m3u8?txSecret=a2c948908728a0733cecbe1fadea23dc&txTime=771E8800
|
||||
内蒙文体,https://livestream-bt.nmtv.cn/nmtv/2319general.m3u8?txSecret=c7b5c515d2bb6df442492d54955329a3&txTime=771E8800
|
||||
内蒙农牧,https://livestream-bt.nmtv.cn/nmtv/2320general.m3u8?txSecret=4d368a175afa19737a9f5be10af24fe2&txTime=771E8800
|
||||
蒙语卫视,https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629213c9a300bf66&txTime=771EF880
|
||||
蒙语文化,https://livestream-bt.nmtv.cn/nmtv/2321general.m3u8?txSecret=d9d0fd7a252ef56b515c46a2e21830f4&txTime=771E8800
|
||||
呼市新闻综合,https://livestream-bt.nmtv.cn/nmtv/2331general.m3u8?txSecret=4d7342ca5cd74480526ab6d292247aff&txTime=771E8800
|
||||
包头新闻综合,https://livestream-bt.nmtv.cn/nmtv/2358general.m3u8?txSecret=98390a77c143a68f0fd64bfe6e181dcb&txTime=771E8800
|
||||
鄂尔多斯新闻,https://livestream-bt.nmtv.cn/nmtv/2349general.m3u8?txSecret=e44477052aba305cadeea45aaf1c674a&txTime=771E8800
|
||||
巴彦淖尔新闻,https://livestream-bt.nmtv.cn/nmtv/2348general.m3u8?txSecret=6a4ddce077e41b976fe33619fbef2b30&txTime=771E8800
|
||||
赤峰新闻综合,https://livestream-bt.nmtv.cn/nmtv/2351general.m3u8?txSecret=8857087aeec2cec44d178a18550fdb8a&txTime=771E8800
|
||||
乌兰察布新闻,https://livestream-bt.nmtv.cn/nmtv/2354general.m3u8?txSecret=cf5f71d0000862b18f5813607b3dfd5b&txTime=771E8800
|
||||
|
||||
|
||||
少儿频道,#genre#
|
||||
熊大熊二,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1733da751de64e6e910abda889d87a26/1200.m3u8
|
||||
福州少儿,http://live.zohi.tv/video/s10001-fztv-4/index.m3u8
|
||||
GOOD卡通,https://dqhxk7sbp7xog.cloudfront.net/osmflivech45.m3u8
|
||||
倒霉特熊,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/87f87ba569c147e3805f80e4844d2de9/1200.m3u8
|
||||
雲朵妈妈,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d8ad434c6b08421a927557a4d98da65c/1200.m3u8
|
||||
反转星球,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ccdecc7d6e341c1920ad4eac5d82f38/1200.m3u8
|
||||
狮子王國,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c2e7e767f3144bed959ef20b8b961fe5/850.m3u8
|
||||
key=0b292c335e5837e947f9409c59228f3e6
|
||||
|
||||
|
||||
影视,#genre#
|
||||
神乐剧场,https://tc-tc2-interact.douyucdn2.cn/dyliveflv1/85894rmovieChow_900p.m3u8
|
||||
神乐剧院,https://tc-tc2-interact.douyucdn2.cn/dyliveflv1a/122402rK7MO9bXSq_900.m3u8
|
||||
绍兴影院,http://live.shaoxing.com.cn/video/s10001-sxtv3/index.m3u8
|
||||
南宁影院,http://hls.nntv.cn/nnlive/NNTV_VOD_A.m3u8
|
||||
乌克兰影,http://serv25.vintera.tv:8081/test/aris/playlist.m3u8
|
||||
绍兴影视,http://live.shaoxing.com.cn/video/s10001-sxtv3/index.m3u8
|
||||
烟台影视,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129.m3u8
|
||||
菏泽影视,http://live.hznet.tv:1935/live/live3/500K/tzwj_video.m3u8
|
||||
北京影视,https://wstvcpudali.v.myalicdn.com/wstvcpud/udrmbtv4_1/index.m3u8?adapt=0&BR=audio
|
||||
新昌休闲影视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
|
||||
石河子影视文体,http://124.88.144.73:1935/live/jjsh/HasBahCa.m3u8
|
||||
烟台影视,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129-1.m3u8
|
||||
美丽中国说,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/8cdd688b04e4495ba1635e218419d6f9/4000.m3u8
|
||||
|
||||
|
||||
大杂烩,#genre#
|
||||
碌曲综合,http://pili-live-hls.hfmt.net/gntv/lqtv.m3u8?zgand
|
||||
临潭综合,http://pili-live-hls.hfmt.net/gntv/lttv.m3u8?zgand
|
||||
夏河综合,http://pili-live-hls.hfmt.net/gntv/xhtv.m3u8?zgand
|
||||
舟曲新闻,http://pili-live-hls.hfmt.net/gntv/zqtv.m3u8?zgand
|
||||
西峰综合,http://pili-live-rtmp.luan2.hfmt.net/luan2/xifeng/123456.m3u8?zgand
|
||||
文山州新闻综合,http://tvdrs.wsrtv.com.cn:8100/channellive/ch1.flv?zyund
|
||||
文山州新闻综合,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8?zyund
|
||||
文山州公共,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel8/playlist.m3u8?zyund
|
||||
怒江新闻综合,http://livebroadcast.ccwb.cn/live/w1620805130988936.m3u8?zyund
|
||||
砚山电视台,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel16/playlist.m3u8?zyund
|
||||
麻栗坡电视台,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel18/playlist.m3u8?zyund
|
||||
哈尔滨新闻综合,http://stream.hrbtv.net/xwzh/sd/live.m3u8?zheild
|
||||
哈尔滨影,http://stream.hrbtv.net/yspd/sd/live.m3u8?zheild
|
||||
哈尔滨生活,http://stream.hrbtv.net/shpd/sd/live.m3u8?zheild
|
||||
哈尔滨娱乐,http://stream.hrbtv.net/ylpd/sd/live.m3u8?zheild
|
||||
鄂托克旗电视台,http://110.19.181.138:10080/hls/F509Rh7GR/F509Rh7GR_live.m3u8?zneimd
|
||||
白山公共,http://stream8.jlntv.cn/baishan2/playlist.m3u8?zjild
|
||||
长白山电视台,http://stream8.jlntv.cn/cbstv/sd/live.m3u8?zjild
|
||||
九台综合,http://stream10.jlntv.cn/jiutaitv/sd/live.m3u8?zjild
|
||||
靖宇综合,http://stream8.jlntv.cn/jytv/sd/live.m3u8?zjild
|
||||
敦化一套,http://stream8.jlntv.cn/dhtv/playlist.m3u8?zjild
|
||||
珲春新闻综合,http://stream8.jlntv.cn/hctv/sd/live.m3u8?zjild
|
||||
龙井综合,http://stream8.jlntv.cn/ljtv/sd/live.m3u8?zjild
|
||||
桦甸综合,http://stream10.jlntv.cn/huadian/sd/live.m3u8?zjild
|
||||
磐石综合,http://stream5.jlntv.cn/ps/sd/live.m3u8?zjild
|
||||
舒兰新闻综合,http://stream8.jlntv.cn/shulan/sd/live.m3u8?zjild
|
||||
东丰综合,http://stream5.jlntv.cn/df/sd/live.m3u8?zjild
|
||||
双辽综合,http://stream5.jlntv.cn/sl/sd/live.m3u8?zjild
|
||||
辉南新闻综合,http://stream5.jlntv.cn/hn/sd/live.m3u8?zjild
|
||||
柳河综合,http://stream5.jlntv.cn/lh/sd/live.m3u8?zjild
|
||||
通化县综合,http://stream5.jlntv.cn/thx/sd/live.m3u8?zjild
|
||||
汪清综合,http://stream5.jlntv.cn/wq/sd/live.m3u8?zjild
|
||||
|
||||
|
||||
浙江综合,#genre#
|
||||
绍兴新闻综合,http://live.shaoxing.com.cn/video/s10001-sxhb/index.m3u8?zzhed
|
||||
绍兴新闻综合,http://live.shaoxing.com.cn/video/s10001-sxtv1/index.m3u8?zzhed
|
||||
绍兴文化影院,http://live.shaoxing.com.cn/video/s10001-sxtv3/index.m3u8?zzhed
|
||||
武义新闻综合,http://l.cztvcloud.com/channels/lantian/SXwuyi1/720p.m3u8?zzhed
|
||||
平湖新闻综合,http://l.cztvcloud.com/channels/lantian/SXpinghu1/720p.m3u8?zzhed
|
||||
平湖民生休闲,http://l.cztvcloud.com/channels/lantian/SXpinghu2/720p.m3u8?zzhed
|
||||
萧山新闻综合,http://l.cztvcloud.com/channels/lantian/SXxiaoshan1/720p.m3u8?zzhed
|
||||
萧山生活频道,http://l.cztvcloud.com/channels/lantian/SXxiaoshan2/720p.m3u8?zzhed
|
||||
余杭综合频道,http://l.cztvcloud.com/channels/lantian/SXyuhang1/720p.m3u8?zzhed
|
||||
余杭未来E频道,http://l.cztvcloud.com/channels/lantian/SXyuhang3/720p.m3u8?zzhed
|
||||
余姚新闻综合,http://l.cztvcloud.com/channels/lantian/SXyuyao1/720p.m3u8?zzhed
|
||||
余姚姚江文化,http://l.cztvcloud.com/channels/lantian/SXyuyao3/720p.m3u8?zzhed
|
||||
嵊州新闻综合,http://l.cztvcloud.com/channels/lantian/SXshengzhou1/720p.m3u8?zzhed
|
||||
诸暨新闻综合,http://l.cztvcloud.com/channels/lantian/SXzhuji3/720p.m3u8?zzhed
|
||||
上虞新闻综合,http://l.cztvcloud.com/channels/lantian/SXshangyu1/720p.m3u8?zzhed
|
||||
上虞文化影院,http://l.cztvcloud.com/channels/lantian/SXshangyu2/720p.m3u8?zzhed
|
||||
上虞新商都,http://l.cztvcloud.com/channels/lantian/SXshangyu3/720p.m3u8?zzhed
|
||||
兰溪新闻综合,http://l.cztvcloud.com/channels/lantian/SXlanxi1/720p.m3u8?zzhed
|
||||
|
||||
|
||||
江苏综合,#genre#
|
||||
淮安公共频道,http://live1.habctv.com/ggpdsl/sd/live.m3u8?zjiangsd
|
||||
淮安影院娱乐,http://live1.habctv.com/ysylsl/sd/live.m3u8?zjiangsd
|
||||
张家港新闻综合,http://3gvod.zjgonline.com.cn:1935/live/xinwenzonghe2/playlist.m3u8?zjiangsd
|
||||
张家港民生频道,http://3gvod.zjgonline.com.cn:1935/live/shehuishenghuo2/playlist.m3u8?zjiangsd
|
||||
金湖新闻综合,http://jinhu-tv-hls.cm.jstv.com/jinhu-tv/jinhuzh.m3u8?zjiangsd
|
||||
金坛新闻频道,http://jintan-tv-ori-hls.jstv.com/jintan-tv-ori/jintan_xw.m3u8?zjiangsd
|
||||
沭阳综合频道,http://shuyang-tv-hls.cm.jstv.com/shuyang-tv/shuyangzh.m3u8?zjiangsd
|
||||
泗阳综合频道,http://siyang-tv-hls.cm.jstv.com/siyang-tv/siyangzh.m3u8?zjiangsd
|
||||
泗阳资讯频道,http://siyang-tv-hls.cm.jstv.com/siyang-tv/siyangzx.m3u8?zjiangsd
|
||||
|
||||
|
||||
山东综合,#genre#
|
||||
烟台新闻综合,http://live.yantaitv.cn/live/3e81a8879da44c5dadf3bd9c10468e1c/9b776d420ee4438199b7657c8eb88f07-1.m3u8?shandd
|
||||
烟台公共,http://live.yantaitv.cn/live/e50f104a4ffe4a41b2217cbda534146f/d86092e69df94668b33390278b061700-1.m3u8?shandd
|
||||
烟台经济科技,http://live.yantaitv.cn/live/27f84144e95a4652ae9e5c211b2a6b55/405f3e33ba384aa0a16014d0becd1261-1.m3u8?shandd
|
||||
烟台影,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129-1.m3u8
|
||||
菏泽新闻综合,http://live.hznet.tv:1935/live/live1/500K/tzwj_video.m3u8?shandd
|
||||
菏泽经济生活,http://live.hznet.tv:1935/live/live2/500K/tzwj_video.m3u8?shandd
|
||||
菏泽影,http://live.hznet.tv:1935/live/live3/500K/tzwj_video.m3u8?shandd
|
||||
东营综合,http://stream.hhek.cn/xwzh/sd/live.m3u8?shandd
|
||||
东营公共,http://stream.hhek.cn/ggpd/sd/live.m3u8?shandd
|
||||
东营科教,http://stream.hhek.cn/dyjy/sd/live.m3u8?shandd
|
||||
|
||||
|
||||
四川综合,#genre#
|
||||
叙州新闻综合,http://pili-live-hls.ybcxjd.com/jdh-live/2108111201035597.m3u8?zsicd
|
||||
利州综合,http://tvfile.lzgbdst.com/nmip-media/channellive/channel106876/playlist.m3u8?zsicd
|
||||
泸县新闻综合,http://lxfile.lxxcb.cn/nmip-media/channellive/channel103799/playlist.m3u8?zsicd
|
||||
|
||||
|
||||
纪录片频道,#genre#
|
||||
人与自然,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1425e1d505654cb48ba82b807b221193/1200.m3u8
|
||||
自然传奇,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/81a1ad3a661748bfb8560c92d38204ca/1200.m3u8
|
||||
探索发现,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/25137bd7c4494128bf0cba271974928f/1200.m3u8
|
||||
地理中国,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c6baf6f74bb944aeacee1065ea72c798/1200.m3u8
|
||||
大太平洋,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/2d7f4eeaed2e4ad080bcf324eb21bc0d/4000.m3u8
|
||||
生命脉动,http://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c481b5826ffc4e99a92e01704c862dbc/850.m3u8
|
||||
飞碟之谜,http://newcntv.qcloudcdn.com/asp/hls/2000/0303000a/3/default/f0a47e155d32450daa1d36a04fd7d262/2000.m3u8
|
||||
飞碟之谜2,https://hls.cntv.lxdns.com/asp/hls/2000/0303000a/3/default/f0a47e155d32450daa1d36a04fd7d262/2000.m3u8
|
||||
远方的家,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/162d7e29c3da4aab82ad47b6e2d9e7b4/4000.m3u8
|
||||
美丽中国说,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/8cdd688b04e4495ba1635e218419d6f9/4000.m3u8
|
||||
美丽中国自然,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/51d937a0201f4c78a5878b4b37089f3b/4000.m3u8
|
||||
航拍中国第一季,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/8edf3fb6a69148ea9a7dc0b5a9d99fdb/4000.m3u8
|
||||
航拍中国第二季,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/2bdfdad540b342f592f9817cb7f3b79a/4000.m3u8
|
||||
航拍中国第三季,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/18a8a559464448dbaf60d33913e09aea/1200.m3u8
|
||||
中国村庄,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/93fc12dbf14241c18c23da104fbade23/4000.m3u8
|
||||
梵净山,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/b9571df1181c4422a83901e827519fe6/4000.m3u8
|
||||
地球脉动第一季,http://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7a3423af02284c3db48b854ab646993f/850.m3u8
|
||||
乘着火车看中国,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/2b0f397ed9d948eb9fac38d73cde241b/4000.m3u8
|
||||
动物世界,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/71d7dce230b74c1b9e35b41e837ffc5f/1200.m3u8
|
||||
一片住着熊的森林1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2ac6789acc644b55a4df03445561c56b/1200.m3u8
|
||||
一片住着熊的森林2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/969d426187eb46e19fc6839a435fbf0f/1200.m3u8
|
||||
一片住着熊的森林3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd1e9f94afe948efafaa28a882661620/1200.m3u8
|
||||
与野生动物为邻,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d25931bed86a49d4afb8780771797c19/1200.m3u8
|
||||
丛林之王美洲豹,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bbb1037a32ad44cf8bab822eda34bc86/1200.m3u8
|
||||
丛林勇士之战(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2550722b92464a749fa7aceb52e22895/1200.m3u8
|
||||
丛林勇士之战(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c02959d3f2b14d3abf05ec017179c964/1200.m3u8
|
||||
从幼狮到狮王(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0eb0c51f46ed4171a9923dd6a9703c45/1200.m3u8
|
||||
从幼狮到狮王(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a7510a06ef494458a0f23a8a6b6918d3/1200.m3u8
|
||||
传奇母狮,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c550dc54139b4e619e7d4a1c1ab69e56/1200.m3u8
|
||||
兄弟情深(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0700de47ebc74232bc9f5c5c178aa488/1200.m3u8
|
||||
兄弟情深(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30a35b521af54f1a88d74f7215ece1d3/1200.m3u8
|
||||
兄弟捕猎联盟,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0b85d990df5c4f7fae663dc595a084bd/1200.m3u8
|
||||
充满爱的象家族1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4bd5e30e25244ef1a622142a1053d8c0/1200.m3u8
|
||||
充满爱的象家族2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0acf5b4f7fc248f1bd0801b768375fd6/1200.m3u8
|
||||
兽语如歌,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9d7bcf3e27d941cfac2e6c933ad9b543/1200.m3u8
|
||||
冬季传说雪鸮,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e76b2116c4514daea844fbdd1b56ab5d/1200.m3u8
|
||||
冬日雪鸮,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1a7b439474b6439c91dc5d5b2cb736d4/1200.m3u8
|
||||
冰天雪地北极熊(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/15dd2029621a498d9c4d3eb2982285e7/1200.m3u8
|
||||
冰天雪地北极熊(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/360e77812fc84a8198e85a60f087b049/1200.m3u8
|
||||
冰雪世界狼女王(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/640f926df6fb4f398d40c8b254248750/1200.m3u8
|
||||
冰雪世界狼女王(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d85457ff45154ff8bdf74e73422e99a4/1200.m3u8
|
||||
冰雪王国里的童话,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3b291326cf2648cd8119f5facf9e3b92/1200.m3u8
|
||||
冷静与柔情,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/554c1b879dc646d4ab188dfd58a0f02f/1200.m3u8
|
||||
凯门鳄的奇妙旅程,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aba970eff8be48beb339a2ad027592cf/1200.m3u8
|
||||
动物与计谋,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/403122f54ee5492fa9e5d2b8f0087ad2/1200.m3u8
|
||||
动物冠军俱乐部,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/65227347336749ffa373661cac985952/1200.m3u8
|
||||
动物冠军竞技场(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cf107046774d4db5a1ac622e880488e2/1200.m3u8
|
||||
动物冠军竞技场(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9f1dc957013c4765a96b86c1890e4ae2/1200.m3u8
|
||||
动物宝宝闯天涯(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e1f91fe01a9b4b24834a0a6e4b309bb2/1200.m3u8
|
||||
动物宝宝闯天涯(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d5937591787941518b5a1390f7a1e792/1200.m3u8
|
||||
动物搏击赛,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/22ef116331af49a782d42488e396837e/1200.m3u8
|
||||
动物搏击运动会,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0f74c44316a34ea482ecae43f5c12fa8/1200.m3u8
|
||||
动物父母有梦想(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f069e600b3584765840f34e9d641919a/1200.m3u8
|
||||
动物父母有梦想(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c1df6f1bff5454a9570693475f920ef/1200.m3u8
|
||||
动物界捕食奇观,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5215de3e2a7b41009ed1ded1f29fea40/1200.m3u8
|
||||
动物的海底宫殿,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0929798fce744530b14a6add96afcdf3/1200.m3u8
|
||||
动物霓裳羽衣之妙,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b4aea8cd185c4126a37aa6e92d179f82/1200.m3u8
|
||||
勇挑重担的矮獴(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8ef930c154a446d0a831d2dd93698fd2/1200.m3u8
|
||||
勇挑重担的矮獴(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d9ffce5e83824939ab9bb66502778bd9/1200.m3u8
|
||||
勇敢的王者之心,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d37b12d09c4144f0a59560f18ff6508a/1200.m3u8
|
||||
勇敢的长颈鹿(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a9d50517baa443b82b3e4c9e0078351/1200.m3u8
|
||||
勇敢的长颈鹿(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/773b3e9df72f4834b85c46e0f5b038fb/1200.m3u8
|
||||
勇闯包围圈,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3af15ad56d1640fab9a1a065402b3b76/1200.m3u8
|
||||
勇闯螃蟹岛,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3bba8da0b6c54771aa02b579ba75f8e7/1200.m3u8
|
||||
勇闯都市丛林,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/221e94ad951d4001b106d3c5af785537/1200.m3u8
|
||||
勤奋的捕食者,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4793c8276c184d03bc3ba5e9b6dc9610/1200.m3u8
|
||||
北极熊之光(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9df8189c94b24b8b8bb6c69e448cc936/1200.m3u8
|
||||
北极熊之光(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ca1fabcc21d64b1f8cc933844830fcc5/1200.m3u8
|
||||
北极熊的冒险之旅(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e1b4b7a8beb3459bbd44f505a3fcc99c/1200.m3u8
|
||||
北极熊的冒险之旅(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9ab29267ff5b4b2b99fdb74d1b9fec55/1200.m3u8
|
||||
北极熊路在何方,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/38321222144945faa76d79c7785346a6/1200.m3u8
|
||||
南美野生世界1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/35eac4ae4e024654b845f5c7b2221d15/1200.m3u8
|
||||
南美野生世界2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9c743ea1e41f4bf585fb1470c9575c0d/1200.m3u8
|
||||
南美野生世界3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/68caf99e50bc496fb478b0ed8f4b421a/1200.m3u8
|
||||
原野逐梦记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/01fcf61e12c242bd81dc5aca38b6f183/1200.m3u8
|
||||
变形记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c88fd67847314d1ab20524c9fd94d555/1200.m3u8
|
||||
古老的活化石恒河鳄(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f8c9f1b5ac454c9a9ec5fda21c62b926/1200.m3u8
|
||||
古老的活化石恒河鳄(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/966f8103448c4dcdabee095eeb340451/1200.m3u8
|
||||
可爱的海獭(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/340266a6b3ff421fa174208845f56fef/1200.m3u8
|
||||
可爱的海獭(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef9b2898e92146d29a2e926ce1107eac/1200.m3u8
|
||||
呵护,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3e2d88a89cd9464e89f3b4b6353db194/1200.m3u8
|
||||
团结的水豚家族,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/51e9c38303624369a0ba257163a5528f/1200.m3u8
|
||||
大力士捕鱼记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1bcefb1f860746ebbbfe7f969c3a84ea/1200.m3u8
|
||||
大地骄子,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b08d6ad2f22047bd93af89955db5ce46/1200.m3u8
|
||||
大水獭回归的故事,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0e114c18fa084fe58238307c66506675/1200.m3u8
|
||||
大水獭桑丘的故事(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ffea8bb4f0a04e53a82dab943e32bfb1/1200.m3u8
|
||||
大水獭桑丘的故事(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9934a6c232264addaf109ac76f21e7da/1200.m3u8
|
||||
大猫们的世界,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/830375ed0f54449e8e369edc9635e329/1200.m3u8
|
||||
大猫传奇,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6976a5d0ae0d4426bbd94bc1dd8f44a9/1200.m3u8
|
||||
大猫和邻居们(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/84359a09aab544b184a40865454e0b0a/1200.m3u8
|
||||
大猫和邻居们(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2c4bc4b10e7d408a8de9c9e3012f64ca/1200.m3u8
|
||||
大猫归来,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8c13b8463ee54e93a0a0ccc33dab33ef/1200.m3u8
|
||||
大猫榜中榜(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e5c95f6d2f9447e2bbb0b2bba952e062/1200.m3u8
|
||||
大猫榜中榜(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9f813ed35c264d4ea10e57516dafe5d6/1200.m3u8
|
||||
大猫猎手训练营,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a08d9451f00a451682973c99b503dd6a/1200.m3u8
|
||||
大象与羊的快乐生活,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b72e3a49fdd44f36915d6cc59aa0a113/1200.m3u8
|
||||
大象与羊的神奇友情(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7689d02607d34fdb8ce22cc479e42e91/1200.m3u8
|
||||
大象与羊的神奇友情(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8ab73d30adff4cfa8e5afda910387dfc/1200.m3u8
|
||||
大象的别样生活(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f4e6615b73ce42aa805767845425078a/1200.m3u8
|
||||
大象的别样生活(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f80446c8a43c4357af8680057ec1669f/1200.m3u8
|
||||
大象的秘密生活(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/81f43884b4064750af230205752dbb63/1200.m3u8
|
||||
大象的秘密生活(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/43e021f3a6dc4b6089c71afe80552fae/1200.m3u8
|
||||
天生野长生命延续(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/87be5f0e1fb14d139fe696081a787914/1200.m3u8
|
||||
天生野长生命延续(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b95e26a16f664da498ef421f74ad3006/1200.m3u8
|
||||
天生野长生命课程(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/95839705cfdc471aa67a09b7cfd6f52d/1200.m3u8
|
||||
奇异世界的动物们2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef3ee1bb8ff946a9adf07486709883eb/1200.m3u8
|
||||
奇异世界的动物们3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/efa51c5e3af04df89e68606d75333080/1200.m3u8
|
||||
奇特动物的奇特遭遇(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2b20f8ba9ae14d96b9907f59bb758595/1200.m3u8
|
||||
奇特动物的奇特遭遇(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0ebab68eda084509b18c27982ecfb660/1200.m3u8
|
||||
奇迹发生的时刻,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1dbbdbb87b8f410cbc0f3c742201cd7d/1200.m3u8
|
||||
如履薄冰的北极熊(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f31953326cca4b5e9c5f7e285a5cddb7/1200.m3u8
|
||||
如履薄冰的北极熊(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b6576aa2cd4e43a9a5ddc4af16695a28/1200.m3u8
|
||||
家有萌宝(五),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/496e4c0e2de74aaf968651d447eeb12a/1200.m3u8
|
||||
家有萌宝1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7c53f1554802430587ecc54b1cef1002/1200.m3u8
|
||||
家有萌宝2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/81f9af4e6a6f41daa48c6c0091e4d66b/1200.m3u8
|
||||
家有萌宝3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fe463d857de5415daa72441ab0cdab7f/1200.m3u8
|
||||
家有萌宝4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/15d2240bbfc34785bfc2ab8147244466/1200.m3u8
|
||||
家有萌狗,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0fb39f83b1764305bd0216f15b8ab88a/1200.m3u8
|
||||
小动物大猎手(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c46a26d74f5b4da98f5c9d69f8218de0/1200.m3u8
|
||||
小动物大猎手(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef8ad1d36d9c4515a9e04443687a7f33/1200.m3u8
|
||||
小动物大英雄,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/27818c0197e94415946b825b2b163e22/1200.m3u8
|
||||
小动物的森林童话,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/321727074edc4cf69b5b205111569205/1200.m3u8
|
||||
小勇士闯天下,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8737418de24a461f9785193bcbda0026/1200.m3u8
|
||||
小熊的故事1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d3c750e3481a4ca696898875f6e6dbf1/1200.m3u8
|
||||
小熊的故事2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3499a172820f47da988e5aaeb187ec29/1200.m3u8
|
||||
小熊的故事3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3564b5460bea444b8712fb1cb0a59c00/1200.m3u8
|
||||
小熊的梦幻森林1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b0f2b241c39c42beb732a5e73b5a9782/1200.m3u8
|
||||
小熊的梦幻森林2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b2e817cee1a7417ba34f062aa919ca02/1200.m3u8
|
||||
小熊的梦幻森林3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8bbcff92f2ce423bb2d822e0fb67657f/1200.m3u8
|
||||
小角马历险记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b7594a5bc3d241e3a8b95eac39ebd7e9/1200.m3u8
|
||||
小象和绵羊朋友(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c69ca1ce229648ce86e97c0b86e67c58/1200.m3u8
|
||||
小象和绵羊朋友(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/138e7ea321c94a86b4f939ccb00a75a9/1200.m3u8
|
||||
小鼠奇遇记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9417f7c1d9f2484c901d886245892130/1200.m3u8
|
||||
巨兽来了,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1224d3b3e1ba410d8dc316f2f2ab1872/1200.m3u8
|
||||
巨藻林的守卫者,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/432e7e692dc841bfaefb5e662de89bdc/1200.m3u8
|
||||
彩蛇之舞,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/002334474c7c4b8b98bad237a7bdeb7b/1200.m3u8
|
||||
情满大草原1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/222ec6157bf34d8c9abd0e62ddae6ee1/1200.m3u8
|
||||
情满大草原2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8200031edc9f434583d9b3f738ac4448/1200.m3u8
|
||||
情满大草原3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0ab9b80f79884e22b6390b2deefdc571/1200.m3u8
|
||||
打造一只超级猫,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ba966901198844d09399a354e203e6cb/1200.m3u8
|
||||
抢滩勇士(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0d4351715b27425d87a926b964b6cdaf/1200.m3u8
|
||||
捕猎刹那间1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6b222a92e2b9484f86121a558915ddb5/1200.m3u8
|
||||
捕猎刹那间2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/eb2cf087eae64ff9a40258bbbc1a92ba/1200.m3u8
|
||||
捕猎刹那间3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/799ea1ddb3db403484fe2421d4831287/1200.m3u8
|
||||
捕食一瞬间(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/426cfdd1924a452b863c0cd52af6436b/1200.m3u8
|
||||
捕食一瞬间(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b66704d4d4aa4ea7bab6e6ef673568b3/1200.m3u8
|
||||
捕食奇谋(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/543fa61893394cc48d2802207c8a51e8/1200.m3u8
|
||||
捕食奇谋(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/05ba8dcc7a224442a58f6d6f86885d25/1200.m3u8
|
||||
捕食者大观,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d19e46abe2754e2985715a147e653626/1200.m3u8
|
||||
捕食者身体构造,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/83901acd0fed408f904a9b554c8e16ef/1200.m3u8
|
||||
捕食者追猎现场(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/853b68324c2e4718ad08298aaed459b7/1200.m3u8
|
||||
捕食者追猎现场(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6016b09920a7447eb798f3f891f52bad/1200.m3u8
|
||||
探秘冰上的北极熊(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a74d01391d849849c7391b2466f3752/1200.m3u8
|
||||
探秘冰上的北极熊(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/509e924ad47e422984af226b26236bf6/1200.m3u8
|
||||
探秘雨林利爪族(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dc83b3fe7f874e33959bdbf034e6451c/1200.m3u8
|
||||
探秘雨林利爪族(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5a8fd3e4e8ba4ca5b62f1b90ae9c3640/1200.m3u8
|
||||
新狮王诞生记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5e156f1734234e17ab0f6f87f2e7491b/1200.m3u8
|
||||
旱季冒险故事,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ac505ca5d2d5469eb21448c300a8c16c/1200.m3u8
|
||||
旱季极限生存战,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1b750e952abb452c9f77d44f8d8bae17/1200.m3u8
|
||||
旱季生存攻略,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f34548881664dd6afb01ccdcb677a5d/1200.m3u8
|
||||
有一只美丽的大水獭,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f1ddaab95ca9475da4cd97907cef8e96/1200.m3u8
|
||||
来到这个美丽的世界(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/003d910853de498299eb47d7d8a2eedf/1200.m3u8
|
||||
来到这个美丽的世界(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9323ea96cf6a47afaf798fca6d9411e6/1200.m3u8
|
||||
林间潜伏,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/922b142fef9443218be5eaf44df0b397/1200.m3u8
|
||||
棋逢对手,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3d515f3011c64797ae15bf36c639cb49/1200.m3u8
|
||||
棕熊把守的水上要塞(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/50590d053a2245428391323902e07d0e/1200.m3u8
|
||||
棕熊把守的水上要塞(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bb2341e42865439eaed4502fcc736ea5/1200.m3u8
|
||||
棕熊捕鱼季(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1ef91cb6079d46ccb9a62f046739d5c8/1200.m3u8
|
||||
棕熊的捕鱼生活(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/388d46918ea34570a3fed5f5ceb393ee/1200.m3u8
|
||||
棕熊的捕鱼生活(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/09def25492254217aba438e7403741e2/1200.m3u8
|
||||
森林是我家1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c105c056c3f744baa49ce0b8b39c1f3b/1200.m3u8
|
||||
森林是我家2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/63bb582977074c57a127eaca9d954154/1200.m3u8
|
||||
森林是我家3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/14b683f0668f404a9bb8ea74d14c5c8e/1200.m3u8
|
||||
植物王国漫游记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/508b9a0c8be74d89a431b24114c91faa/1200.m3u8
|
||||
植物王国漫游记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fa3ad43978014ff4b64b4bff8914116c/1200.m3u8
|
||||
母爱之路,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/115d481467e04333be047fcebf482b3e/1200.m3u8
|
||||
母爱的呵护,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a6ec4d0475e1453e8ede023e346c2350/1200.m3u8
|
||||
水牛与狮子的争战,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1e0dc98b1374b43b157bf82eebc6d09/1200.m3u8
|
||||
水牛向前冲(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2f05eb49b3a049c88a848a1104dc856f/1200.m3u8
|
||||
水牛向前冲(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bda4b441c07e40cb8a418381d0506c80/1200.m3u8
|
||||
水獭奇缘,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/da2d147b25404552b118111dd52d7a25/1200.m3u8
|
||||
水豚爱湿地,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c7488fc3bed341ad827c054d3ec7e62d/1200.m3u8
|
||||
沙滩上的盛宴,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/31e38a0232734780842a9031072c2073/1200.m3u8
|
||||
河里的捕食大师(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf70f8033ec049f5be4698c3497d3868/1200.m3u8
|
||||
河里的捕食大师(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/040c050908a340238dacd1ac86694543/1200.m3u8
|
||||
河龙王出海,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f352ba97a41146279f5d250cc8c670bb/1200.m3u8
|
||||
海底生存战,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/20225ac33ef7408e8c7040cb39d6a595/1200.m3u8
|
||||
海洋宫殿的守护者,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/86c73156b8ad405180ed252940b2155c/1200.m3u8
|
||||
海洋猎手,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f98ebc30517647839c09fb17e0dbea04/1200.m3u8
|
||||
海洋里的神奇家族(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef8e561920694e4a81cd1933314610cb/1200.m3u8
|
||||
海洋里的神奇家族(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5775e1919dca48169eb22986804455b3/1200.m3u8
|
||||
海洋里的神奇家族(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a68ae907dc7e4783af8d9547a1926435/1200.m3u8
|
||||
海的呼唤,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee6a46541b624388a01ba2fc14c34079/1200.m3u8
|
||||
海豚的奇妙生活(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30385b1caa214c9a8c6c53ef69ce7e18/1200.m3u8
|
||||
海豚的奇妙生活(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b61b0646586142aca08c2e8d333c385b/1200.m3u8
|
||||
海鬣蜥的幸福生活,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a66f6344f9cc4ed3b42b06e678124d0f/1200.m3u8
|
||||
海鬣蜥的故事,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d19635c3f57f4e538e078569ac796fd6/1200.m3u8
|
||||
深海潜伏的猎手,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f1a00ae54f3b428bac1ed388ced1ce70/1200.m3u8
|
||||
湿地之争豹与鳄鱼,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1fe1e5df7c9d4b38a0a855e092a7b6c1/1200.m3u8
|
||||
湿地小萌兽,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/00892961ec6546ae8c78e96d1dd0874a/1200.m3u8
|
||||
湿地有萌兽,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3c31d84ec7e4035a8501db9df1d140b/1200.m3u8
|
||||
潜水大师的岛上生活(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cd88344f084b47c593388fdf6a8c443f/1200.m3u8
|
||||
潜水大师的岛上生活(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/76332b54d8074b0fada76d081570d621/1200.m3u8
|
||||
熊在旅途(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b0b95c35bce84072b10ad0b82cf83951/1200.m3u8
|
||||
熊在旅途(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9dc810bc8a3b426f88ac8c998f9e5332/1200.m3u8
|
||||
熊的王国,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ade1b31d23694fba82c9c4f07dba3267/1200.m3u8
|
||||
爱与狗相伴,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/530a12d274184293802f51c38603f75a/1200.m3u8
|
||||
爱你我的宝宝(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/08f97ee21d884d0486c37ae6fb7c5683/1200.m3u8
|
||||
爱你我的宝宝(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f16dbba3ddf84af2a0ff1521448ee4da/1200.m3u8
|
||||
爱吃鱼的棕熊,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/79c7bb4495f74ca698f3111a6f7ba567/1200.m3u8
|
||||
爱的奉献1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5b062ba2cd854ba993166d277af8a40d/1200.m3u8
|
||||
爱的奉献2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/80cf935aef484e15aa31b8fbd565be39/1200.m3u8
|
||||
爱的奉献3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aee1f28cf3e94a5fa7468206d4f417ed/1200.m3u8
|
||||
狮口余生的小角马(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7cfc0fe7981b4022b69c3e1cb7317b77/1200.m3u8
|
||||
狮子和鬣狗(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6ca061c3b9184e7aa46cef1ead911099/1200.m3u8
|
||||
狮子和鬣狗(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e5ea8f4b0cbd4d7aa779b9dfed5a9448/1200.m3u8
|
||||
狮子捕猎计划,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6f2b58a05add4e2a9907ba370473332a/1200.m3u8
|
||||
狮子的荣耀回归之路1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bec9f485672345339c49bc345edf9fd5/1200.m3u8
|
||||
狮子的荣耀回归之路2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bdb438a81a20403db85b6e9d12707f2d/1200.m3u8
|
||||
狮子的荣耀回归之路3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/50ef8c8037da4735a9cb9288f45878b0/1200.m3u8
|
||||
狮子的荣耀回归之路4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2fea6699d56f4274b5ab5260b016fda2/1200.m3u8
|
||||
狮族迷踪1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/801151749824437aaa0afa87bfcf7abf/1200.m3u8
|
||||
狮族迷踪2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b4ff6041c00246af815b679a7ee6c4a6/1200.m3u8
|
||||
狮族迷踪3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5e01c3ff2a5844ab80643ce67ba29026/1200.m3u8
|
||||
狮群的家园生活,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cad939a2eb714f4b9d37c4185674d50b/1200.m3u8
|
||||
狮群的荣耀,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/84b850056589475f80528cf28b9b840a/1200.m3u8
|
||||
狼女王的奋斗传奇,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f2d629470e214acf9d08dc81f4773cbf/1200.m3u8
|
||||
猎手求生记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5bc79939a4804f199e606cc08b1bb416/1200.m3u8
|
||||
猎手生存攻略,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/703310100a944d78a5e6838f80920cd6/1200.m3u8
|
||||
猎豹妈妈奋斗记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6b10d45dafaa47f4a3c3444946c074c9/1200.m3u8
|
||||
猎豹妈妈育儿记(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dba9097ef49e42acb2c6597e04551fbc/1200.m3u8
|
||||
猎豹妈妈育儿记(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fca702ad83284ff0a3b883a735913060/1200.m3u8
|
||||
猎食计划1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cd732e06e7934a3daef6483c6be1afca/1200.m3u8
|
||||
猎食计划2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/497afdb07e92409fb8cb5c0249dfe6d7/1200.m3u8
|
||||
猎食计划3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/947b6c076a0c4a3ca72a1274731feb66/1200.m3u8
|
||||
猛虎柔情,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dd3be5a89c1542d3bb4db0953a1430c6/1200.m3u8
|
||||
猫科动物谁为王者(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/17c3860b26c14110a740dfa49785a1bd/1200.m3u8
|
||||
猫科动物谁为王者(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1cbb873dc7474315b86788e9f657534a/1200.m3u8
|
||||
猴子的智慧,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef01d6b79fe74daf9bd63ff0469713d2/1200.m3u8
|
||||
生存极限大挑战,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9dc7b6dcacde4fad9467c4d2c61da3d1/1200.m3u8
|
||||
生存的望(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd00ce388b994d7195dbefc1beb5726b/1200.m3u8
|
||||
生存的望(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d9765b81ca83444a9ba7b6a335b2466a/1200.m3u8
|
||||
疯狂的爱,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/35b481b5e27a4fa2b2c03f42596b68ba/1200.m3u8
|
||||
白狮归来1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/199ab14f5ba44a208371a3eef0029a09/1200.m3u8
|
||||
白狮归来2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3b36e52d0bc4a0a851a1bd3fa181365/1200.m3u8
|
||||
白狮归来4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ffda5e0584b64e0d9dc3cc43783900cf/1200.m3u8
|
||||
白狮的荒野故事(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/649a0df6bc394fde973b2e8ef12ef3d6/1200.m3u8
|
||||
白狮的荒野故事(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1eee9eda1dec4c8da256c6b2ef70114a/1200.m3u8
|
||||
盛宴的旅程,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fbcd61c318c34e08854c3911086a7406/1200.m3u8
|
||||
看得见的远方1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f532415139fb4dc3a0e9de757d535d6a/1200.m3u8
|
||||
看得见的远方3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/255a802e924a44f381318db92a32431e/1200.m3u8
|
||||
神秘的眼睛王蛇,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb73d16a9e02484ab4708b0268b63bcf/1200.m3u8
|
||||
秘境之蛇,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c4e45ac9dd2642b6ae9fb95b470224a9/1200.m3u8
|
||||
秘境里的动物王国,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bb36368ba24f47ed88d4204fd3db5483/1200.m3u8
|
||||
秘境里的奇观,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/38ba9675721d4259b3dd327b7e212a39/1200.m3u8
|
||||
穿越森林的迷宫,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/52bf33932d1646529b95b044f187d4d3/1200.m3u8
|
||||
穿越狮子的领地,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ea08ccce272f4b7984eb665a97bab536/1200.m3u8
|
||||
童话般的雨林(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a1672972c0b742239237bb1686ba0745/1200.m3u8
|
||||
童话般的雨林(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8e99e3c9f38340a98fb79b36ab1c863f/1200.m3u8
|
||||
绽放的生命(五),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d2f3f0f3b4c242b4983ee62034f85608/1200.m3u8
|
||||
绽放的生命1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/87145268893a47cd8fc9cda530eee111/1200.m3u8
|
||||
绽放的生命2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7b6ed77c03224d298a72a8311fcf10a7/1200.m3u8
|
||||
绽放的生命3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aea0ef5ea21c40dea948d723d823a5fb/1200.m3u8
|
||||
绽放的生命4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fbb3d1d6ae37458e84f574881778ac7c/1200.m3u8
|
||||
美食的,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9debd40527e34471bdfbe1212aa198d7/1200.m3u8
|
||||
耀眼的白狮家族1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/07c3395ee5da4f789937372657ab980a/1200.m3u8
|
||||
耀眼的白狮家族2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3989c3f3416745438c4bc20abeae51ae/1200.m3u8
|
||||
耀眼的白狮家族3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e0efcf1181234f2dabef87db65bcdec0/1200.m3u8
|
||||
聪明的建筑师,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d04a550f19ac42869d7b4d3f5f9246b2/1200.m3u8
|
||||
自然界奥运冠军,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7b968e9b50984d598d96c6fc5af40b4c/1200.m3u8
|
||||
花豹柔情,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/96712ee30d144f21a0566f3c1b2fbc56/1200.m3u8
|
||||
草原三巨头,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2bdc779138bb4235b20a5155e40fa7c8/1200.m3u8
|
||||
草原上的大猫王国,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e98eed67d3164ec0a2f5a9215693f7a8/1200.m3u8
|
||||
草原之王上战场,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bfb6917b29ea413c89e8ed8fa6e2a6ab/1200.m3u8
|
||||
草原狮子的戏剧舞台(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/93fde1242f50415faa6da2dd5da9105b/1200.m3u8
|
||||
草原狮子的戏剧舞台(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c5b600bcb2c44c44b56e9afdb5243a07/1200.m3u8
|
||||
荒野里的呼唤,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/de55f16b130042b19472ef89e184d719/1200.m3u8
|
||||
萌狗诞生记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0f68b16f162c493c8d82a57135f16da0/1200.m3u8
|
||||
虎妈妈爱(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6855ee238c9c4e9893ff342b7dbe5a2b/1200.m3u8
|
||||
虎妈妈爱(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9b07324b869c457e80531b72e979ee1a/1200.m3u8
|
||||
蛇类大观园,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/414f84230ced4696af656a112385b72c/1200.m3u8
|
||||
蜥蜴安身火山岛(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0c3c388b10ad4cf78f312c6d6620f1e0/1200.m3u8
|
||||
蜥蜴安身火山岛(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5043f9b708fe443fb9207e26da903218/1200.m3u8
|
||||
螃蟹岛海战(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d0137f4e9adc44a7856c7288fe8ca3d2/1200.m3u8
|
||||
螃蟹岛海战(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d784a777f3dd42b3b73be06858b71197/1200.m3u8
|
||||
被母狮拯救的小角马(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ba95e1a983584925887c11306f83ccf8/1200.m3u8
|
||||
被母狮拯救的小角马(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8e655ba0c751468b9d18f3020133571f/1200.m3u8
|
||||
角马幸运儿(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/40c883e3f4c441d08422ce49aec61644/1200.m3u8
|
||||
角马幸运儿(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/67b7d65e3b3e4b509e314e65937ef369/1200.m3u8
|
||||
豹妈当家(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/984cda8d35d544658fbd96b417bdea1f/1200.m3u8
|
||||
豹妈当家(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/33343249dabd4dcfaeb64da7ab7fe061/1200.m3u8
|
||||
走出包围圈,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/38fc4f8e379445aeab6098b9ece0aa2a/1200.m3u8
|
||||
走进狗的世界,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/25c049869a174f5fa5806e57a2c376bd/1200.m3u8
|
||||
超凡猎手,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/77d5ca903f0948ad8c5ec57e49b3cc95/1200.m3u8
|
||||
超凡猎手,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8bd3d27314fd431a84d8443c2fdc8b02/1200.m3u8
|
||||
超级狮子家族,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f689bc846e93479898d8dcbdffad9744/1200.m3u8
|
||||
超级狮子群的故事(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c0a25fcb5564e02a435ec33fbdc4888/1200.m3u8
|
||||
超级狮子群的故事(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8986640e9a3f43be9ffe66f0feb41f72/1200.m3u8
|
||||
超级猫行动,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8d952bbdd6cc4e6abf9df153bc18e927/1200.m3u8
|
||||
足球超级猎食者(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4d0dc6b22b8e48efa4a984ec990a4faf/1200.m3u8
|
||||
足球超级猎食者(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d7aec4db75da469d915a5dd7a0fb3d70/1200.m3u8
|
||||
辣妈带娃记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8fd303fc08454c3497673fa40ced6284/1200.m3u8
|
||||
进化中的北极熊,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/caf316bd282e4bfdbbd36bac2514c428/1200.m3u8
|
||||
追踪兽王,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/93dfcb01bd634370bc211fc7484854ec/1200.m3u8
|
||||
追逐的游戏,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/34459ad5d340461daab2f453d485833d/1200.m3u8
|
||||
速度与生存(五),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9953caf767b04ae782540c8ac53eaaa4/1200.m3u8
|
||||
速度与生存1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1cc83ec8b9b44794b63e1a249b9fb2fb/1200.m3u8
|
||||
速度与生存2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/31abc302978f45df9c4e8aaa3972d599/1200.m3u8
|
||||
速度与生存3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/570d9ce8d39d4ede9a26ae6de4d28f54/1200.m3u8
|
||||
速度与生存4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f37b1966271f4527a581ed9275c34f7c/1200.m3u8
|
||||
速度大比拼(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2746acf40172425180162fc3a316416b/1200.m3u8
|
||||
速度大比拼(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d2e5439b8a9c4b53970e5c3b0eee9abd/1200.m3u8
|
||||
遨游海底两万里,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/31d0363fb3714ce4b916790aa7da22db/1200.m3u8
|
||||
都市里的丛林(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2e2e0e875d624196af0488f6b07bb2e0/1200.m3u8
|
||||
都市里的丛林(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9f79dac568844de8813e682b280efb4f/1200.m3u8
|
||||
都市里的野生家园(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/03770b0594d44f289ce91022fe37a7bf/1200.m3u8
|
||||
都市里的野生家园(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/06ca0e5a61624f11987ba99dc9a8ed64/1200.m3u8
|
||||
野性生存秘籍1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7c8a682e6c5749b19d375b0c562f4c87/1200.m3u8
|
||||
野性生存秘籍2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b95862f403d5404f87114f6a651119e6/1200.m3u8
|
||||
野性的召唤1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ce41c579b0c84ada982b79073028d116/1200.m3u8
|
||||
野性的召唤2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/24514b1197ea46b9a443121f5e19f535/1200.m3u8
|
||||
野性的召唤3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9a6b5b4568574867933091059ff57680/1200.m3u8
|
||||
野性的魅力1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2f83cd6f217c48e8abb8064f430bc93a/1200.m3u8
|
||||
野性的魅力2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/091f7f7dfce34c0d83bcd93c0b58dc07/1200.m3u8
|
||||
野性美洲(五),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/58a370a91cbf49858c18e6d72007d12e/1200.m3u8
|
||||
野性美洲1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1a92d87e2c74de7a799141e5e89eb3b/1200.m3u8
|
||||
野性美洲2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2e902191f2524bc198a656db71791080/1200.m3u8
|
||||
野性美洲3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1156d95bcf554d0e9df1688e8a6fd55d/1200.m3u8
|
||||
野性美洲3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4cb2ce54e7e047a99c772d3874f4c916/1200.m3u8
|
||||
野性美洲4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5dcd2b749aae4e7e973271f124e83fb1/1200.m3u8
|
||||
野狗家族传世之爱,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dc4007615a124e29827b16bec3885db5/1200.m3u8
|
||||
野生世界竞技场(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/11ac06bbb4f0426fbc4c7b3bfd864b3f/1200.m3u8
|
||||
野生世界竞技场(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf683b66c36343599bcad10516c58274/1200.m3u8
|
||||
野生白狮(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a9a5e806d97d41f5827532f1cb3f9afa/1200.m3u8
|
||||
野生白狮(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1e405a3890d3497d80df5351ad30f169/1200.m3u8
|
||||
野生白狮(中),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aa5594a7d44b42768d0b4f2fa3e3651d/1200.m3u8
|
||||
金豺夫妇的故事,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5b71afacb8eb442d9d4a5844d3ceca15/1200.m3u8
|
||||
镜头里的真相1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/df70034b3a4243bd888d18b8b877787d/1200.m3u8
|
||||
险境求生,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f41478fa1f24606bc1bad4725df7b59/1200.m3u8
|
||||
险境求生的小河马(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4b24374adc24487db8c9d5ac5d037079/1200.m3u8
|
||||
险境求生的小河马(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5c22e195021d49b8bc5868147fdc3139/1200.m3u8
|
||||
隐秘王国里的奇迹1,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e2094de08292490db17c29ec299b4bc2/1200.m3u8
|
||||
隐秘王国里的奇迹2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1cee8d6ac393418e887420a6e1d54b6e/1200.m3u8
|
||||
隐秘王国里的奇迹3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2fe654a3cadf4838bb34ea18441378e8/1200.m3u8
|
||||
隐秘王国里的奇迹4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/953467196a854ed786f7e3521579f1f6/1200.m3u8
|
||||
隐秘的海鬣蜥王国,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b7af80d20f06401989879c44eaf865e8/1200.m3u8
|
||||
雄风再起,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b9176a8a35c94c37ade29708eed40190/1200.m3u8
|
||||
雨季狮踪,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c1af227765174580bb3ad5c641f4dfd1/1200.m3u8
|
||||
雨林守护的秘密(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/18aecd7b1b064f3692f80ce6906895d5/1200.m3u8
|
||||
雨林守护的秘密(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/084be96dbd124ac499afc25eb1e4d63d/1200.m3u8
|
||||
雪鸮的生存之舞,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/722362cb57a74028804e0413141a1866/1200.m3u8
|
||||
雪鸮的风中芭蕾,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4ee145f174a8464fb624c4ae62992b1c/1200.m3u8
|
||||
非凡虎女王(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2e657776c024445b83a0554d71773c0b/1200.m3u8
|
||||
非凡虎女王(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2c7ecbc0033049efa1946472214eeae3/1200.m3u8
|
||||
非同一般的友谊,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fc5b68979baa47e6ab90db7e78b43364/1200.m3u8
|
||||
非洲水牛战狮群(上),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/945ab75be37f46c984dade1efb742b00/1200.m3u8
|
||||
非洲水牛战狮群(下),http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/76d3b3c55eaf44b198ceb0f456f41416/1200.m3u8
|
||||
非洲野放计划2,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/21ff76c2151743f983d8f67d3cc7231d/1200.m3u8
|
||||
非洲野放计划3,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/234631821d1343b086ed272be364d861/1200.m3u8
|
||||
非洲野放计划4,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/28f6148101924fadb0f1cab6017801fe/1200.m3u8
|
||||
非洲野狗家族,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2e64ec647a314b74b27ebc7f6bb985f2/1200.m3u8
|
||||
领养一只宠物狗,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ec7ccf71d6544387afbfc956f4c29ceb/1200.m3u8
|
||||
高个子幸运儿,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0ea3dbe589a34258b6109229223de234/1200.m3u8
|
||||
鬣蜥生存攻略,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ae22dffaf28f496584fc581ab72fab9c/1200.m3u8
|
||||
鳄鱼出海,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7bdf23a599b44a7c8308684cbb789da0/1200.m3u8
|
||||
鳄鱼王漂流记,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8da4a365db75455cb0c15bd7681b57fc/1200.m3u8
|
||||
黑猩猩的丛林法则,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/05ff5278105445e1a9d5651372faf47e/1200.m3u8
|
||||
龙宫里的奇异动物,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3528163c6b7d4a48b09b24027351ccf7/1200.m3u8
|
||||
|
||||
|
||||
直播中国,#genre#
|
||||
直播中国,https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8?contentid=2820180516001
|
||||
直播中国精编直播,https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8
|
||||
八里沟风景区桃花湾瀑布,https://gcalic.v.myalicdn.com/gc/blg05_1/index.m3u8
|
||||
八里沟风景区天界山玻璃栈道,https://gcalic.v.myalicdn.com/gc/blg03_1/index.m3u8
|
||||
普陀山,https://gcalic.v.myalicdn.com/gc/pts01_1/index.m3u8
|
||||
丽江古城大水车,https://gcalic.v.myalicdn.com/gc/ljgcdsc_1/index.m3u8
|
||||
丽江古城万古楼遥望玉龙雪山,https://gcalic.v.myalicdn.com/gc/ljgcwglytylxs_1/index.m3u8
|
||||
狮子山鸟瞰丽江古城,https://gcalic.v.myalicdn.com/gc/ljgcszsnkgc_1/index.m3u8
|
||||
乌镇西市河,https://gcalic.v.myalicdn.com/gc/zjwzbblh_1/index.m3u8
|
||||
黄花城水长城01,https://gcalic.v.myalicdn.com/gc/wgw01_1/index.m3u8
|
||||
黄花城水长城02,https://gcalic.v.myalicdn.com/gc/wgw02_1/index.m3u8
|
||||
黄花城水长城03,https://gcalic.v.myalicdn.com/gc/wgw03_1/index.m3u8
|
||||
月牙泉,https://gcalic.v.myalicdn.com/gc/dhyyqsm_1/index.m3u8
|
||||
黄龙,https://gcalic.v.myalicdn.com/gc/hlzycc_1/index.m3u8
|
||||
泰山主峰,https://gcalic.v.myalicdn.com/gc/taishan01_1/index.m3u8
|
||||
泰山十八盘,https://gcalic.v.myalicdn.com/gc/taishan05_1/index.m3u8
|
||||
泰山南天门,https://gcalic.v.myalicdn.com/gc/hkts07_1/index.m3u8
|
||||
泰山白云亭悬崖,https://gcalic.v.myalicdn.com/gc/hkts02_1/index.m3u8
|
||||
泰山太平岭,https://gcalic.v.myalicdn.com/gc/hkts09_1/index.m3u8
|
||||
泰山碧霞祠,https://gcalic.v.myalicdn.com/gc/hkts03_1/index.m3u8
|
||||
黄山始信新道,https://gcalic.v.myalicdn.com/gc/hsyg_1/index.m3u8
|
||||
黄山,https://gcalic.v.myalicdn.com/gc/ahhs01_1/index.m3u8
|
||||
中央电视塔东,https://gcalic.v.myalicdn.com/gc/ztd_1/index.m3u8
|
||||
中央电视塔南,https://gcalic.v.myalicdn.com/gc/ztn_1/index.m3u8
|
||||
天涯石,https://gcalic.v.myalicdn.com/gc/tyhjtys_1/index.m3u8
|
||||
青岛崂山双福,https://gcalic.v.myalicdn.com/gc/qdls03_1/index.m3u8
|
||||
青岛崂山八水河,https://gcalic.v.myalicdn.com/gc/qdls02_1/index.m3u8
|
||||
张掖七彩丹霞,https://gcalic.v.myalicdn.com/gc/zyqcdx01_1/index.m3u8
|
||||
都江堰鱼嘴,https://gcalic.v.myalicdn.com/gc/djyqyl1_1/index.m3u8
|
||||
乐山大佛全景,https://gcalic.v.myalicdn.com/gc/lsdfgfl_1/index.m3u8
|
||||
湖南张家界水绕四门,https://gcalic.v.myalicdn.com/gc/zjjsrsm_1/index.m3u8
|
||||
湖南张家界将军列队,https://gcalic.v.myalicdn.com/gc/zjjjjdl_1/index.m3u8
|
||||
湖南张家界迷魂台,https://gcalic.v.myalicdn.com/gc/zjjmht_1/index.m3u8
|
||||
湖南张家界宝峰湖,https://gcalic.v.myalicdn.com/gc/zjjbfh_1/index.m3u8
|
||||
湖南张家界御笔峰,https://gcalic.v.myalicdn.com/gc/zjjybf_1/index.m3u8
|
||||
湖南张家界天门山西线玻璃栈道,https://gcalic.v.myalicdn.com/gc/tms05_1/index.m3u8
|
||||
四川峨眉山云海日出,https://gcalic.v.myalicdn.com/gc/emsarm_1/index.m3u8
|
||||
四川峨眉山远眺贡嘎雪山,https://gcalic.v.myalicdn.com/gc/emsyh_1/index.m3u8
|
||||
四川峨眉山普贤菩萨铜像,https://gcalic.v.myalicdn.com/gc/emspxps_1/index.m3u8
|
||||
四川峨眉山远眺万佛顶,https://gcalic.v.myalicdn.com/gc/emswfs_1/index.m3u8
|
||||
四川四姑娘山隆珠措,https://gcalic.v.myalicdn.com/gc/sgns02_1/index.m3u8
|
||||
浙江舟山东极岛,https://gcalic.v.myalicdn.com/gc/djd01_1/index.m3u8
|
||||
安徽池州九华山风景区九华山,https://gcalic.v.myalicdn.com/gc/jhs05_1/index.m3u8
|
||||
安徽池州九华山风景区花台,https://gcalic.v.myalicdn.com/gc/jhs01_1/index.m3u8
|
||||
安徽黟县西递牌坊,https://gcalic.v.myalicdn.com/gc/yxxdpf_1/index.m3u8
|
||||
安徽黟县芦村远眺,https://gcalic.v.myalicdn.com/gc/yxlcyt_1/index.m3u8
|
||||
新疆天山(定海神针),https://gcalic.v.myalicdn.com/gc/xjtcdhsz_1/index.m3u8
|
||||
新疆天山(马牙山),https://gcalic.v.myalicdn.com/gc/xjtcmys_1/index.m3u8
|
||||
新疆天山(灯杆山),https://gcalic.v.myalicdn.com/gc/xjtcdgs_1/index.m3u8
|
||||
厦门鼓浪屿,https://gcalic.v.myalicdn.com/gc/gly01_1/index.m3u8
|
||||
广西玉林大容山莲花山顶,https://gcalic.v.myalicdn.com/gc/drs01_1/index.m3u8
|
||||
广西桂林漓江景区,https://gcalic.v.myalicdn.com/gc/gllj01_1/index.m3u8
|
||||
南京玄武湖公园,https://gcalic.v.myalicdn.com/gc/xwh01_1/index.m3u8
|
||||
福建漳州醉美沙滩翡翠湾,https://gcalic.v.myalicdn.com/gc/fcw03_1/index.m3u8
|
||||
丽江古城大研花巷观景,https://gcalic.v.myalicdn.com/gc/ljgcdyhxgjt_1/index.m3u8
|
||||
雪乡梦幻家园,https://gcalic.v.myalicdn.com/gc/mdjxxmhjyxj_1/index.m3u8
|
||||
雪乡大石碑,https://gcalic.v.myalicdn.com/gc/mdjxxdsb_1/index.m3u8
|
||||
乌镇蓝印花布,https://gcalic.v.myalicdn.com/gc/zjwzlyhb_1/index.m3u8
|
||||
乌镇龙形田,https://gcalic.v.myalicdn.com/gc/zjwzlxt_1/index.m3u8
|
||||
乌镇全景,https://gcalic.v.myalicdn.com/gc/zjwzblt_1/index.m3u8
|
||||
凤凰古城南华山,https://gcalic.v.myalicdn.com/gc/fhgcdnhs_1/index.m3u8
|
||||
凤凰古城东关门,https://gcalic.v.myalicdn.com/gc/fhgcdgm_1/index.m3u8
|
||||
鸣沙山,https://gcalic.v.myalicdn.com/gc/dhyyqst_1/index.m3u8
|
||||
五彩池,https://gcalic.v.myalicdn.com/gc/hlwcc_1/index.m3u8
|
||||
泰山大观峰,https://gcalic.v.myalicdn.com/gc/taishan03_1/index.m3u8
|
||||
泰山玉皇顶,https://gcalic.v.myalicdn.com/gc/taishan06_1/index.m3u8
|
||||
黄山排云亭,https://gcalic.v.myalicdn.com/gc/hspyt_1/index.m3u8
|
||||
黄山飞来石,https://gcalic.v.myalicdn.com/gc/hsptgy_1/index.m3u8
|
||||
恒山悬空寺全景,https://gcalic.v.myalicdn.com/gc/hsxksqj_1/index.m3u8
|
||||
黄果树六角亭瀑布,https://gcalic.v.myalicdn.com/gc/hgsspzxdpb_1/index.m3u8
|
||||
江苏徐州云龙湖风景区云龙山观景台西,https://gcalic.v.myalicdn.com/gc/ylh04_1/index.m3u8
|
||||
江苏南京牛首山,https://gcalic.v.myalicdn.com/gc/nss01_1/index.m3u8
|
||||
云南丽江蓝月谷,https://gcalic.v.myalicdn.com/gc/ylxs12_1/index.m3u8
|
||||
云南丽江玉龙雪山草甸,https://gcalic.v.myalicdn.com/gc/hkylxs06_1/index.m3u8
|
||||
云南丽江冰川,https://gcalic.v.myalicdn.com/gc/hkylxs05_1/index.m3u8
|
||||
云南丽江印象实景,https://gcalic.v.myalicdn.com/gc/hkylxs01_1/index.m3u8
|
||||
云南大理崇圣寺三塔中景,https://gcalic.v.myalicdn.com/gc/dlst03_1/index.m3u8
|
||||
云南大理崇圣寺三塔远景,https://gcalic.v.myalicdn.com/gc/dlst01_1/index.m3u8
|
||||
陕西洋县国宝朱鹮03,https://gcalic.v.myalicdn.com/gc/zh03_1/index.m3u8
|
||||
贵州省兴义市万峰林,https://gcalic.v.myalicdn.com/gc/xywfl_1/index.m3u8
|
||||
|
||||
|
||||
歌星金曲,#genre#
|
||||
歌MV,http://vd4.bdstatic.com/mda-ickhjq8gkcxz55i1/sc/mda-ickhjq8gkcxz55i1.mp4
|
||||
歌MV2,http://vd4.bdstatic.com/mda-ihkwerpgqm1v3ehy/sc/mda-ihkwerpgqm1v3ehy.mp4
|
||||
歌MV3,http://vd4.bdstatic.com/mda-jhid37v9u4vny09j/sc/mda-jhid37v9u4vny09j.mp4
|
||||
歌MV4,http://vd4.bdstatic.com/mda-icpieeuwfuwruijw/sc/mda-icpieeuwfuwruijw.mp4
|
||||
歌MV5,http://vd4.bdstatic.com/mda-jhtriuc2z5fddtre/sc/mda-jhtriuc2z5fddtre.mp4
|
||||
歌MV6,http://vd4.bdstatic.com/mda-jepbbqntd414qsem/sc/mda-jepbbqntd414qsem.mp4
|
||||
歌MV7,http://vd4.bdstatic.com/mda-ji3nh9t9qpewj26m/sc/mda-ji3nh9t9qpewj26m.mp4
|
||||
冷漠-古咖啡,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_3142984&response=res&format=mp4&type=convert_url
|
||||
冷漠-时光海灣,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_9867444&response=res&format=mp4&type=convert_url
|
||||
冷漠-真不是闹着玩,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_22836669&response=res&format=mp4&type=convert_url
|
||||
冷漠-谁都不要说分手,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_12975393&response=res&format=mp4&type=convert_url
|
||||
冷漠-再爱也没有用,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_5834217&response=res&format=mp4&type=convert_url
|
||||
冷漠-不要再说你还爱我,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_911272&response=res&format=mp4&type=convert_url
|
||||
冷漠-别把寂寞当缘分,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_6210858&response=res&format=mp4&type=convert_url
|
||||
冷漠-你把爱情给了谁,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1210771&response=res&format=mp4&type=convert_url
|
||||
冷漠-我是否也在你心中,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_4378249&response=res&format=mp4&type=convert_url
|
||||
冷漠-多情的人不该相遇,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1041689&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-華夏传说,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_40828850&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-奢香夫人,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_51674527&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-今生的缘,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_646024&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-荷塘月色,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1565837&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-自由飞翔,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_18747906&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-策马奔腾,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_24042013&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-温柔姑娘,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_6401404&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-自由自在,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_24042025&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-奇迹世界,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_954805&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-歌唱二小放牛郎,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_8120530&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-中国味道,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_24042021&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-光芒,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_24042019&response=res&format=mp4&type=convert_url
|
||||
凤凰传奇-御龙归字谣,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1164118&response=res&format=mp4&type=convert_url
|
||||
邓丽君 歌曲精选九首 經典歌曲,https://vdse.bdstatic.com//432792ba00998e73655101c9e706e1e2.mp4
|
||||
金典老歌,https://vdse.bdstatic.com//36ea0ffcf8156a44b9d524d999eb088a.mp4
|
||||
刀郎經典歌曲7首:《西海情歌》《敖包相会》《情人》冲动的惩罚,https://vdse.bdstatic.com//628ca08719cef5987ea2ae3c6f0d2386.mp4
|
||||
刀郎經典歌曲精选,https://vdse.bdstatic.com//4fcca19a19aa4974230c5ee70ab5fa55.mp4
|
||||
刀郎經典老歌合集《披着羊皮的狼》《西海情歌》《冲动的惩罚》,https://vdse.bdstatic.com//bfbb0871ed01eb3328497faae6a8531b.mp4
|
||||
云朵、刀郎、孙露、张雨生等經典怀旧歌曲6首,https://vdse.bdstatic.com//fa0ed7ad8657cc4d13972c3d9aa5ddbf.mp4
|
||||
怀旧金曲:刀郎《黄玫瑰》,https://vdse.bdstatic.com//893331fdfab5d04e5c93e2adbbf1e949.mp4
|
||||
飞鸟和蝉-任然,https://vd4.bdstatic.com/mda-kmagpap54qyv855r/v1-cae/1080p/mda-kmagpap54qyv855r.mp4
|
||||
海鸥飞-龙梅子,https://vd2.bdstatic.com/mda-kgrx6ftzptj5x4i9/v1-cae/1080p/mda-kgrx6ftzptj5x4i9.mp4
|
||||
不再痴情-黄静美,https://vd2.bdstatic.com/mda-mguiyws4cia6d0rf/1080p/cae_h264/1627568961141809995/mda-mguiyws4cia6d0rf.mp4
|
||||
天公不作美-黄静美,https://vd2.bdstatic.com/mda-mcibj6pxkwe3x1ji/1080p/cae_h264/1616117049/mda-mcibj6pxkwe3x1ji.mp4
|
||||
浪子闲话-笑纳-赤伶,https://vd3.bdstatic.com/mda-mi0jir5caqx8xtmh/1080p/cae_h264/1630505223203305128/mda-mi0jir5caqx8xtmh.mp4
|
||||
用力活着-张茜,https://vd4.bdstatic.com/mda-mfmcz8hk0qjieck2/1080p/cae_h264/1624355388377695977/mda-mfmcz8hk0qjieck2.mp4
|
||||
点歌的人-海来阿木,https://vd3.bdstatic.com/mda-maqxxg1hrznsdf1a/v1-cae/1080p/mda-maqxxg1hrznsdf1a.mp4
|
||||
你的万水千山-海来阿木,https://vd4.bdstatic.com/mda-ki4i7gfqw6cw6hq0/v1-cae/1080p/mda-ki4i7gfqw6cw6hq0.mp4
|
||||
当我孤独的时候还可以抱着你郑源,https://vd4.bdstatic.com/mda-kgaerksrx80jgdu0/v1-cae/1080p/mda-kgaerksrx80jgdu0.mp4
|
||||
寂寞的人伤心的歌-龙梅子、杨海彪,https://vd4.bdstatic.com/mda-kb5gc9c1vmtz93g8/v1-cae/sc/mda-kb5gc9c1vmtz93g8.mp4
|
||||
两个人-蔡妍-BerryGood,https://vd2.bdstatic.com/mda-iffus60ju99vp5kr/sc/mda-iffus60ju99vp5kr.mp4
|
||||
两个人-蔡妍-BerryGood,https://vd4.bdstatic.com/mda-ki9ze4v8sw9sj7cb/sc/mda-ki9ze4v8sw9sj7cb.mp4
|
||||
情歌皇后林翠萍《相见不如不见》F,https://vdse.bdstatic.com//1f65ad884619a069c68572f1ac9e2b0e.mp4
|
||||
林翠萍經典老歌《相会在梦里》F,https://vdse.bdstatic.com//00fb72cd0b27bec6d9c0cd915874b50e.mp4
|
||||
林翠萍經典情歌《相思豆》F,https://vdse.bdstatic.com//986498bb0ccd2114ba1274df22fae332.mp4
|
||||
精选韓宝仪經典歌曲10首F,https://vdse.bdstatic.com//42d5ac65a9070eeab2513bf6bc65ea4d.mp4
|
||||
龙飘飘《我没醉》F,https://vdse.bdstatic.com//3d48e45e47836cd75c202ec957260837.mp4
|
||||
龙飘飘《往事》F,https://vdse.bdstatic.com//a28e362e15fa8c361219944bfb59b596.mp4
|
||||
美酒加咖啡 龙飘飘F,https://vdse.bdstatic.com//816c73543ede254586a625cacc67ea0f.mp4
|
||||
林翠萍《麦搁來这套》,https://vdse.bdstatic.com//5b388a47b1233105831e09b8cadc1edd.mp4
|
||||
龙飘飘經典老歌《后悔爱上你》,https://vdse.bdstatic.com//bde5b937e292c240a4322d9719deb98b.mp4
|
||||
屋顶着火宋茜,https://vd3.bdstatic.com/mda-ife08h4xpq85sg65/logo//mda-ife08h4xpq85sg65.mp4?pd=19&vt=1
|
||||
陈柯宇生僻字,http://vd2.bdstatic.com/mda-jb28qp6tauzkzpy9//mda-jb28qp6tauzkzpy9.mp4
|
||||
摩登兄弟探清水河,http://vd2.bdstatic.com/mda-jg6dffnbt92877h0/sc/mda-jg6dffnbt92877h0.mp4
|
||||
筷子兄弟小苹果,http://vd1.bdstatic.com/mda-hc2rwgemn6yrnvw2/mda-hc2rwgemn6yrnvw2.mp4
|
||||
李玲玉女儿情,http://vd4.bdstatic.com/mda-jiqh0kcd7kgpwnmb/sc/mda-jiqh0kcd7kgpwnmb.mp4
|
||||
你的酒馆对我打了烊陈雪凝,https://vd3.bdstatic.com/mda-ka59e4w0qxxsxnt0//mda-ka59e4w0qxxsxnt0.mp4?pd=19&vt=1
|
||||
醉千年李袁杰,http://vd3.bdstatic.com/mda-ihai9qt3yny3sx53//mda-ihai9qt3yny3sx53.mp4?pd=19&vt=1
|
||||
就算没有如果张杰,https://vdse.bdstatic.com//b362a1c2ecbc60b18d3dc06cdc97f142.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2020-01-31T15%3A58%3A51Z%2F-
|
||||
浮诛张杰,https://vdse.bdstatic.com/1c2dc5580507bc1b0ef507c63b3fc461.mp4?authorization=bce-auth-v1%2Ffb297a5cc0fb434c971b8fa103e8dd7b%2F2017-05-11T09%3A02%3A31Z%2F-1%2F
|
||||
望赵丽颖张碧晨,https://vdse.bdstatic.com/25f5ae931f851bf09c48abaebe5d6f8d.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2017-05-11T09%3A02%3A31Z%2F-1%2F
|
||||
杜德伟-情人,http://vdown.kuwo.cn:80/resource/t4/59/86/iXqIb2KOC3M.mp4
|
||||
男儿当自强 林子祥,http://vdown.kuwo.cn:80/resource/t4/35/8/byLO9W5m5Y8.mp4
|
||||
陈雷-随缘,http://vdown.kuwo.cn:80/resource//t1/34/c9596b26ffc64cb5ab2c3f82068d167a.mp4
|
||||
歡喜就好,http://vdown.kuwo.cn:80/resource//t4/33/65/I4Vpjif2dxY.mp4
|
||||
故乡,http://vdown.kuwo.cn:80/resource/t4/23/63/hQYKyFEiljU.mp4
|
||||
爱情鸟,http://vdown.kuwo.cn:80/resource//t4/69/75/bD9N0L_qjcM.mp4
|
||||
爱拼才会赢,http://vdown.kuwo.cn:80/resource//t4/20/1/y12_ecvVJgA.mp4
|
||||
浪子的心情,http://vdown.kuwo.cn:80/resource/t4/53/44/3Rve23J-sy8.mp4
|
||||
草蜢-半点心,http://vodcdn.video.taobao.com/oss/ali-video/68fc953ff930412784dada5eb79d0821/1461058499/video.m3u8.m3u8
|
||||
草蜢-宝贝对不起,http://bizcommon.alicdn.com/l2nDqpMmn6DGHnWzZQA/RQdMfitGKCINh4BPzc9%40%40sd.m3u8
|
||||
陈倩倩-婴儿,http://vodcdn.video.taobao.com/oss/ali-video/4fc8d043456c092c392483bd293d0ee3/video.m3u8
|
||||
王菲-容易受伤的女人(国语),http://vodcdn.video.taobao.com/oss/ali-video/84722d96b62883dafdcc154afbf0bb03/video.m3u8
|
||||
王菲-执迷不悔,http://vodcdn.video.taobao.com/oss/ali-video/15bf7da88b44048edaabe73d6b17c00b/video.m3u8
|
||||
陈慧娴-千千阙歌,http://vodcdn.video.taobao.com/oss/ali-video/8f45a35108ebe1b1951d2936007e3cd0/video.m3u8
|
||||
陈慧娴-归来吧,http://vodcdn.video.taobao.com/oss/ali-video/c89589fd5809cf6e2f1a4d7a52023733/video.m3u8
|
||||
叶倩文-潇洒走一回,http://vodcdn.video.taobao.com/oss/ali-video/371d75312720e701b5f3988d46cdf4ef/video.m3u8
|
||||
吕方-朋友别哭,http://bizcommon.alicdn.com/l2nDqpMmn6DGHnWzZQA/qgljCDKewD8vEgOMrrt%40%40sd.m3u8
|
||||
王麟-伤不起,http://vodcdn.video.taobao.com/oss/ali-video/1e3633ff1c3a525e148968b45c18f780/video.m3u8
|
||||
李圣杰-痴心绝对,http://vodcdn.video.taobao.com/oss/ali-video/f2b27944f9960f3dbb2c6dd6c4679747/video.m3u8
|
||||
陈瑞-有谁知道我在等你,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1583218&response=res&format=mp4&type=convert_url
|
||||
陈瑞-鱼和水的故事,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_353501&response=res&format=mp4&type=convert_url
|
||||
陈瑞-三生三世,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_6449820&response=res&format=mp4&type=convert_url
|
||||
陈瑞-一生的等待,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1583215&response=res&format=mp4&type=convert_url
|
||||
陈瑞-一辈子的真爱,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_28470656&response=res&format=mp4&type=convert_url
|
||||
陈瑞-红尘永相伴,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_506435&response=res&format=mp4&type=convert_url
|
||||
陈瑞-男人酒女人泪,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_40090112&response=res&format=mp4&type=convert_url
|
||||
陈瑞-爱的痕迹,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1218815&response=res&format=mp4&type=convert_url
|
||||
陈瑞-分手了别来打扰我,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_5835684&response=res&format=mp4&type=convert_url
|
||||
陈瑞-曾經是我的最爱的女人,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_486357&response=res&format=mp4&type=convert_url
|
||||
陈瑞-烛光里的妈妈,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1024266&response=res&format=mp4&type=convert_url
|
||||
陈瑞-爱得真伤的深,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1218839&response=res&format=mp4&type=convert_url
|
||||
陈瑞-父亲,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_4247454&response=res&format=mp4&type=convert_url
|
||||
陈瑞-别思,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_3429064&response=res&format=mp4&type=convert_url
|
||||
陈瑞-天长地久,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1583220&response=res&format=mp4&type=convert_url
|
||||
陈瑞-心中的牵挂,http://antiserver.kuwo.cn/anti.s?rid=MUSIC_1583211&response=res&format=mp4&type=convert_url
|
||||
龙梅子-都说,https://vd3.bdstatic.com:443/mda-ma7cm59x1m4015ip/v2-hknm/1080p/mda-ma7cm59x1m4015ip.mp4
|
||||
谭维维《蓝莲花》,https://rescdn.yishihui.com/longvideo/transcode/video/vpc/20201112/5623330ySHJCzL4DxMMpOtgHo.mp4
|
||||
雨花石-云朵,http://newcntv.qcloudcdn.com/asp/hls/2000/0303000a/3/default/20a65dbb23e4448cbcb52a756ebdc74d/2000.m3u8
|
||||
一砖一瓦-杨哲,http://txmov2.a.yximgs.com/upic/2020/11/07/23/BMjAyMDExMDcyMzQxMzZfMTU0MDc1NjUwOF8zODg5OTUwODg5MF8yXzM=_b_B41249b6fddaf4b4ef4bb5aee7c4f431c.mp4
|
||||
雨中相思-龙千玉,http://txmov2.a.yximgs.com/upic/2020/11/25/16/BMjAyMDExMjUxNjAwNDRfMTU0MDc1NjUwOF8zOTc3MTI2OTA2MF8yXzM=_b_B0652e68c50f21d5cb6bdda5dbc7a3c13.mp4
|
||||
月光瞑-蔡秋凤,http://txmov2.a.yximgs.com/upic/2020/11/25/15/BMjAyMDExMjUxNTQxMjRfMTU0MDc1NjUwOF8zOTc3MDYxOTQzOF8yXzM=_b_B5ef50d6b7967ca637b709b0bbd215806.mp4
|
||||
梦中情人-林乔安,http://txmov2.a.yximgs.com/upic/2020/11/08/21/BMjAyMDExMDgyMTAwMTNfMTU0MDc1NjUwOF8zODk0OTg4ODcxN18yXzM=_b_B5faf49255e0be7fc042ea521c28a458e.mp4
|
||||
一句再会-陈思安,http://txmov2.a.yximgs.com/upic/2020/11/07/23/BMjAyMDExMDcyMzM3MTdfMTU0MDc1NjUwOF8zODg5OTQ0NTkxMl8yXzM=_b_B75778f52a4759d91ee9275fffb96812f.mp4
|
||||
王彩華爱情的骗子我问你,http://vd4.bdstatic.com/mda-jm4h7v1isxwc660u/sc/mda-jm4h7v1isxwc660u.mp4
|
||||
蔡丽津月圆情,http://vd3.bdstatic.com/mda-jm53zq7k0b0kbxch/sc/mda-jm53zq7k0b0kbxch.mp4
|
||||
陈小云爱人跟人走,http://vd4.bdstatic.com/mda-jgvqig36bu4rc0ej/sc/mda-jgvqig36bu4rc0ej.mp4
|
||||
江蕙梦中的情话,http://vd2.bdstatic.com/mda-ji4rwrwg7fijyqkh/mda-ji4rwrwg7fijyqkh.mp4
|
||||
小凤凤爱情一阵风,http://vd2.bdstatic.com/mda-jjm7vgq1iahz0zpg/mda-jjm7vgq1iahz0zpg.mp4
|
||||
张秀卿车站,http://vd2.bdstatic.com/mda-jjmnjgiabtvmy13u/sc/mda-jjmnjgiabtvmy13u.mp4
|
||||
龙飘飘 歌声恋情,https://vd3.bdstatic.com/mda-nbr8qai32badkdf1/sc/cae_h264_delogo/1645933170027877953/mda-nbr8qai32badkdf1.mp4
|
||||
陈百潭初恋[848*480],http://vd4.bdstatic.com/mda-jk22i7yt5vyjbgwt//mda-jk22i7yt5vyjbgwt.mp4
|
||||
陈淑苹黄昏之恋[848*480],http://vd4.bdstatic.com/mda-jk0m1rgje4eh01cw//mda-jk0m1rgje4eh01cw.mp4
|
||||
陈淑苹离家,http://vd2.bdstatic.com/mda-iftyuk6tjcxrm53p/sc/mda-iftyuk6tjcxrm53p.mp4
|
||||
陈淑苹我的伤心谁人知,http://vd3.bdstatic.com/mda-ijjfe3s5z1iyvzgq/sc/mda-ijjfe3s5z1iyvzgq.mp4
|
||||
姜玉阳-刻骨的温柔[688*464],http://cloud.video.taobao.com/play/u/1748679248/p/2/e/3/t/1/15883785.m3u8
|
||||
罗时丰爱那么痛,http://vd2.bdstatic.com/mda-jcrjbhmgprhs00c4/sc/mda-jcrjbhmgprhs00c4.mp4
|
||||
罗时丰爱情的路,http://vd4.bdstatic.com/mda-jcrjcp1wy5q2i00n/sc/mda-jcrjcp1wy5q2i00n.mp4
|
||||
罗时丰擦掉彼句我爱你[768*432],http://vd1.bdstatic.com/mda-hj3j9zhu12h99a79/vs-f5f50550f0b93f5020da43ab88266eda-watermark//mda-hj3j9zhu12h99a79.mp4
|
||||
罗时丰男人的汗[848*480],http://vd4.bdstatic.com/mda-jm491avwdp96qg02//mda-jm491avwdp96qg02.mp4
|
||||
罗时丰无情之梦,http://vd2.bdstatic.com/mda-je1jq1hvgmab08gd/sc/mda-je1jq1hvgmab08gd.mp4
|
||||
罗时丰心事,http://vd2.bdstatic.com/mda-jaadiz1rwrtrj7kw/sc/mda-jaadiz1rwrtrj7kw.mp4
|
||||
罗时丰一定要成功,http://vd1.bdstatic.com/mda-hgmk00ncqxvvix0v/mda-hgmk00ncqxvvix0v.mp4
|
||||
毛不易 Ⅰ 借,https://vd3.bdstatic.com/mda-ii2njckdbkmmcp81//mda-ii2njckdbkmmcp81.mp4?pd=20
|
||||
毛不易 Ⅰ 牧马城市,https://vdse.bdstatic.com//1d83dfc2411243e5b9f44462e1e55ab3.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2019-12-14T02%3A12%3A40Z%2F-1%2Fhost%2F4739737cd8b21cbdb307a5d008abe88a61afce23616c55f2a8fae768fc2b6764
|
||||
毛不易 Ⅰ 给你给我,https://vdse.bdstatic.com//4d056936c317b35f886ced83147ad7e8.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2020-01-31T14%3A42%3A28Z%2F-1%2Fhost%2F13c0f2dda852b6fdbcd7422de8ac3a48437304b4c38728deeedb6558c47a9eb9
|
||||
王七七 Ⅰ 我愿意平凡的陪在你身旁,https://vdse.bdstatic.com/570e05ef514db00b14c9c10d1aef7f1f.mp4?authorization=bce-auth-v1%2Ffb297a5cc0fb434c971b8fa103e8dd7b%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2Fd5332371b8e0882511e0b75041fcd24f0899fa4237f56edacb89b6734f95ca97
|
||||
于文文 Ⅰ 體面,https://vdse.bdstatic.com//f18bdf41f28b68a1b0177fa5e5cdf8fe.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2020-01-31T14%3A25%3A29Z%2F-1%2Fhost%2F1a9107b1210343ed30aa27779a042aab3d016777226b471ee5f38c8fc1e23cf1
|
||||
魏新雨 Ⅰ 恋人心,https://vdse.bdstatic.com//e179fea2ba171a7268188a055702229d.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2020-01-31T15%3A18%3A42Z%2F-1%2Fhost%2F84badc350a20f1dfe035e91408acfe7e4b1e69fe262f4faaa5ca3af837e1592b
|
||||
许艺娜 Ⅰ 如梦令,https://vdse.bdstatic.com/20e606730cb53b91bd4a4d2b0323e563.mp4?authorization=bce-auth-v1%2Ffb297a5cc0fb434c971b8fa103e8dd7b%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2F105e954b546582862111230676e2cdc84b0144bf00447793daa377381b7ddb0f
|
||||
张杰 Ⅰ 浮诛,https://vdse.bdstatic.com/1c2dc5580507bc1b0ef507c63b3fc461.mp4?authorization=bce-auth-v1%2Ffb297a5cc0fb434c971b8fa103e8dd7b%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2F592cfc9d5b5bc41242144504ccf1f9f9df9d15b863f6f33c610e552faf629cd9
|
||||
张杰 Ⅰ 就算没有如果,https://vdse.bdstatic.com//b362a1c2ecbc60b18d3dc06cdc97f142.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2020-01-31T15%3A58%3A51Z%2F-1%2Fhost%2Ff5f960beaff319951e978ff3850b31434a5d64f13c03c9724e988c251426270d
|
||||
胡夏 Ⅰ 只问你肯不肯,https://vdse.bdstatic.com/d4463cd83c0c47fba7ce65c71ad94bbb.mp4?authorization=bce-auth-v1%2Ffb297a5cc0fb434c971b8fa103e8dd7b%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2F09b9a33c3ded7584f68a3b875a10ba6a021d74f32e4144c2c0327f05c57abfdc
|
||||
张碧晨/赵丽颖 Ⅰ 望,https://vdse.bdstatic.com/25f5ae931f851bf09c48abaebe5d6f8d.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2Fbeb15438a125af0e53bc38c98b3f304da2e2c0f1f61103ce81a9df486dc138a3
|
||||
|
||||
|
||||
DJ音乐,#genre#
|
||||
热火斯卡拉,https://vd4.bdstatic.com/mda-nk3qfbxhf5dqpywt/sc/cae_h264/1667582665910576925/mda-nk3qfbxhf5dqpywt.mp4
|
||||
怒击摇,https://vd2.bdstatic.com/mda-mkibx9zvknj8d2fu/sc/cae_h264_nowatermark/1637355659217322910/mda-mkibx9zvknj8d2fu.mp4
|
||||
新送情郎,https://vd4.bdstatic.com/mda-meq936zru7niwvd2/sc/cae_h264/1621924823247730000/mda-meq936zru7niwvd2.mp4
|
||||
震撼纯电音Drown,https://vd2.bdstatic.com/mda-mjshcpd847mhnjgj/sc/cae_h264/1635337200637124885/mda-mjshcpd847mhnjgj.mp4
|
||||
送给未来的你,https://vd2.bdstatic.com/mda-ma0st3ncw6i2yerr/v1-cae/sc/mda-ma0st3ncw6i2yerr.mp4
|
||||
模特DJ,http://gcw.bdcdn.shoujiduoduo.com/201805/0247-477.mp4
|
||||
21年DJ爆红网络洗脑神曲,https://vdse.bdstatic.com//bf4bb1d82b2eb17681c49e745dc2da21.mp4
|
||||
劲爆DJ串烧,https://vdse.bdstatic.com//01b1f78bb5b009d36ce3f5051e7383c1.mp4
|
||||
今日热歌DJ《如果爱还在》《A8回心转意》《爱到最后就是痛》,https://vd2.bdstatic.com/mda-mhhf5mr00yyhpfjs/1080p/cae_h264/1629284581057661229/mda-mhhf5mr00yyhpfjs.mp4
|
||||
推荐9首DJ舞曲_首首甜美醉人,https://vd2.bdstatic.com/mda-mhig1c3sw223mx8p/1080p/cae_h264/1629380139191731149/mda-mhig1c3sw223mx8p.mp4
|
||||
动感DJ《苦了累了听听歌》,https://vd4.bdstatic.com/mda-mhqekuf2r91v08dt/1080p/cae_h264/1629888246186602728/mda-mhqekuf2r91v08dt.mp4
|
||||
车载必备DJ《殇雪》《潮湿的心》《酒醉的蝴蝶》《多年以后》,https://vd3.bdstatic.com/mda-mhve4gb9hi8cstzk/1080p/cae_h264/1630319514896018158/mda-mhve4gb9hi8cstzk.mp4
|
||||
DJ《心在跳情在烧》,https://vd4.bdstatic.com/mda-mhwf07t27w3gi1y7/1080p/cae_h264/1630406994590156367/mda-mhwf07t27w3gi1y7.mp4
|
||||
孙艺琪《寂寞的人别听伤感情歌》,https://vd2.bdstatic.com/mda-mdscsws7443npwa8/1080p/cae_h264/1619516504/mda-mdscsws7443npwa8.mp4
|
||||
郭镐鸣《野摩托》,https://vd3.bdstatic.com/mda-mekfm7wu6f4rtt99/1080p/cae_h264/1621595318412084671/mda-mekfm7wu6f4rtt99.mp4
|
||||
赵蕾蕾《寂寞的城伤心的人》,https://vd2.bdstatic.com/mda-mesdm11tdp69a9ye/1080p/cae_h264/1622115758783335310/mda-mesdm11tdp69a9ye.mp4
|
||||
叶筱萱《爱到最后是孤独》,https://vd4.bdstatic.com/mda-mh9fjm2j86uyymfa/1080p/cae_h264/1628593607912074882/mda-mh9fjm2j86uyymfa.mp4
|
||||
海来阿木《浪子心》DJ沈念版,https://vd3.bdstatic.com/mda-mgr9s5pv0jeqbcm8/1080p/cae_h264/1627298307874491239/mda-mgr9s5pv0jeqbcm8.mp4
|
||||
《人间惊鸿客》,https://vd3.bdstatic.com/mda-mh2bbyjcqjxjhzkd/1080p/cae_h264/1627978577559447916/mda-mh2bbyjcqjxjhzkd.mp4
|
||||
DJ版《三月里的小雨》,https://vd2.bdstatic.com/mda-mgwegh0bzv4cy6cb/1080p/cae_h264/1627727251470197083/mda-mgwegh0bzv4cy6cb.mp4
|
||||
DJ版《望爱却步》,https://vd4.bdstatic.com/mda-mh3ei4sg2jypty79/1080p/cae_h264/1628072927342489970/mda-mh3ei4sg2jypty79.mp4
|
||||
《唱着情歌流着泪》,https://vd3.bdstatic.com/mda-mhwaejanf0ie6b8j/1080p/cae_h264/1630409563129833732/mda-mhwaejanf0ie6b8j.mp4
|
||||
DJ版《一个人挺好》,https://vd3.bdstatic.com/mda-mh6gqq4b59z26cjx/1080p/cae_h264/1628504623473300938/mda-mh6gqq4b59z26cjx.mp4
|
||||
《爱你到最后一刻》,https://vd3.bdstatic.com/mda-mhr9c7q9xzgy1812/1080p/cae_h264/1630062648077583523/mda-mhr9c7q9xzgy1812.mp4
|
||||
伤感DJ《等》,https://vd2.bdstatic.com/mda-mhq92a7nafrh8dma/1080p/cae_h264/1629977686796490849/mda-mhq92a7nafrh8dma.mp4
|
||||
DJ《我们不再是从前》,https://vd2.bdstatic.com/mda-mhne550wq5m66zvj/1080p/cae_h264/1629803514331462220/mda-mhne550wq5m66zvj.mp4
|
||||
DJ舞曲《让我做你的眼睛》,https://vd2.bdstatic.com/mda-mhaargrart2qrkdz/1080p/cae_h264/1629630942996744682/mda-mhaargrart2qrkdz.mp4
|
||||
DJ版《时间会知道你好不好》,https://vd3.bdstatic.com/mda-mhairve7gvye1192/1080p/cae_h264/1629457148988604256/mda-mhairve7gvye1192.mp4
|
||||
DJ版《爱不得忘不舍》,https://vd3.bdstatic.com/mda-mh8j8egnj8idbvd8/1080p/cae_h264/1629367979662473678/mda-mh8j8egnj8idbvd8.mp4
|
||||
DJ版《蜜雪冰城》,https://vd3.bdstatic.com/mda-mhbae2pwwxhyxjcz/1080p/cae_h264/1628767594518574030/mda-mhbae2pwwxhyxjcz.mp4
|
||||
《无味》DJ版,https://vd3.bdstatic.com/mda-mgqiagirsmmpuarm/1080p/cae_h264/1627218846577884242/mda-mgqiagirsmmpuarm.mp4
|
||||
DJ版《原谅你的谎》,https://vd4.bdstatic.com/mda-mhacxx5vhr2we882/1080p/cae_h264/1628673933350116053/mda-mhacxx5vhr2we882.mp4
|
||||
DJ《等爱》,https://vd2.bdstatic.com/mda-mfhh1e0hwq212rrt/sc/h264/1623988905898256147/mda-mfhh1e0hwq212rrt.mp4
|
||||
DJ《醉过多少回》,https://vd4.bdstatic.com/mda-megp46e98a4f2b9g/sc/h264/1621239560364992817/mda-megp46e98a4f2b9g.mp4
|
||||
DJ情歌《爱情迷了路》,https://vd4.bdstatic.com/mda-mdbrb7fns70avrmt/1080p/cae_h264/1618222287/mda-mdbrb7fns70avrmt.mp4
|
||||
DJ流浪兄弟,https://vd2.bdstatic.com/mda-mhrdtax1km0idkc5/1080p/cae_h264/1629972852606533219/mda-mhrdtax1km0idkc5.mp4
|
||||
车载DJ《多年以后》,https://vd3.bdstatic.com/mda-mhqekuegbh6112js/1080p/cae_h264/1629891559415737083/mda-mhqekuegbh6112js.mp4
|
||||
经典老歌DJ舞曲七首,https://vd2.bdstatic.com/mda-mhwbtsnrmm6v6x5r/sc/cae_h264/1630403250895754314/mda-mhwbtsnrmm6v6x5r.mp4
|
||||
精选五首DJ男声串烧,https://vd2.bdstatic.com/mda-maqfk730tsig88wr/v2-hknm/1080p/mda-maqfk730tsig88wr.mp4
|
||||
韩可可《错位时空》DJ版,https://vd3.bdstatic.com/mda-mgciytzb45z6z8yj/1080p/cae_h264/1626183756603775947/mda-mgciytzb45z6z8yj.mp4
|
||||
忘记你需要多久(DJ小鱼儿版),https://vd2.bdstatic.com/mda-mc1sm1r5s9azchjv/v1-cae/1080p/mda-mc1sm1r5s9azchjv.mp4
|
||||
车载DJ《今夜为你醉...》,https://vdse.bdstatic.com//b68123a666cce39e7413da912e3675a3.mp4
|
||||
抖音热歌《大风吹+夜夜夜漫长》,https://vdse.bdstatic.com//13da18e12728e9d7849f6589a3070b4c.mp4
|
||||
2021年最好听的DJ串烧,https://vdse.bdstatic.com//cd396057d1fbcb12f0600d38a16effbc.mp4
|
||||
2021年最火伤感音乐,https://vdse.bdstatic.com//6d39df48360bdb12f73800397c4a6c02.mp4
|
||||
2021年网络火爆伤感情歌6首,https://vdse.bdstatic.com//80e0473f97055cec1c9c76c1c7e5498a.mp4
|
||||
2021热门伤感DJ,https://vdse.bdstatic.com//06b4e9b185b843e694e4d20e9b0a0aac.mp4
|
||||
几首比较火的DJ情歌,https://vdse.bdstatic.com//4d7e8fe409b2ba9e08b179de8e146fa3.mp4
|
||||
《爱难求情难断…》,https://vdse.bdstatic.com//0c8ed110c5522e9bd31752ecb999b1ab.mp4
|
||||
花都开了你来不来DJ,https://vd3.bdstatic.com/mda-mdee523swbezmsin/480p/h264/1618480997/mda-mdee523swbezmsin.mp4
|
||||
5首劲爆dj,https://vd2.bdstatic.com/mda-mm69dxgtcqg28j9j/sc/cae_h264/1638860024910192032/mda-mm69dxgtcqg28j9j.mp4
|
||||
动感超人dj,https://vd3.bdstatic.com/mda-mm49pxqfvevcqbx4/sc/cae_h264/1638687905397245214/mda-mm49pxqfvevcqbx4.mp4
|
||||
野花香dj,https://vd3.bdstatic.com/mda-mm68k5z0h1qjm8n0/sc/cae_h264/1638980550463660240/mda-mm68k5z0h1qjm8n0.mp4
|
||||
精选dj,https://vd3.bdstatic.com/mda-mm68drt808w1nins/720p/h264/1638861890075163680/mda-mm68drt808w1nins.mp4
|
||||
伤感情歌DJ,https://vd3.bdstatic.com/mda-mkv7idcnxrgc3cnd/sc/cae_h264/1638257251905732477/mda-mkv7idcnxrgc3cnd.mp4
|
||||
DJ情歌,https://vd2.bdstatic.com/mda-mm67ychk60q5n0d1/sc/cae_h264/1638893384360470440/mda-mm67ychk60q5n0d1.mp4
|
||||
新情歌DJ,https://vd3.bdstatic.com/mda-mkm49f32vcaf16y0/sc/cae_h264/1637551531193286304/mda-mkm49f32vcaf16y0.mp4
|
||||
爱情情歌dj网,https://vd2.bdstatic.com/mda-mkq4iax6ed1yimay/sc/cae_h264/1637837116068761026/mda-mkq4iax6ed1yimay.mp4
|
||||
绝美情歌dj,https://vd2.bdstatic.com/mda-mkp952u577gbq8uc/sc/cae_h264/1637737197319948432/mda-mkp952u577gbq8uc.mp4
|
||||
酒吧舞女,https://vd2.bdstatic.com/mda-mkpe42g9za18xetn/sc/cae_h264/1637798968815645031/mda-mkpe42g9za18xetn.mp4
|
||||
劲爆舞曲DJ,https://vd2.bdstatic.com/mda-mkjdym3r2h7y5a58/sc/cae_h264/1637440648941328664/mda-mkjdym3r2h7y5a58.mp4
|
||||
慢摇dj舞曲,https://vd2.bdstatic.com/mda-mkpi5r0xe92ja446/sc/cae_h264/1637775035132431598/mda-mkpi5r0xe92ja446.mp4
|
||||
男神dj舞曲,https://vd4.bdstatic.com/mda-mkpbcp1thzqg8vju/sc/cae_h264/1637772142027994508/mda-mkpbcp1thzqg8vju.mp4
|
||||
韩国女团dj,https://vd3.bdstatic.com/mda-mknba5i60je0d2dn/sc/cae_h264/1637654844357830568/mda-mknba5i60je0d2dn.mp4
|
||||
七星酒吧舞曲,https://vd2.bdstatic.com/mda-mkq4p7459ade8936/sc/cae_h264/1637813773613914093/mda-mkq4p7459ade8936.mp4
|
||||
dj舞曲女人版,https://vd3.bdstatic.com/mda-mkp88kxv6r8y73k9/sc/cae_h264/1637733263867775329/mda-mkp88kxv6r8y73k9.mp4
|
||||
眉飞色舞dj舞曲,https://vd2.bdstatic.com/mda-mkqi8zsh8r874xii/sc/cae_h264/1637854401020299343/mda-mkqi8zsh8r874xii.mp4
|
||||
情歌DJ合集,https://vd4.bdstatic.com/mda-mkp3tpu9ghk2ufev/sc/cae_h264/1637733480141753790/mda-mkp3tpu9ghk2ufev.mp4
|
||||
四海舞曲dj,https://vd2.bdstatic.com/mda-mkp6w1tjw8mz9kpx/sc/cae_h264/1637731815454834601/mda-mkp6w1tjw8mz9kpx.mp4
|
||||
新世纪舞曲,https://vd4.bdstatic.com/mda-mkq704rtr59i9jtj/sc/cae_h264/1637823373696903055/mda-mkq704rtr59i9jtj.mp4
|
||||
dj舞曲交流,https://vd2.bdstatic.com/mda-majhhns1q3ggkdi6/v1-cae/sc/mda-majhhns1q3ggkdi6.mp4
|
||||
干就完了,https://vd3.bdstatic.com/mda-mkpd6xzxe91etw8c/sc/cae_h264/1637766099902911413/mda-mkpd6xzxe91etw8c.mp4
|
||||
金典老歌合集dj,https://vd3.bdstatic.com/mda-mkq6zqsvfa164i4i/sc/cae_h264/1637829051855604521/mda-mkq6zqsvfa164i4i.mp4
|
||||
学生dj舞曲,https://vd2.bdstatic.com/mda-mkncvdu8w51mdbqw/sc/cae_h264/1637659554429325643/mda-mkncvdu8w51mdbqw.mp4
|
||||
日韩舞曲DJ,https://vd4.bdstatic.com/mda-mknatf58h2evy18i/sc/cae_h264/1637653930525484478/mda-mknatf58h2evy18i.mp4
|
||||
国际舞曲,https://vd4.bdstatic.com/mda-mkpde77et4yvqx7e/sc/cae_h264/1637766610977026004/mda-mkpde77et4yvqx7e.mp4
|
||||
dj舞曲合集,https://vd2.bdstatic.com/mda-mkmeak5hsf7hmguz/sc/cae_h264/1637579072201459045/mda-mkmeak5hsf7hmguz.mp4
|
||||
dj舞曲金典,https://vd2.bdstatic.com/mda-mkk0g8x89nnx62tm/sc/cae_h264/1637456174213928981/mda-mkk0g8x89nnx62tm.mp4
|
||||
车载DJ舞曲《大风吹》《浪子闲话》《玛尼情歌》《沙漠骆驼》,https://vdse.bdstatic.com//7002925e04c4c451cfa8aafc9b4190c7.mp4
|
||||
《拈花一笑》《对面的小姐姐》《想你了小哥哥》《一朵情花开》,https://vdse.bdstatic.com//7cfaf27a4db89583e069a40fbc2ed84b.mp4
|
||||
网络金曲《拈花一笑》《陪你千山万水》《对面小姐姐》,https://vdse.bdstatic.com//c2deba4d320384736569e542ac531aff.mp4
|
||||
情歌DJ《拈花一笑》《对面的小姐姐》《酒醉的蝴蝶》,https://vdse.bdstatic.com//4eece717c6cc2fb9086a59a13ce30623.mp4
|
||||
情歌皇后林翠萍《相见不如不见》,https://vdse.bdstatic.com//1f65ad884619a069c68572f1ac9e2b0e.mp4
|
||||
林翠萍经典老歌《相会在梦里》,https://vdse.bdstatic.com//00fb72cd0b27bec6d9c0cd915874b50e.mp4
|
||||
林翠萍经典情歌《相思豆》,https://vdse.bdstatic.com//986498bb0ccd2114ba1274df22fae332.mp4
|
||||
精选韩宝仪经典歌曲10首,https://vdse.bdstatic.com//42d5ac65a9070eeab2513bf6bc65ea4d.mp4
|
||||
龙飘飘《我没醉》,https://vdse.bdstatic.com//3d48e45e47836cd75c202ec957260837.mp4
|
||||
龙飘飘《往事》,https://vdse.bdstatic.com//a28e362e15fa8c361219944bfb59b596.mp4
|
||||
美酒加咖啡龙飘飘,https://vdse.bdstatic.com//816c73543ede254586a625cacc67ea0f.mp4
|
||||
刀郎经典歌曲精选,https://vdse.bdstatic.com//4fcca19a19aa4974230c5ee70ab5fa55.mp4
|
||||
几首绝美情歌DJ精选,https://vdse.bdstatic.com//c5c64b60c9fdfbdfa3e959bb1d56c4b0.mp4
|
||||
《天路》《驼铃》《鸿雁》《九儿》《绒花》《小芳》,https://vdse.bdstatic.com//e4b7325ebf3010673a51a24f948a8a97.mp4
|
||||
《驼铃》《卓玛》《天边》《鸿雁》《天路》草原歌曲,https://vdse.bdstatic.com//f8f4740a4ca7ff31c3a2d8386fc14598.mp4
|
||||
毛宁《涛声依旧》《晚秋》《心雨》《春风吻上我的脸》《大中国》,https://vdse.bdstatic.com//21736d388636d7648510b2a36fc7cbfd.mp4
|
||||
山歌《阿里山的姑娘》《康定情歌》《山路十八弯》《敖包相会》,https://vdse.bdstatic.com//ae82f5b93166f47d85ff12124a021323.mp4
|
||||
《涛声依旧》《雾里看花》《窗外》《心雨》《听心》《晚秋》《母亲》,https://vdse.bdstatic.com//db8ba0fda2aad9cb15aa32887a160f06.mp4
|
||||
张也《望星空/为了谁/人间第一情/红梅赞/高天上流云》,https://vdse.bdstatic.com//038c6250208e42b9427a885e0370e1a2.mp4
|
||||
降央卓玛:这几首歌曲太动听,https://vdse.bdstatic.com//0ce1279c88ff9ab48f48d4e86860cd46.mp4
|
||||
【老歌DJ版】《精选8首》,https://vdse.bdstatic.com//525174705415c8773bd465ce4b88b18d.mp4
|
||||
2021一夜火爆几首DJ舞曲,https://vdse.bdstatic.com//1fc9fd16e02ca272bb81666b85bf4135.mp4
|
||||
2021《精选5首酒吧DJ舞曲》,https://vdse.bdstatic.com//0e59c29ddbc68ed60dce8a6f4631c1f1.mp4
|
||||
让人陶醉的几首DJ舞曲,https://vdse.bdstatic.com//0f464b2beaf5887f90ac36b68fcd342f.mp4
|
||||
粤语和华语经典歌曲【完整版】,https://vdse.bdstatic.com//2922763f303705ef65c46689578439ea.mp4
|
||||
最新dj,https://vd2.bdstatic.com/mda-mm4dszarfc74t9mx/sc/cae_h264/1638819159347843097/mda-mm4dszarfc74t9mx.mp4
|
||||
一点泪水dj,https://vd2.bdstatic.com/mda-mm52zzkus5fqm4xh/sc/cae_h264/1638783595083455661/mda-mm52zzkus5fqm4xh.mp4
|
||||
dj舞曲英雄泪,https://vd3.bdstatic.com/mda-mkt45tnypacz3smk/sc/cae_h264/1638069225501294830/mda-mkt45tnypacz3smk.mp4
|
||||
爱江山更爱美人金典,https://vd4.bdstatic.com/mda-mm2a18n5jdh6d8bs/sc/cae_h264/1638516147610932793/mda-mm2a18n5jdh6d8bs.mp4
|
||||
舞曲视频,https://vd2.bdstatic.com/mda-mm25g3080p08di8w/sc/cae_h264/1638529553032232968/mda-mm25g3080p08di8w.mp4
|
||||
今夜回望dj,https://vd2.bdstatic.com/mda-mkv7cbzq5xdtf9ms/sc/cae_h264/1638478442002383579/mda-mkv7cbzq5xdtf9ms.mp4
|
||||
小鱼授权,https://vd4.bdstatic.com/mda-mkn4iq79ihtufbc1/sc/cae_h264/1637639849265611965/mda-mkn4iq79ihtufbc1.mp4
|
||||
舞曲视频,https://vd4.bdstatic.com/mda-mkf4g5p5hpevqbx6/sc/cae_h264/1637033781127837401/mda-mkf4g5p5hpevqbx6.mp4
|
||||
舞曲视频2,https://vd2.bdstatic.com/mda-mkn56h2g8ux3dtxq/sc/cae_h264/1637642599802363137/mda-mkn56h2g8ux3dtxq.mp4
|
||||
车震一小时,http://gcw.bdcdn.shoujiduoduo.com/201805/0748-641.mp4
|
||||
车载DJ视频6,https://vdse.bdstatic.com//7e9d2da860d4ac39c0ea86502360d6fe.mp4
|
||||
好歌分享《精选6首伤感DJ舞曲》HD,https://vdse.bdstatic.com//0c87c8977d0a33498fe7362d3c60c22c.mp4
|
||||
2021爆红《6首女生版伤感DJ》HD,https://vdse.bdstatic.com//2e77709380ad7e6163e80c4d5c179689.mp4
|
||||
美人热舞洗脑DJ舞曲HD,https://vdse.bdstatic.com//3700f6b78ceaf0f4a5313f4d68c95b72.mp4
|
||||
2021五首女声伤感DJ情歌精品HD,https://vdse.bdstatic.com//c92e81328ef6d13ba7d44e6eb80f9f1e.mp4
|
||||
情歌DJ《怎么可以如此冷血》《为爱受尽相思罪》HD,https://vdse.bdstatic.com//61e318ea76e984f2bedb66f1ed1583be.mp4
|
||||
DJ劲爆舞曲《在我心里有个你》《东南西北风》《一万个对不起》等HD,https://vdse.bdstatic.com//8343b02f5e7465d4c5b07e54403438b8.mp4
|
||||
DJ情歌串烧《痴情恋歌》《红颜知己》《事与愿违》《缘分相遇》HD,https://vdse.bdstatic.com//904548e7bec804905906557ed2752017.mp4
|
||||
动听DJ情歌《红颜知己》《今夜为你醉》《别忘了我在等你》等HD,https://vdse.bdstatic.com//92d49c2aebc0bbbe08149b8e08e4a443.mp4
|
||||
DJ伤感好听《红颜知己》《事与愿违》《缘分相遇》《知情念歌》HD,https://vdse.bdstatic.com//1a7b05ab4eab2d68a679e442f4d80fab.mp4
|
||||
DJ情歌《昨夜的我又梦到了你》《心上的人儿你在哪》等HD,https://vdse.bdstatic.com//09b76fc9762763350288fb96047ec820.mp4
|
||||
《给我一把爱情火》《无情风雨无情的你》《昨夜的我又梦到了你》HD,https://vdse.bdstatic.com//63a770491e7bae0ebe661452c27eaf33.mp4
|
||||
林翠萍《麦搁來这套》HD,https://vdse.bdstatic.com//5b388a47b1233105831e09b8cadc1edd.mp4
|
||||
刀郎经典歌曲《敖包相会》《西海情歌》等专辑金典老歌HD,https://vdse.bdstatic.com//36ea0ffcf8156a44b9d524d999eb088a.mp4
|
||||
刀郎经典歌曲7首:《西海情歌》《敖包相会》《情人》冲动的惩罚HD,https://vdse.bdstatic.com//628ca08719cef5987ea2ae3c6f0d2386.mp4
|
||||
刀郎经典老歌合集《披着羊皮的狼》《西海情歌》《冲动的惩罚》HD,https://vdse.bdstatic.com//bfbb0871ed01eb3328497faae6a8531b.mp4
|
||||
云朵、刀郎、孙露、张雨生等经典怀旧歌曲6首HD,https://vdse.bdstatic.com//fa0ed7ad8657cc4d13972c3d9aa5ddbf.mp4
|
||||
《来生再去拥抱你》《梨花飞情人泪》《落雨的秋》《梦醉荷塘》HD,https://vdse.bdstatic.com//d5e3237c7ef186217ea1c9b24d58e2ae.mp4
|
||||
宇宁《千里江山(大型纪录片《紫禁城》主题歌HD,https://vdse.bdstatic.com//688046e42c39cf6585106f945e2798e7.mov
|
||||
2021最佳伤感情歌HD,https://vdse.bdstatic.com//59c5abc138bf1da5585bb765c530137e.mp4
|
||||
2021伤感洗脑神曲HD,https://vdse.bdstatic.com//8ad29ca92a901b9992431cf0c5266101.mp4
|
||||
经典粤语歌曲《上海滩》《铁血丹心》《神情神话》《沧海一声笑》HD,https://vdse.bdstatic.com//f9cda7e70273c267b61a3d0c969d2033.mp4
|
||||
苍天不负有情人,https://vd3.bdstatic.com/mda-jm5iqyuj8bapffdb/hd/mda-jm5iqyuj8bapffdb.mp4
|
||||
4k超清车载劲爆,https://vd2.bdstatic.com/mda-ncg1mhvhiy7fkgzs/sc/cae_h264_delogo/1647481028509277070/mda-ncg1mhvhiy7fkgzs.mp4
|
||||
经典dj《站台》,https://vd2.bdstatic.com/mda-mju7bud6vwuub0nq/hd/cae_h264_nowatermark/1635484907845663119/mda-mju7bud6vwuub0nq.mp4
|
||||
东南西北风DJ,https://vd2.bdstatic.com/mda-ncnfhdbt5mucyi3w/cae_h264_delogo/1648033513910900148/mda-ncnfhdbt5mucyi3w.mp4
|
||||
2022伤感DJ串烧dj,https://vd2.bdstatic.com/mda-ncm68fx91zybkka3/cae_h264_delogo/1647925011440022023/mda-ncm68fx91zybkka3.mp4
|
||||
还没有爱够DJ,https://vd3.bdstatic.com/mda-ncjgwmv1u85an74x/cae_h264_delogo/1647781725809492842/mda-ncjgwmv1u85an74x.mp4
|
||||
花儿笑了DJ,https://vd4.bdstatic.com/mda-ncj7vawq5rnk5v59/hd/cae_h264_delogo/1647759626623363912/mda-ncj7vawq5rnk5v59.mp4
|
||||
打工辛酸泪DJ2首,https://vd4.bdstatic.com/mda-na5fafrtbvvf5wib/hd/cae_h264_delogo/1641996387070390433/mda-na5fafrtbvvf5wib.mp4
|
||||
都是兄弟DJ,https://vd2.bdstatic.com/mda-nad5ctdnq3w1zssn/hd/cae_h264_delogo/1642142912024126404/mda-nad5ctdnq3w1zssn.mp4
|
||||
只能拼自己DJ人不可貌相,https://vd4.bdstatic.com/mda-mmw9fee0n7gtsu2k/480p/h264/1640932948187120706/mda-mmw9fee0n7gtsu2k.mp4
|
||||
dj新歌句句在理,https://vd4.bdstatic.com/mda-ncmb65kfdfysdq4g/sc/cae_h264_delogo/1647946141035592767/mda-ncmb65kfdfysdq4g.mp4
|
||||
新歌上线7首,https://vd2.bdstatic.com/mda-nc4fkdejg6k892tp/720p/h264_delogo/1646478313883739193/mda-nc4fkdejg6k892tp.mp4
|
||||
北方姑娘,https://vd3.bdstatic.com/mda-ncc6hbwdde59r16h/sc/cae_h264_delogo/1647146424330053026/mda-ncc6hbwdde59r16h.mp4
|
||||
一生输给了爱情,https://vd2.bdstatic.com/mda-mkn4yr0d9ypy9wns/sc/cae_h264_delogo/1643224005214992888/mda-mkn4yr0d9ypy9wns.mp4
|
||||
酒吧慢摇DJ舞曲,https://vd4.bdstatic.com/mda-ncm0qvdrfhujssxg/sc/cae_h264_delogo/1647910096911072273/mda-ncm0qvdrfhujssxg.mp4
|
||||
这首新歌_一听就上瘾,https://vd4.bdstatic.com/mda-nckaxf6j35t5e3j4/sc/cae_h264_delogo/1647849433211786752/mda-nckaxf6j35t5e3j4.mp4
|
||||
新歌上线_啥歌这么好听,https://vd4.bdstatic.com/mda-nce4pddwfdazhgrt/sc/cae_h264_delogo/1647315872347291980/mda-nce4pddwfdazhgrt.mp4
|
||||
《女人的心声》,https://vd3.bdstatic.com/mda-ncmgnz6479fenq1w/hd/cae_h264_delogo/1647950253700208169/mda-ncmgnz6479fenq1w.mp4
|
||||
负心的你,https://vd4.bdstatic.com:443/mda-mcbs0hpjpkpwethe/1080p/h264_cae/1620492489548087433/mda-mcbs0hpjpkpwethe.mp4
|
||||
初恋的人,https://vd2.bdstatic.com:443/mda-mhwdgysnspnb1nnr/1080p/cae_h264/1630404398162757730/mda-mhwdgysnspnb1nnr.mp4
|
||||
初恋情人,https://vd3.bdstatic.com:443/mda-me57bm308iu6stcz/1080p/cae_h264/1620279663855106642/mda-me57bm308iu6stcz.mp4
|
||||
爱情一阵风,https://vd4.bdstatic.com:443/mda-mdkd7yybv4y505qa/1080p/h264_cae/1620480120114753589/mda-mdkd7yybv4y505qa.mp4
|
||||
林翠萍-情网,https://vd4.bdstatic.com:443/mda-mipn4ccctdasgr2r/fhd/cae_h264_nowatermark/1632498915227563300/mda-mipn4ccctdasgr2r.mp4
|
||||
爱情的骗子我问你,https://vd4.bdstatic.com:443/mda-me7emge7ku6b7g9h/1080p/cae_h264/1620470361962860122/mda-me7emge7ku6b7g9h.mp4
|
||||
我用自己的方式爱你,http://vdown.kuwo.cn:80/resource/t1/46/26af4a23c9e04725bd1dc491b662f386.mp4
|
||||
无奈的思绪,https://vd4.bdstatic.com:443/mda-kkbxxmr5nn2swgu6/sc/cae_h264_nowatermark/1605192499/mda-kkbxxmr5nn2swgu6.mp4
|
||||
点燃一根烟,https://vd2.bdstatic.com:443/mda-mdapwdafpsiy63zu/1080p/h264_cae/1620614712517070219/mda-mdapwdafpsiy63zu.mp4
|
||||
今生最美的遇见,https://vd4.bdstatic.com/mda-ncjf6j5xqwx35wxc/sc/cae_h264_delogo/1647774687601159968/mda-ncjf6j5xqwx35wxc.mp4
|
||||
多彩的哈达,https://vd2.bdstatic.com/mda-nccdp2tcnwx6cpmn/sc/cae_h264_delogo/1647164915434344506/mda-nccdp2tcnwx6cpmn.mp4
|
||||
陕北民间,https://vd4.bdstatic.com/mda-ncfk4vpkpbuhnu0s/720p_frame30/h264_cae_delogo/1647440102957240321/mda-ncfk4vpkpbuhnu0s.mp4
|
||||
情歌DJ舞曲,https://vd2.bdstatic.com/mda-nag6y4ryfy5a0hjb/720p/h264_delogo/1642396108696963578/mda-nag6y4ryfy5a0hjb.mp4
|
||||
9首醉人的情歌,https://vd2.bdstatic.com/mda-nca3btr4bdxce5wj/sc/cae_h264_delogo/1647136483442128566/mda-nca3btr4bdxce5wj.mp4
|
||||
韩宝仪《情人桥》,https://vd4.bdstatic.com/mda-jehka6exkt6va8id/sc/mda-jehka6exkt6va8id.mp4
|
||||
韩宝仪无聊的游戏,https://vd2.bdstatic.com/mda-nb8j3b6sz77bdvk8/sc/cae_h264_delogo/1644413904258506067/mda-nb8j3b6sz77bdvk8.mp4
|
||||
高清舞曲,https://txmov2.a.kwimgs.com/upic/2022/03/25/20/BMjAyMjAzMjUyMDUyNTZfMjM0NDc1MTE5N183MDQ0NzkzMTQxOV8wXzM=_b_B383b34c7a7c97f97b5350f622d8da0a6.mp4?tag=1-1648554367-std-1-puqq96jiry-1167f7fd60758f88&clientCacheKey=3x3qtumzyu5rh6w_b.mp4&tt=b&di=79c43beb&bp=12681
|
||||
痴心是我犯的错,https://vd2.bdstatic.com/mda-ncpa1ziw0urtvsuy/720p/h264_delogo/1648105627756677310/mda-ncpa1ziw0urtvsuy.mp4
|
||||
新歌,https://vd4.bdstatic.com/mda-ncg9dxe96d9039u2/sc/cae_h264_delogo/1647648778266965968/mda-ncg9dxe96d9039u2.mp4
|
||||
《好听情歌8首》,https://vd4.bdstatic.com/mda-nca4dy51snpz9cnz/sc/cae_h264_delogo/1647144982589585207/mda-nca4dy51snpz9cnz.mp4
|
||||
DJ新歌上线,https://vd3.bdstatic.com/mda-nckdkm6sj1p9q7c9/sc/cae_h264_delogo/1647859589943780399/mda-nckdkm6sj1p9q7c9.mp4
|
||||
DJ酱爆鱿鱼舞曲版》,https://vd4.bdstatic.com/mda-ncidj3kqg98a7ent/360p/h264_delogo/1647683015061569002/mda-ncidj3kqg98a7ent.mp4
|
||||
DJ给我一把爱情火,https://vd2.bdstatic.com/mda-ncg42rnzxats8h83/cae_h264_delogo/1647486932330653636/mda-ncg42rnzxats8h83.mp4
|
||||
新歌上线,https://vd4.bdstatic.com/mda-nc005jwr87jrdssh/sc/cae_h264_delogo/1646179767551234681/mda-nc005jwr87jrdssh.mp4
|
||||
dj,https://txmov2.a.kwimgs.com/upic/2022/03/21/19/BMjAyMjAzMjExOTA2MjRfMjYyNzI4Mjc4MV83MDE2MTEwMjY1Ml8yXzM=_b_B977559109a6b2bec30b01e11d458d398.mp4
|
||||
刀郎的西海情歌,https://vd2.bdstatic.com/mda-nctex3rji1v42a0w/sc/cae_h264_delogo/1648464135631429287/mda-nctex3rji1v42a0w.mp4
|
||||
伤感DJ串烧为爱流泪,https://vd3.bdstatic.com/mda-nci8jqpzeyqkhdxe/720p/h264_delogo/1647670097763149460/mda-nci8jqpzeyqkhdxe.mp4
|
||||
林翠萍的《我太傻》,https://vd2.bdstatic.com/mda-mb5qq1ic4yvekk6r/v2-hknm/sc/mda-mb5qq1ic4yvekk6r.mp4
|
||||
伤心的眼泪,https://vd3.bdstatic.com/mda-ncn2c816zrf6u0im/sc/cae_h264_delogo/1648002300550722369/mda-ncn2c816zrf6u0im.mp4
|
||||
《英雄泪》,https://vd3.bdstatic.com/mda-ncnp6tm56ngrxbis/360p/h264_delogo/1648055585617071282/mda-ncnp6tm56ngrxbis.mp4
|
||||
2022几首DJ串烧,https://vd3.bdstatic.com/mda-nck3tqzgjvj076vc/sc/cae_h264_delogo/1647833645083560959/mda-nck3tqzgjvj076vc.mp4
|
||||
@@ -0,0 +1,354 @@
|
||||
var iil = 'jsjiami.com.v6',
|
||||
iil_ = ['iil'],
|
||||
lIIIl1ll = [iil, '\x6f\x6b\x68\x74\x74\x70\x2f\x33\x2e\x31\x35', '\x69\x6e\x64\x65\x78\x4f\x66', '\x24\x24\x24', '\x73\x70\x6c\x69\x74', '\x74\x72\x69\x6d', '\x26\x26\x26', '\x3a\x2f\x2f', '\x6c\x6f\x67', '\x70\x69\x63\x55\x72\x6c\x3a\x20', '\x72\x65\x70\x6c\x61\x63\x65', '\x70\x75\x73\x68', '\x2f\x66\x69\x6c\x65\x2f\x6c\x69\x76\x65\x73\x6f\x75\x72\x63\x65\x6c\x69\x73\x74', '\x2f\x6c\x69\x76\x65\x73\x6f\x75\x72\x63\x65\x6c\x69\x73\x74', '\x47\x45\x54', '\x70\x61\x72\x73\x65', '\x63\x6f\x6e\x74\x65\x6e\x74', '\x73\x75\x62\x73\x74\x72\x69\x6e\x67', '\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x4f\x66', '\x6e\x61\x6d\x65', '\x75\x72\x6c', '\x3d\x3d\x3d\x3d\x20\x3e\x3e\x3e\x20', '\x73\x74\x72\x69\x6e\x67\x69\x66\x79', '\x65\x78\x65\x63', '\x74\x65\x73\x74', '\x6d\x61\x74\x63\x68', '\x63\x68\x61\x6e\x6e\x65\x6c', '\x2c\x23\x67\x65\x6e\x72\x65\x23\x0a', '\x75\x72\x6c\x73', '\x64\x61\x74\x61', '\x64\x61\x74\x61\x6c\x69\x73\x74', '\x70\x72\x6f\x76', '\x6c\x69\x73\x74', '\x2d\x2d\x2d', '\x6c\x69\x6e\x65', '\x77\x65\x62\x50\x69\x63\x55\x72\x6c\x3a\x20', '\x23\x45\x58\x54\x4d\x33\x55', '\x22\x63\x68\x61\x6e\x6e\x65\x6c\x22', '\x22\x75\x72\x6c\x73\x22', '\x22\x64\x61\x74\x61\x6c\x69\x73\x74\x22', '\x6c\x65\x6e\x67\x74\x68', '\x23\x67\x65\x6e\x72\x65\x23', '\x7b\x6e\x61\x6d\x65\x7d', '\x7b\x63\x61\x74\x65\x7d', '\u76f4\u64ad\u5217\u8868', '\x6e\x75\x6c\x6c', '\x74\x79\x70\x65\x5f\x69\x64', '\x76\x6f\x64\x5f\x70\x6c\x61\x79\x5f\x75\x72\x6c', '\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79', '\x6a\x6f\x69\x6e', '\x76\x6f\x64\x5f\x70\x6c\x61\x79\x5f\x66\x72\x6f\x6d', '\x6a\x43\x50\x73\x4e\x6a\x77\x69\x4a\x61\x51\x6d\x69\x2e\x63\x6f\x4e\x4f\x6d\x47\x72\x2e\x76\x56\x36\x41\x46\x67\x79\x74\x74\x3d\x3d'];
|
||||
|
||||
function Ii1l1III(_0x3b13df, _0x346a54) {
|
||||
_0x3b13df = ~~'0x' ['concat'](_0x3b13df['slice'](0x0));
|
||||
var _0x4db44b = lIIIl1ll[_0x3b13df];
|
||||
return _0x4db44b;
|
||||
};
|
||||
(function(_0x209161, _0x5eaa4a) {
|
||||
var _0x42ecdf = 0x0;
|
||||
for (_0x5eaa4a = _0x209161['shift'](_0x42ecdf >> 0x2); _0x5eaa4a && _0x5eaa4a !== (_0x209161['pop'](_0x42ecdf >> 0x3) + '')['replace'](/[CPNwJQNOGrVAFgytt=]/g, ''); _0x42ecdf++) {
|
||||
_0x42ecdf = _0x42ecdf ^ 0x127efd;
|
||||
}
|
||||
}(lIIIl1ll, Ii1l1III));
|
||||
let headers = {
|
||||
'User-Agent': Ii1l1III('0')
|
||||
};
|
||||
let classes = [];
|
||||
let cates = {};
|
||||
let picUrl = '';
|
||||
let webPaths = {};
|
||||
|
||||
function init(IiIIi1i) {
|
||||
let i1Ii11I1 = '';
|
||||
if (IiIIi1i[Ii1l1III('1')](Ii1l1III('2')) > 0x0) {
|
||||
i1Ii11I1 = IiIIi1i[Ii1l1III('3')](Ii1l1III('2'))[0x0][Ii1l1III('4')]();
|
||||
IiIIi1i = IiIIi1i[Ii1l1III('3')](Ii1l1III('2'))[0x1][Ii1l1III('4')]();
|
||||
}
|
||||
if (IiIIi1i[Ii1l1III('1')](Ii1l1III('5')) > 0x0) {
|
||||
picUrl = IiIIi1i[Ii1l1III('3')](Ii1l1III('5'))[0x1][Ii1l1III('4')]();
|
||||
if (picUrl[Ii1l1III('1')](Ii1l1III('6')) < 0x0) {
|
||||
picUrl = i1Ii11I1 + picUrl;
|
||||
}
|
||||
IiIIi1i = IiIIi1i[Ii1l1III('3')](Ii1l1III('5'))[0x0][Ii1l1III('4')]();
|
||||
}
|
||||
console[Ii1l1III('7')](Ii1l1III('8') + picUrl);
|
||||
let IIlIlI1I = IiIIi1i[Ii1l1III('3')]('\x23');
|
||||
for (const IlII1I1 of IIlIlI1I) {
|
||||
if (IlII1I1[Ii1l1III('1')]('\x24') > 0x0) {
|
||||
let illIl111 = IlII1I1;
|
||||
let Ill1iIi = IlII1I1[Ii1l1III('3')]('\x24')[0x0];
|
||||
if (illIl111[Ii1l1III('1')](Ii1l1III('6')) < 0x0) {
|
||||
illIl111 = illIl111[Ii1l1III('9')]('\x24', '\x24' + i1Ii11I1);
|
||||
}
|
||||
classes[Ii1l1III('a')]({
|
||||
'type_id': illIl111,
|
||||
'type_name': Ill1iIi[Ii1l1III('9')]('\x21\x21', '')
|
||||
});
|
||||
} else {
|
||||
let II1lIlli = IlII1I1;
|
||||
if (II1lIlli[Ii1l1III('1')](Ii1l1III('6')) < 0x0) {
|
||||
II1lIlli = i1Ii11I1 + II1lIlli;
|
||||
}
|
||||
II1lIlli = II1lIlli[Ii1l1III('9')](Ii1l1III('b'), Ii1l1III('c'));
|
||||
let Illi11ll = req(II1lIlli, {
|
||||
'\x6d\x65\x74\x68\x6f\x64': Ii1l1III('d'),
|
||||
'\x68\x65\x61\x64\x65\x72\x73': headers
|
||||
});
|
||||
try {
|
||||
let l1lIiill = JSON[Ii1l1III('e')](Illi11ll[Ii1l1III('f')]);
|
||||
let lillI11l = II1lIlli[Ii1l1III('10')](0x0, II1lIlli[Ii1l1III('11')]('\x2f') + 0x1);
|
||||
for (const i1iilII1 of l1lIiill) {
|
||||
let Iillil = i1iilII1[Ii1l1III('12')];
|
||||
let lI1iIl = i1iilII1[Ii1l1III('13')];
|
||||
let illIl111 = Iillil + '\x24' + (lI1iIl[Ii1l1III('1')](Ii1l1III('6')) < 0x0 ? lillI11l : '') + lI1iIl;
|
||||
classes[Ii1l1III('a')]({
|
||||
'type_id': illIl111,
|
||||
'type_name': Iillil[Ii1l1III('9')]('\x21\x21', '')
|
||||
});
|
||||
webPaths[illIl111] = lillI11l;
|
||||
}
|
||||
} catch (Ii1Ii11) {
|
||||
console[Ii1l1III('7')](Ii1l1III('14') + Ii1Ii11);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function home(I1iiIiIl) {
|
||||
return JSON[Ii1l1III('15')]({
|
||||
'class': classes,
|
||||
'filters': null
|
||||
});
|
||||
}
|
||||
|
||||
function parseM3u(iIi1Ii1I, I1IlIIIi) {
|
||||
let iI1iiIii = {};
|
||||
let iiI11111 = /(#EXTINF:.+?),([^,]+?)\s*\n(.+?)\s*\n/g;
|
||||
let ii1iilil = null;
|
||||
while ((ii1iilil = iiI11111[Ii1l1III('16')](iIi1Ii1I)) != null) {
|
||||
let lllli1iI = ii1iilil[0x1];
|
||||
let il1Ili1I = ii1iilil[0x2];
|
||||
let liIlll1l = ii1iilil[0x3];
|
||||
if (il1Ili1I == null || liIlll1l == null || il1Ili1I == '' || liIlll1l == '') {
|
||||
continue;
|
||||
}
|
||||
il1Ili1I = il1Ili1I[Ii1l1III('4')]();
|
||||
liIlll1l = liIlll1l[Ii1l1III('4')]();
|
||||
let IiI1lI1l = I1IlIIIi;
|
||||
let ilIl1i1i = /group-title="(.*?)"/;
|
||||
if (ilIl1i1i[Ii1l1III('17')](lllli1iI)) {
|
||||
IiI1lI1l = lllli1iI[Ii1l1III('18')](ilIl1i1i)[0x1];
|
||||
}
|
||||
if (!iI1iiIii[IiI1lI1l]) {
|
||||
iI1iiIii[IiI1lI1l] = [];
|
||||
}
|
||||
iI1iiIii[IiI1lI1l][Ii1l1III('a')](il1Ili1I + '\x2c' + liIlll1l);
|
||||
}
|
||||
let ll11III1 = '';
|
||||
for (const li1Ili in iI1iiIii) {
|
||||
ll11III1 += li1Ili + '\x0a';
|
||||
let IlIil1ll = iI1iiIii[li1Ili];
|
||||
for (const li1iI11 of IlIil1ll) {
|
||||
ll11III1 += li1iI11 + '\x0a';
|
||||
}
|
||||
}
|
||||
return ll11III1;
|
||||
}
|
||||
|
||||
function parseFm(IliiIl1I) {
|
||||
let lliiI1i1 = '';
|
||||
let Iii1ll = JSON[Ii1l1III('e')](IliiIl1I);
|
||||
for (const i1lIlli1 of Iii1ll) {
|
||||
let I111Il1l = i1lIlli1[Ii1l1III('12')];
|
||||
let ilI11li = i1lIlli1[Ii1l1III('19')];
|
||||
lliiI1i1 += I111Il1l + Ii1l1III('1a');
|
||||
for (const iiilI1iI of ilI11li) {
|
||||
let I11111l1 = iiilI1iI[Ii1l1III('12')];
|
||||
let IlI1l1I1 = iiilI1iI[Ii1l1III('1b')];
|
||||
for (const l1II1lll of IlI1l1I1) {
|
||||
lliiI1i1 += I11111l1 + '\x2c' + l1II1lll + '\x0a';
|
||||
}
|
||||
}
|
||||
}
|
||||
return lliiI1i1;
|
||||
}
|
||||
|
||||
function parseLu(iIliI1lI) {
|
||||
let IIlilI1i = '';
|
||||
let I11ilI1i = JSON[Ii1l1III('e')](iIliI1lI)[Ii1l1III('1c')];
|
||||
for (const i1Ii1l1 of I11ilI1i[Ii1l1III('1d')]) {
|
||||
let I11111l = i1Ii1l1[Ii1l1III('1e')];
|
||||
let IiIiii1l = i1Ii1l1[Ii1l1III('1f')];
|
||||
IIlilI1i += I11111l + Ii1l1III('1a');
|
||||
for (const l1111lI of IiIiii1l) {
|
||||
let lIlI1iI = l1111lI[Ii1l1III('12')];
|
||||
let ll11i1II = l1111lI[Ii1l1III('1b')];
|
||||
for (const Iliilii of ll11i1II) {
|
||||
IIlilI1i += lIlI1iI + Ii1l1III('20') + Iliilii[Ii1l1III('21')] + '\x2c' + Iliilii[Ii1l1III('13')] + '\x0a';
|
||||
}
|
||||
}
|
||||
}
|
||||
return IIlilI1i;
|
||||
}
|
||||
|
||||
function getCateData(IliI1i) {
|
||||
let iI1I1I1I = picUrl;
|
||||
if (IliI1i[Ii1l1III('1')](Ii1l1III('5')) > 0x0) {
|
||||
iI1I1I1I = IliI1i[Ii1l1III('3')](Ii1l1III('5'))[0x1][Ii1l1III('4')]();
|
||||
if (iI1I1I1I[Ii1l1III('1')](Ii1l1III('6')) < 0x0 && webPaths[IliI1i]) {
|
||||
iI1I1I1I = webPaths[IliI1i] + iI1I1I1I;
|
||||
}
|
||||
IliI1i = IliI1i[Ii1l1III('3')](Ii1l1III('5'))[0x0][Ii1l1III('4')]();
|
||||
}
|
||||
console[Ii1l1III('7')](Ii1l1III('22') + iI1I1I1I);
|
||||
let ll1iIiiI = IliI1i[Ii1l1III('3')]('\x24')[0x1];
|
||||
let i1I1l1i = IliI1i[Ii1l1III('3')]('\x24')[0x0];
|
||||
if (!cates[IliI1i]) {
|
||||
cates[IliI1i] = [];
|
||||
let iIl11Iii = headers;
|
||||
if (ll1iIiiI[Ii1l1III('1')]('\x7c') > 0x0) {
|
||||
let ii111I1I = decodeURIComponent(ll1iIiiI[Ii1l1III('3')]('\x7c')[0x1]);
|
||||
ll1iIiiI = ll1iIiiI[Ii1l1III('3')]('\x7c')[0x0];
|
||||
for (const II1Ii1l of ii111I1I[Ii1l1III('3')]('\x26')) {
|
||||
if (II1Ii1l[Ii1l1III('1')]('\x3d') > 0x0) {
|
||||
let lI1lliii = II1Ii1l[Ii1l1III('3')]('\x3d')[0x0];
|
||||
let I11Iii1i = II1Ii1l[Ii1l1III('3')]('\x3d')[0x1];
|
||||
iIl11Iii[lI1lliii] = I11Iii1i;
|
||||
}
|
||||
}
|
||||
}
|
||||
let I111lilI = req(ll1iIiiI, {
|
||||
'\x6d\x65\x74\x68\x6f\x64': Ii1l1III('d'),
|
||||
'\x68\x65\x61\x64\x65\x72\x73': iIl11Iii
|
||||
});
|
||||
I111lilI = I111lilI[Ii1l1III('f')][Ii1l1III('4')]();
|
||||
if (I111lilI[Ii1l1III('1')](Ii1l1III('23')) >= 0x0) {
|
||||
I111lilI = parseM3u(I111lilI, i1I1l1i);
|
||||
} else if (I111lilI[Ii1l1III('1')](Ii1l1III('24')) > 0x0 && I111lilI[Ii1l1III('1')](Ii1l1III('25')) > 0x0) {
|
||||
I111lilI = parseFm(I111lilI);
|
||||
} else if (I111lilI[Ii1l1III('1')](Ii1l1III('26')) > 0x0 && I111lilI[Ii1l1III('1')](Ii1l1III('25')) > 0x0) {
|
||||
I111lilI = parseLu(I111lilI);
|
||||
}
|
||||
let li1IiiII = (i1I1l1i + '\x0a' + I111lilI[Ii1l1III('9')]('\x0d', ''))[Ii1l1III('3')]('\x0a');
|
||||
let lli11iI = i1I1l1i;
|
||||
let IiiIIiIi = null;
|
||||
let iiiI1l = '';
|
||||
for (let i1ii1IIl = 0x0; i1ii1IIl < li1IiiII[Ii1l1III('27')]; i1ii1IIl++) {
|
||||
let lIliIii = li1IiiII[i1ii1IIl][Ii1l1III('9')](/\s+/g, '');
|
||||
if (lIliIii != '' && lIliIii[Ii1l1III('1')](Ii1l1III('6')) < 0x0 && (lIliIii[Ii1l1III('1')]('\x2c') < 0x0 || lIliIii[Ii1l1III('1')](Ii1l1III('28')) > 0x0)) {
|
||||
if (iiiI1l != '') {
|
||||
let ilIIIl = iI1I1I1I[Ii1l1III('9')](Ii1l1III('29'), encodeURIComponent(lli11iI))[Ii1l1III('9')](Ii1l1III('2a'), encodeURIComponent(i1I1l1i));
|
||||
let ilI1ilI = ilIIIl[Ii1l1III('1')]('\x3c');
|
||||
let iili1I1i = ilIIIl[Ii1l1III('11')]('\x3e');
|
||||
if (ilI1ilI > -0x1 && iili1I1i > ilI1ilI) {
|
||||
let I11Ilili = ilIIIl[Ii1l1III('10')](ilI1ilI, iili1I1i + 0x1);
|
||||
let I1liliII = new RegExp(I11Ilili[Ii1l1III('9')](/<|>/g, ''));
|
||||
let lii11liI = lli11iI[Ii1l1III('9')](I1liliII, function(Ili1lIi1, iiliII1l) {
|
||||
return iiliII1l;
|
||||
});
|
||||
ilIIIl = ilIIIl[Ii1l1III('9')](I11Ilili, lii11liI);
|
||||
console[Ii1l1III('7')](lli11iI + '\x2c\x20' + ilIIIl);
|
||||
}
|
||||
let IiiIIiIi = {
|
||||
'vod_id': IliI1i + Ii1l1III('2') + cates[IliI1i][Ii1l1III('27')],
|
||||
'vod_name': lli11iI,
|
||||
'vod_pic': ilIIIl,
|
||||
'vod_remarks': '',
|
||||
'type_name': Ii1l1III('2b'),
|
||||
'vod_year': '',
|
||||
'vod_area': '',
|
||||
'vod_actor': '',
|
||||
'vod_director': '',
|
||||
'vod_content': '',
|
||||
'vod_play_from': i1I1l1i,
|
||||
'vod_play_url': iiiI1l
|
||||
};
|
||||
cates[IliI1i][Ii1l1III('a')](IiiIIiIi);
|
||||
}
|
||||
lli11iI = lIliIii[Ii1l1III('3')]('\x2c')[0x0][Ii1l1III('4')]();
|
||||
iiiI1l = '';
|
||||
} else if (lIliIii[Ii1l1III('1')]('\x2c') > 0x0 && /http|rtmp|rtsp|rsp/ [Ii1l1III('17')](lIliIii)) {
|
||||
let l1iiI1ii = lIliIii[Ii1l1III('3')]('\x2c');
|
||||
if (iiiI1l != '') {
|
||||
iiiI1l += '\x23';
|
||||
}
|
||||
iiiI1l += l1iiI1ii[0x0][Ii1l1III('4')]() + '\x24' + l1iiI1ii[0x1][Ii1l1III('4')]();
|
||||
}
|
||||
}
|
||||
if (iiiI1l != '') {
|
||||
let II1Iliil = iI1I1I1I[Ii1l1III('9')](Ii1l1III('29'), encodeURIComponent(lli11iI))[Ii1l1III('9')](Ii1l1III('2a'), encodeURIComponent(i1I1l1i));
|
||||
let ilI1ilI = II1Iliil[Ii1l1III('1')]('\x3c');
|
||||
let iili1I1i = II1Iliil[Ii1l1III('11')]('\x3e');
|
||||
if (ilI1ilI > -0x1 && iili1I1i > ilI1ilI) {
|
||||
let I11Ilili = II1Iliil[Ii1l1III('10')](ilI1ilI, iili1I1i + 0x1);
|
||||
let I1liliII = new RegExp(I11Ilili[Ii1l1III('9')](/<|>/g, ''));
|
||||
let lii11liI = I1liliII[Ii1l1III('17')](lli11iI) ? lli11iI[Ii1l1III('18')](I1liliII)[0x1] : Ii1l1III('2c');
|
||||
II1Iliil = II1Iliil[Ii1l1III('9')](I11Ilili, lii11liI);
|
||||
}
|
||||
let IiiIIiIi = {
|
||||
'vod_id': IliI1i + Ii1l1III('2') + cates[IliI1i][Ii1l1III('27')],
|
||||
'vod_name': lli11iI,
|
||||
'vod_pic': II1Iliil,
|
||||
'vod_remarks': '',
|
||||
'type_name': Ii1l1III('2b'),
|
||||
'vod_year': '',
|
||||
'vod_area': '',
|
||||
'vod_actor': '',
|
||||
'vod_director': '',
|
||||
'vod_content': '',
|
||||
'vod_play_from': i1I1l1i,
|
||||
'vod_play_url': iiiI1l
|
||||
};
|
||||
cates[IliI1i][Ii1l1III('a')](IiiIIiIi);
|
||||
}
|
||||
}
|
||||
return cates[IliI1i];
|
||||
}
|
||||
|
||||
function homeVod(liIIlIl1) {
|
||||
let iIl1IIii = getCateData(classes[0x0][Ii1l1III('2d')]);
|
||||
let I1l1iil = JSON[Ii1l1III('15')]({
|
||||
'list': iIl1IIii
|
||||
});
|
||||
return I1l1iil;
|
||||
}
|
||||
|
||||
function category(I1l1i1Ii, l1IiiIli, IIi1Illi, lilIliIl) {
|
||||
let IIi1i1ll = [];
|
||||
if (l1IiiIli == 0x1) {
|
||||
IIi1i1ll = getCateData(I1l1i1Ii);
|
||||
}
|
||||
let iIiiIi1i = JSON[Ii1l1III('15')]({
|
||||
'list': IIi1i1ll
|
||||
});
|
||||
return iIiiIi1i;
|
||||
}
|
||||
|
||||
function detail(lIl11iii) {
|
||||
let I1IIIil = lIl11iii[Ii1l1III('3')](Ii1l1III('2'));
|
||||
let liiiil1i = I1IIIil[0x0];
|
||||
let l1l111II = liiiil1i[Ii1l1III('3')]('\x24')[0x0];
|
||||
let Il1li11i = parseInt(I1IIIil[0x1]);
|
||||
let Iill11Ii = getCateData(liiiil1i)[Il1li11i];
|
||||
console[Ii1l1III('7')](JSON[Ii1l1III('15')](Iill11Ii));
|
||||
if (l1l111II[Ii1l1III('1')]('\x21\x21') >= 0x0) {
|
||||
l1l111II = l1l111II[Ii1l1III('9')]('\x21\x21', '');
|
||||
const ii1l1iil = Iill11Ii[Ii1l1III('2e')][Ii1l1III('3')]('\x23');
|
||||
console[Ii1l1III('7')](JSON[Ii1l1III('15')](ii1l1iil));
|
||||
let i1Ili1I = {};
|
||||
let IIIllli1 = {};
|
||||
for (const i1IiIlIl of ii1l1iil) {
|
||||
let Ill1iii1 = i1IiIlIl[Ii1l1III('3')]('\x24')[0x0];
|
||||
let IIiIII11 = l1l111II;
|
||||
if (Ill1iii1[Ii1l1III('1')](Ii1l1III('20')) > 0x0) {
|
||||
IIiIII11 = Ill1iii1[Ii1l1III('3')](Ii1l1III('20'))[0x1];
|
||||
Ill1iii1 = Ill1iii1[Ii1l1III('3')](Ii1l1III('20'))[0x0];
|
||||
}
|
||||
if (!i1Ili1I[Ii1l1III('2f')](Ill1iii1)) {
|
||||
i1Ili1I[Ill1iii1] = 0x1;
|
||||
} else {
|
||||
i1Ili1I[Ill1iii1]++;
|
||||
}
|
||||
IIiIII11 = l1l111II + (i1Ili1I[Ill1iii1] > 0x1 ? '\x20' + i1Ili1I[Ill1iii1] : '');
|
||||
if (!IIIllli1[Ii1l1III('2f')](IIiIII11)) {
|
||||
IIIllli1[IIiIII11] = [];
|
||||
}
|
||||
IIIllli1[IIiIII11][Ii1l1III('a')](Ill1iii1 + '\x24' + i1IiIlIl[Ii1l1III('3')]('\x24')[0x1]);
|
||||
}
|
||||
let III1i1ii = [];
|
||||
let iii1lIIi = [];
|
||||
for (let iliI1I1i in IIIllli1) {
|
||||
III1i1ii[Ii1l1III('a')](iliI1I1i);
|
||||
iii1lIIi[Ii1l1III('a')](IIIllli1[iliI1I1i][Ii1l1III('30')]('\x23'));
|
||||
}
|
||||
Iill11Ii[Ii1l1III('31')] = III1i1ii[Ii1l1III('30')](Ii1l1III('2'));
|
||||
Iill11Ii[Ii1l1III('2e')] = iii1lIIi[Ii1l1III('30')](Ii1l1III('2'));
|
||||
}
|
||||
return JSON[Ii1l1III('15')]({
|
||||
'list': [Iill11Ii]
|
||||
});
|
||||
}
|
||||
|
||||
function play(l1llIIii, illiiIII, lIIIiIiI) {
|
||||
return JSON[Ii1l1III('15')]({
|
||||
'parse': 0x0,
|
||||
'url': illiiIII
|
||||
});
|
||||
}
|
||||
|
||||
function search(I1lll, lI1iiIII) {
|
||||
return null;
|
||||
}
|
||||
__JS_SPIDER__ = {
|
||||
'\x69\x6e\x69\x74': init,
|
||||
'\x68\x6f\x6d\x65': home,
|
||||
'\x68\x6f\x6d\x65\x56\x6f\x64': homeVod,
|
||||
'\x63\x61\x74\x65\x67\x6f\x72\x79': category,
|
||||
'\x64\x65\x74\x61\x69\x6c': detail,
|
||||
'\x70\x6c\x61\x79': play,
|
||||
'\x73\x65\x61\x72\x63\x68': search
|
||||
};;
|
||||
iil = 'jsjiami.com.v6';
|
||||
Binary file not shown.
@@ -0,0 +1,39 @@
|
||||
var rule = {
|
||||
title: '优酷',
|
||||
host: 'https://www.%79%6f%75%6b%75.com',
|
||||
homeUrl: '',
|
||||
searchUrl: 'https://search.%79%6f%75%6b%75.com/api/search?pg=fypage&keyword=**',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
url: '/category/data?optionRefresh=1&pageNo=fypage¶ms=fyfilter',
|
||||
// url:'/category/data?pageNo=fypage¶ms=fyfilter',
|
||||
// filter_url:'&u=fyarea&s=fyyear={{fl.order}}',
|
||||
// filter_url:'{{fl|safe}}',
|
||||
filter_url: '{{fl}}',
|
||||
// filter_url:'{{fl}}',
|
||||
// filter_url:'{{fl}}',
|
||||
filter: { "电视剧": [{ "key": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "内地剧", "v": "中国内地" }, { "n": "港剧", "v": "中国香港" }, { "n": "台剧", "v": "中国台湾" }, { "n": "韩剧", "v": "韩国" }, { "n": "美剧", "v": "美国" }, { "n": "英剧", "v": "英国" }, { "n": "日剧", "v": "日本" }, { "n": "泰剧", "v": "泰国" }] }, { "key": "tags", "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": "农村" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014-2011", "v": "2011-2014" }, { "n": "更早", "v": "-2010" }] }, { "key": "status", "name": "全部规格", "value": [{ "n": "全部规格", "v": "" }, { "n": "全网独播", "v": "1" }, { "n": "优酷自制", "v": "2" }, { "n": "已完结", "v": "3" }, { "n": "即将上线", "v": "4" }, { "n": "短剧", "v": "5" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "VIP", "v": "2" }, { "n": "付费", "v": "1" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "热度最高", "v": "7" }, { "n": "最新上线", "v": "1" }, { "n": "最好评", "v": "3" }, { "n": "最多播放", "v": "2" }] }], "电影": [{ "key": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "内地", "v": "中国内地" }, { "n": "中国香港", "v": "中国香港" }, { "n": "中国台湾", "v": "中国台湾" }, { "n": "美国", "v": "美国" }, { "n": "印度", "v": "印度" }, { "n": "日韩", "v": "韩国,日本" }, { "n": "泰国", "v": "泰国" }, { "n": "欧洲", "v": "欧洲" }] }, { "key": "tags", "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": "其他" }] }, { "key": "source", "name": "全部规格", "value": [{ "n": "全部规格", "v": "" }, { "n": "院线", "v": "1" }, { "n": "网络电影", "v": "0" }, { "n": "独播", "v": "2" }, { "n": "高清修复", "v": "3" }, { "n": "1080P", "v": "4" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014-2010", "v": "2010-2014" }, { "n": "2009-2000", "v": "2000-2009" }, { "n": "90年代", "v": "1990-1999" }, { "n": "80年代", "v": "1980-1989" }, { "n": "70年代", "v": "1970-1979" }, { "n": "更早", "v": "-1969" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "会员", "v": "2" }, { "n": "点播", "v": "1" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "热度最高", "v": "7" }, { "n": "最多播放", "v": "2" }, { "n": "最新上线", "v": "1" }, { "n": "最好评", "v": "3" }] }, { "key": "tag_label_name", "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": "欢喜搭档" }] }], "综艺": [{ "key": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "内地", "v": "中国内地" }, { "n": "中国台湾", "v": "中国台湾" }, { "n": "美国", "v": "美国" }, { "n": "英国", "v": "英国" }] }, { "key": "tags", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "偶像", "v": "偶像" }, { "n": "舞蹈", "v": "舞蹈" }, { "n": "音乐", "v": "音乐" }, { "n": "情感", "v": "情感" }, { "n": "喜剧", "v": "喜剧,搞笑" }, { "n": "体育", "v": "体育" }, { "n": "游戏", "v": "游戏" }, { "n": "相声", "v": "相声" }, { "n": "婚恋", "v": "婚恋" }, { "n": "时尚", "v": "时尚" }, { "n": "晚会", "v": "晚会" }, { "n": "明星访谈", "v": "明星访谈" }, { "n": "亲子", "v": "亲子" }, { "n": "生活", "v": "生活" }, { "n": "文化", "v": "文化" }, { "n": "美食", "v": "美食" }, { "n": "旅游", "v": "旅游" }, { "n": "益智", "v": "益智" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014-2011", "v": "2011-2014" }, { "n": "更早", "v": "-2010" }] }, { "key": "status", "name": "全部规格", "value": [{ "n": "全部规格", "v": "" }, { "n": "优酷自制", "v": "2" }, { "n": "优酷独播", "v": "1" }, { "n": "电视综艺", "v": "6" }, { "n": "已完结", "v": "3" }, { "n": "即将上线", "v": "4" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "VIP", "v": "2" }, { "n": "付费", "v": "1" }] }, { "key": "sort", "name": "热度最高", "value": [{ "n": "热度最高", "v": "" }, { "n": "最新更新", "v": "8" }, { "n": "最近开播", "v": "9" }, { "n": "最多评论", "v": "4" }] }, { "key": "tag_label_name", "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": "贾玲" }] }], "动漫": [{ "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }, { "key": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "内地", "v": "中国内地" }, { "n": "日本", "v": "日本" }, { "n": "美国", "v": "美国" }, { "n": "中国台湾", "v": "中国台湾" }, { "n": "其他", "v": "其他" }] }, { "key": "tags", "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": "布袋戏" }] }, { "key": "completed", "name": "连载情况", "value": [{ "n": "连载情况", "v": "" }, { "n": "更新中", "v": "0" }, { "n": "已完结", "v": "1" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "会员", "v": "2" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "00年代", "v": "2000-2010" }, { "n": "更早", "v": "-1999" }] }, { "key": "tag_label_name", "name": "为你推荐", "value": [{ "n": "为你推荐", "v": "" }, { "n": "3D动画", "v": "3D动画" }, { "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": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "中国", "v": "中国,香港,台湾" }, { "n": "美国", "v": "美国" }, { "n": "英国", "v": "英国" }, { "n": "其他国家", "v": "其他" }] }, { "key": "show_label_type", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "动画", "v": "动画" }, { "n": "儿歌", "v": "儿歌" }, { "n": "玩具", "v": "玩具" }, { "n": "动画电影", "v": "电影" }, { "n": "绘本故事", "v": "绘本故事" }, { "n": "真人", "v": "真人" }, { "n": "少儿综艺", "v": "少儿综艺" }, { "n": "亲子", "v": "亲子" }, { "n": "探索纪实", "v": "探索纪实" }, { "n": "音频", "v": "音频" }] }, { "key": "child_tags", "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": "课程辅导" }] }, { "key": "age", "name": "全部年龄", "value": [{ "n": "全部年龄", "v": "" }, { "n": "0-2岁", "v": "0-2" }, { "n": "3-4岁", "v": "3-4" }, { "n": "5-6岁", "v": "5-6" }, { "n": "7岁以上", "v": "7-" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "付费", "v": "1" }, { "n": "VIP", "v": "2" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最新上线", "v": "1" }, { "n": "最多播放", "v": "2" }, { "n": "最多评论", "v": "4" }, { "n": "最多收藏", "v": "5" }] }], "纪录片": [{ "key": "tags", "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": "旅游" }] }, { "key": "company", "name": "全部出品", "value": [{ "n": "全部出品", "v": "" }, { "n": "BBC", "v": "bbc,british" }, { "n": "央视", "v": "央视,中央电视台,cctv,中国广播电影电视节目交易中心" }, { "n": "国家地理", "v": "国家地理" }, { "n": "Love Nature", "v": "love nature" }, { "n": "LGI", "v": "looking" }, { "n": "A&E", "v": "ae" }, { "n": "OTF", "v": "fence" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014-2011", "v": "2011-2014" }, { "n": "更早", "v": "-2010" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "会员", "v": "2" }] }, { "key": "sort", "name": "热度最高", "value": [{ "n": "热度最高", "v": "" }, { "n": "综合排序", "v": "0" }, { "n": "最新上线", "v": "1" }, { "n": "最好评", "v": "3" }, { "n": "最多收藏", "v": "5" }] }], "文化": [{ "key": "tags", "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": "有声书" }] }, { "key": "people", "name": "文化大咖", "value": [{ "n": "文化大咖", "v": "" }, { "n": "窦文涛", "v": "窦文涛" }, { "n": "马未都", "v": "马未都" }, { "n": "白岩松", "v": "白岩松" }, { "n": "梅毅", "v": "梅毅" }, { "n": "陈鲁豫", "v": "陈鲁豫" }, { "n": "樊登", "v": "樊登" }, { "n": "罗振宇", "v": "罗振宇" }, { "n": "蒋方舟", "v": "蒋方舟" }, { "n": "其他", "v": "其他" }] }, { "key": "year", "name": "全部年份", "value": [{ "n": "全部年份", "v": "" }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014-2011", "v": "2011-2014" }, { "n": "更早", "v": "-2010" }] }, { "key": "pay_type", "name": "付费类型", "value": [{ "n": "付费类型", "v": "" }, { "n": "免费", "v": "0" }, { "n": "会员", "v": "2" }] }, { "key": "sort", "name": "热度最高", "value": [{ "n": "热度最高", "v": "" }, { "n": "综合排序", "v": "0" }, { "n": "最新上线", "v": "1" }, { "n": "最好评", "v": "3" }, { "n": "最多收藏", "v": "5" }] }], "亲子": [{ "key": "qinzi_genre", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "孕产", "v": "孕产" }, { "n": "育儿知识", "v": "育儿知识,育儿达人,育儿专家,爸爸育儿,隔代育儿,育儿明星" }, { "n": "好物种草", "v": "母婴用品,测评,母婴用品种草" }, { "n": "美食", "v": "儿童美食,辅食,孕期饮食" }, { "n": "手工DIY", "v": "手工diy" }, { "n": "教育观念", "v": "教育观念" }, { "n": "亲子综艺", "v": "亲子综艺" }, { "n": "亲子互动", "v": "亲子旅游,亲子游戏,亲子阅读,玩具,早教,启蒙" }, { "n": "萌娃", "v": "萌娃" }, { "n": "搞笑", "v": "搞笑" }, { "n": "美妆", "v": "美妆" }] }, { "key": "pregnancy_stage", "name": "全部阶段", "value": [{ "n": "全部阶段", "v": "" }, { "n": "备孕", "v": "备孕" }, { "n": "孕早期", "v": "孕早" }, { "n": "孕中期", "v": "孕中" }, { "n": "孕晚期", "v": "孕晚" }] }, { "key": "show_label_baby_age", "name": "全部分龄", "value": [{ "n": "全部分龄", "v": "" }, { "n": "0-1岁", "v": "0-1" }, { "n": "1-3岁", "v": "1-3" }, { "n": "3-6岁", "v": "3-6" }, { "n": "6岁+", "v": "6-" }] }, { "key": "pay_type", "name": "全部", "value": [{ "n": "全部", "v": "" }, { "n": "免费", "v": "0" }, { "n": "会员免费", "v": "2" }] }, { "key": "sort", "name": "热度最高", "value": [{ "n": "热度最高", "v": "" }, { "n": "综合排序", "v": "0" }, { "n": "最新上线", "v": "1" }, { "n": "最多播放", "v": "2" }, { "n": "最多评论", "v": "3" }, { "n": "最多收藏", "v": "5" }] }], "教育": [{ "key": "tags", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "公开课", "v": "公开课" }, { "n": "名人名嘴", "v": "名人名嘴" }, { "n": "文化", "v": "文化" }, { "n": "艺术", "v": "艺术" }, { "n": "伦理社会", "v": "伦理社会" }, { "n": "理工", "v": "理工" }, { "n": "历史", "v": "历史" }, { "n": "心理学", "v": "心理学" }, { "n": "经济", "v": "经济" }, { "n": "管理学", "v": "管理学" }, { "n": "外语", "v": "外语" }, { "n": "法律", "v": "法律" }, { "n": "计算机", "v": "计算机" }, { "n": "哲学", "v": "哲学" }, { "n": "职业培训", "v": "职业培训" }, { "n": "家庭教育", "v": "家庭教育" }] }, { "key": "company", "name": "全部出品", "value": [{ "n": "全部出品", "v": "" }, { "n": "TED", "v": "ted" }, { "n": "耶鲁大学", "v": "耶鲁大学" }, { "n": "哈佛大学", "v": "哈佛大学" }, { "n": "斯坦福大学", "v": "斯坦福大学" }, { "n": "麻省理工学院", "v": "麻省理工学院" }] }, { "key": "pay_type", "name": "全部节目", "value": [{ "n": "全部节目", "v": "" }, { "n": "免费", "v": "0" }, { "n": "付费", "v": "1" }, { "n": "VIP", "v": "2" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最多收藏", "v": "5" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }], "搞笑": [{ "key": "division", "name": "全部专区", "value": [{ "n": "全部专区", "v": "" }, { "n": "1080P", "v": "3" }, { "n": "独播", "v": "6" }, { "n": "免费", "v": "5" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }], "生活": [{ "key": "division", "name": "全部专区", "value": [{ "n": "全部专区", "v": "" }, { "n": "1080P", "v": "3" }, { "n": "独播", "v": "6" }, { "n": "VIP", "v": "4" }, { "n": "免费", "v": "5" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }], "体育": [{ "key": "division", "name": "全部专区", "value": [{ "n": "全部专区", "v": "" }, { "n": "1080P", "v": "3" }, { "n": "独播", "v": "6" }, { "n": "VIP", "v": "4" }, { "n": "免费", "v": "5" }] }, { "key": "tags", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "篮球", "v": "篮球" }, { "n": "足球", "v": "足球" }, { "n": "台球", "v": "台球" }, { "n": "CBA", "v": "CBA" }, { "n": "钓鱼", "v": "钓鱼" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }], "音乐": [{ "key": "division", "name": "全部专区", "value": [{ "n": "全部专区", "v": "" }, { "n": "1080P", "v": "3" }, { "n": "独播", "v": "6" }, { "n": "免费", "v": "5" }] }, { "key": "main_area", "name": "全部地区", "value": [{ "n": "全部地区", "v": "" }, { "n": "中国", "v": "中国" }, { "n": "中国台湾", "v": "中国台湾" }, { "n": "中国香港", "v": "中国香港" }, { "n": "美国", "v": "美国" }, { "n": "其他", "v": "其他" }] }, { "key": "music_show_type", "name": "全部类型", "value": [{ "n": "全部类型", "v": "" }, { "n": "演唱会", "v": "演唱会" }, { "n": "live现场", "v": "live现场" }, { "n": "颁奖典礼", "v": "颁奖典礼" }, { "n": "舞蹈", "v": "舞蹈" }, { "n": "影视原声", "v": "影视原声" }, { "n": "音乐达人", "v": "音乐达人" }, { "n": "音乐教学", "v": "音乐教学" }, { "n": "音乐纪录片", "v": "音乐纪录片" }, { "n": "音乐mv", "v": "音乐mv" }, { "n": "音乐自制", "v": "音乐自制" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }], "游戏": [{ "key": "division", "name": "全部专区", "value": [{ "n": "全部专区", "v": "" }, { "n": "1080P", "v": "3" }, { "n": "独播", "v": "6" }, { "n": "VIP", "v": "4" }, { "n": "免费", "v": "5" }] }, { "key": "game_brand", "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": "英雄联盟" }] }, { "key": "tags", "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": "角色>扮演" }] }, { "key": "sort", "name": "综合排序", "value": [{ "n": "综合排序", "v": "" }, { "n": "最多播放", "v": "2" }, { "n": "最好评", "v": "3" }, { "n": "最新上线", "v": "1" }] }] },
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA',
|
||||
'Cookie': 'cna=VvNvGX3e0ywCAavVEXlnA2bg; __ysuid=1626676228345Rl1; __ayft=1652434048647; __arycid=dm-1-00; __arcms=dm-1-00; __ayvstp=85; __arpvid=1667204023100cWWdgM-1667204023112; __ayscnt=10; __aypstp=60; isg=BBwcqxvvk3BxkWQGugbLpUSf7TrOlcC_U7GAj_YdfYfvQbzLHqYGT4Hgp6m5TvgX; tfstk=c3JOByYUH20ilVucLOhh0pCtE40lZfGc-PjLHLLfuX7SWNyAiQvkeMBsIw7PWDC..; l=eBQguS-PjdJFGJT-BOfwourza77OSIRA_uPzaNbMiOCPOb1B5UxfW6yHp4T6C3GVhsGJR3rp2umHBeYBqQd-nxvOF8qmSVDmn',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏',
|
||||
class_url: '电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏',
|
||||
limit: 20,
|
||||
play_parse: true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};',
|
||||
lazy: 'js:input={parse:1,jx:1,url:input};',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
// 一级:'json:data.filterData.listData;title;img;subTitle;videoLink;summary',
|
||||
一级: '',
|
||||
一级: 'js:let d=[];MY_FL.type=MY_CATE;let fl=stringify(MY_FL);fl=encodeUrl(fl);input=input.split("{")[0]+fl;if(MY_PAGE>1){let old_session=getItem("yk_session_"+MY_CATE,"{}");if(MY_PAGE===2){input=input.replace("optionRefresh=1","session="+encodeUrl(old_session))}else{input=input.replace("optionRefresh=1","session="+encodeUrl(old_session))}}let html=fetch(input,fetch_params);try{html=JSON.parse(html);let lists=html.data.filterData.listData;let session=html.data.filterData.session;session=stringify(session);if(session!==getItem("yk_session_"+MY_CATE,"{}")){setItem("yk_session_"+MY_CATE,session)}lists.forEach(function(it){let vid;if(it.videoLink.includes("id_")){vid=it.videoLink.split("id_")[1].split(".html")[0]}else{vid="msearch:"}d.push({title:it.title,img:it.img,desc:it.summary,url:"https://search.youku.com/api/search?appScene=show_episode&showIds="+vid,content:it.subTitle})})}catch(e){log("一级列表解析发生错误:"+e.message)}setResult(d);',
|
||||
二级: '',
|
||||
二级: 'js:var d=[];VOD={};let html=request(input);let json=JSON.parse(html);if(/keyword/.test(input)){input="https://search.youku.com/api/search?appScene=show_episode&showIds="+json.pageComponentList[0].commonData.showId;json=JSON.parse(fetch(MY_URL,fetch_params))}let video_lists=json.serisesList;var name=json.sourceName;if(/优酷/.test(name)&&video_lists.length>0){let ourl="https://v.youku.com/v_show/id_"+video_lists[0].videoId+".html";let _img=video_lists[0].thumbUrl;let html=fetch(ourl,{headers:{Referer:"https://v.youku.com/","User-Agent":PC_UA}});let json=/__INITIAL_DATA__/.test(html)?html.split("window.__INITIAL_DATA__ =")[1].split(";")[0]:"{}";if(json==="{}"){log("触发了优酷人机验证");VOD.vod_remarks=ourl;VOD.vod_pic=_img;VOD.vod_name=video_lists[0].title.replace(/(\\d+)/g,"");VOD.vod_content="触发了优酷人机验证,本次未获取详情,但不影响播放("+ourl+")"}else{try{json=JSON.parse(json);let data=json.data.data;let data_extra=data.data.extra;let img=data_extra.showImgV;let model=json.data.model;let m=model.detail.data.nodes[0].nodes[0].nodes[0].data;let _type=m.showGenre;let _desc=m.updateInfo||m.subtitle;let JJ=m.desc;let _title=m.introTitle;VOD.vod_pic=img;VOD.vod_name=_title;VOD.vod_type=_type;VOD.vod_remarks=_desc;VOD.vod_content=JJ}catch(e){log("海报渲染发生错误:"+e.message);print(json);VOD.vod_remarks=name}}}if(!/优酷/.test(name)){VOD.vod_content="非自家播放源,暂无视频简介及海报";VOD.vod_remarks=name}function adhead(url){return urlencode(url)}play_url=play_url.replace("&play_url=","&type=json&play_url=");video_lists.forEach(function(it){let url="https://v.youku.com/v_show/id_"+it.videoId+".html";if(it.thumbUrl){d.push({desc:it.showVideoStage?it.showVideoStage.replace("期","集"):it.displayName,pic_url:it.thumbUrl,title:it.title,url:play_url+adhead(url)})}else if(name!=="优酷"){d.push({title:it.displayName?it.displayName:it.title,url:play_url+adhead(it.url)})}});VOD.vod_play_from=name;VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
搜索: '',
|
||||
搜索: 'js:var d=[];let html=request(input);let json=JSON.parse(html);json.pageComponentList.forEach(function(it){if(it.hasOwnProperty("commonData")){it=it.commonData;d.push({title:it.titleDTO.displayName,img:it.posterDTO.vThumbUrl,desc:it.stripeBottom,content:it.updateNotice+" "+it.feature,url:"https://search.youku.com/api/search?appScene=show_episode&showIds="+it.showId+"&appCaller=h5"})}});setResult(d);',
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
var rule = {
|
||||
title: '六月听书',
|
||||
host: 'http://m.6yueting.com',
|
||||
url: '/ys/fyclass/o2/pfypage',
|
||||
searchUrl: '/search/index/search?content=**&type=1&pageNum=fypage&pageSize=40',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable:0,//是否启用分类筛选,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
class_name:'全部分类&玄幻奇幻&修真武侠&恐怖灵异&古今言情&都市言情&穿越重生&粤语古仔&网游小说&通俗文学&历史纪实&军事&悬疑推理&ebc5系列&官场商战&儿童读物&广播剧&外文原版&评书大全&相声小品&百家讲坛&健康养生&教材&期刊头条&戏曲&脱口秀',
|
||||
class_url:'t0&t1&t2&t3&t4&t28&t5&t6&t7&t11&t12&t13&t14&t18&t15&t16&t17&t22&t8&t9&t10&t20&t21&t23&t24&t27',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
图片来源:'@Referer=http://m.6yueting.com/@User-Agent=MOBILE_UA',
|
||||
推荐:'*',
|
||||
一级: '.list-wrapper&&.item-link;h2--span&&Text;img&&src;.status&&Text;a&&href',
|
||||
二级:{
|
||||
"title":".book-title&&Text;.text:eq(0)&&Text",
|
||||
"img":".img&&src",
|
||||
"desc":".text:eq(3)&&Text;;;.text:eq(1)&&Text;.text:eq(2)&&Text",
|
||||
"content":".book-intro&&Text",
|
||||
"tabs":".operate-bar&&.total-num",
|
||||
"lists":".book-list:eq(#id)&&.list-item"
|
||||
},
|
||||
搜索:'js:let d=[];let MY_HOME="http://m.6yueting.com";let html=request(input);html=JSON.parse(html);let list=html.data.content;list.forEach(function(it){d.push({title:it.name.replace(/<.*?>/g,""),img:"http://img.6yueting.com:20001/"+it.coverUrlLocal,url:MY_HOME+"/list/"+it.code,desc:it.cdate,content:it.descXx.replace(/ /g,"")})});setResult(d);',
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
var rule = {
|
||||
title: '动漫岛',
|
||||
// host:'http://www.dmd85.com',
|
||||
// host:'http://www.88dmw.com',
|
||||
host: 'http://www.dmand5.com',
|
||||
// url:'/vod-list-id-fyclass-pg-fypage-order--by-{by}-class-{class}-year-{year}-letter--area--lang-.html',
|
||||
url: '/vod-list-id-fyclass-pg-fypage-order-fyfilter-area--lang-.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '-by-{{fl.by}}-class-{{fl.class}}-year-{{fl.year}}-letter-{{fl.letter}}',
|
||||
filter: { "1": [{ "key": "class", "name": "剧情", "value": [{ "n": "全部", "v": "" }, { "n": "冒险", "v": "1" }, { "n": "热血", "v": "2" }, { "n": "奇幻", "v": "3" }, { "n": "恋爱", "v": "4" }, { "n": "校园", "v": "5" }, { "n": "后宫", "v": "6" }, { "n": "搞笑", "v": "7" }, { "n": "青春", "v": "8" }, { "n": "百合", "v": "9" }, { "n": "科幻", "v": "14" }, { "n": "推理", "v": "13" }, { "n": "魔法", "v": "12" }, { "n": "神魔", "v": "11" }, { "n": "治愈", "v": "10" }, { "n": "竞技", "v": "59" }, { "n": "悬疑", "v": "60" }, { "n": "战争", "v": "62" }, { "n": "萝莉", "v": "63" }, { "n": "魔幻", "v": "64" }, { "n": "战斗", "v": "65" }, { "n": "歌舞", "v": "98" }, { "n": "历史", "v": "99" }, { "n": "励志", "v": "108" }, { "n": "偶像", "v": "118" }, { "n": "职场", "v": "121" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "time" }, { "n": "得分", "v": "score" }, { "n": "总排行", "v": "hits" }] }], "3": [{ "key": "class", "name": "剧情", "value": [{ "n": "全部", "v": "" }, { "n": "冒险", "v": "36" }, { "n": "热血", "v": "37" }, { "n": "奇幻", "v": "38" }, { "n": "恋爱", "v": "39" }, { "n": "恋爱", "v": "40" }, { "n": "恋爱", "v": "40" }, { "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": "66" }, { "n": "战争", "v": "68" }, { "n": "萝莉", "v": "69" }, { "n": "魔幻", "v": "70" }, { "n": "战斗", "v": "71" }, { "n": "青春", "v": "72" }, { "n": "历史", "v": "100" }, { "n": "歌舞", "v": "101" }, { "n": "恐怖", "v": "104" }, { "n": "职场", "v": "107" }, { "n": "励志", "v": "109" }, { "n": "偶像", "v": "119" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "time" }, { "n": "得分", "v": "score" }, { "n": "总排行", "v": "hits" }] }], "4": [{ "key": "class", "name": "剧情", "value": [{ "n": "全部", "v": "" }, { "n": "冒险", "v": "50" }, { "n": "热血", "v": "51" }, { "n": "武侠", "v": "52" }, { "n": "奇幻", "v": "53" }, { "n": "玄幻", "v": "54" }, { "n": "竞技", "v": "55" }, { "n": "魔幻", "v": "56" }, { "n": "科幻", "v": "57" }, { "n": "恋爱", "v": "58" }, { "n": "历史", "v": "73" }, { "n": "战斗", "v": "74" }, { "n": "搞笑", "v": "75" }, { "n": "神魔", "v": "76" }, { "n": "战争", "v": "97" }, { "n": "古风", "v": "111" }, { "n": "少女", "v": "112" }, { "n": "萝莉", "v": "113" }, { "n": "治愈", "v": "114" }, { "n": "日常", "v": "115" }, { "n": "歌舞", "v": "116" }, { "n": "偶像", "v": "120" }, { "n": "职场", "v": "123" }, { "n": "仙侠", "v": "125" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "time" }, { "n": "得分", "v": "score" }, { "n": "总排行", "v": "hits" }] }], "16": [{ "key": "class", "name": "剧情", "value": [{ "n": "全部", "v": "" }, { "n": "冒险", "v": "77" }, { "n": "热血", "v": "78" }, { "n": "奇幻", "v": "79" }, { "n": "恋爱", "v": "80" }, { "n": "校园", "v": "81" }, { "n": "后宫", "v": "82" }, { "n": "搞笑", "v": "83" }, { "n": "青春", "v": "84" }, { "n": "百合", "v": "85" }, { "n": "治愈", "v": "86" }, { "n": "神魔", "v": "87" }, { "n": "魔法", "v": "88" }, { "n": "推理", "v": "89" }, { "n": "科幻", "v": "90" }, { "n": "竞技", "v": "91" }, { "n": "悬疑", "v": "92" }, { "n": "战争", "v": "93" }, { "n": "萝莉", "v": "94" }, { "n": "魔幻", "v": "95" }, { "n": "战斗", "v": "96" }, { "n": "历史", "v": "102" }, { "n": "歌舞", "v": "103" }, { "n": "恐怖", "v": "105" }, { "n": "职场", "v": "106" }, { "n": "励志", "v": "110" }, { "n": "偶像", "v": "117" }, { "n": "职场", "v": "124" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "time" }, { "n": "得分", "v": "score" }, { "n": "总排行", "v": "hits" }] }] },
|
||||
searchUrl: '/search-pg-fypage-wd-**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA',
|
||||
},
|
||||
class_parse: '.secNacUl li;a&&Text;a&&href;.*/(\\d+)-1.html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.c1_l_wap_contact li;*;img&&src;.time:eq(0)&&Text;*',
|
||||
一级: '.list3_cn_box .cn_box2;a&&title;.list_pic&&src;.list_20 li:eq(1) span&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.o_r_contact&&li:eq(0)&&Text",
|
||||
"img": ".o_big_img_bg_b img&&src",
|
||||
"desc": ".o_r_contact&&li:eq(6)&&Text;.o_r_contact&&li:eq(5)&&Text;.o_r_contact&&li:eq(3)&&Text;.o_r_contact&&li:eq(2)&&Text;.o_r_contact&&li:eq(1)&&Text",
|
||||
"content": ".des_box&&Text",
|
||||
"tabs": ".from-tabs&&label",
|
||||
"lists": ".mn_list_li_movie:eq(#id) li"
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
var rule = {
|
||||
title: '博看听书',
|
||||
host: 'https://api.bookan.com.cn',
|
||||
homeUrl:'/voice/book/list?instance_id=25304&page=1&category_id=1305&num=24',
|
||||
url: '/voice/book/list?instance_id=25304&page=fypage&category_id=fyclass&num=24',
|
||||
detailUrl:'/voice/album/units?album_id=fyid&page=1&num=200&order=1',
|
||||
searchUrl: 'https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=**&pageNum=fypage&limitNum=20',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
class_name:'少年读物&儿童文学&国学经典&文艺少年&育儿心经&心理哲学&青春励志&历史小说&故事会&音乐戏剧&相声评书',
|
||||
class_url:'1305&1304&1320&1306&1309&1310&1307&1312&1303&1317&1319',
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
推荐:'*',
|
||||
一级:'json:data.list;name;cover;extra.author;id',
|
||||
二级:`js:
|
||||
let d = [];
|
||||
VOD = {
|
||||
vod_url: input,
|
||||
vod_name: "",
|
||||
vod_actor: "",
|
||||
vod_year: "",
|
||||
vod_director: ""
|
||||
};
|
||||
let playlists = [];
|
||||
let data = JSON.parse(request(input)).data;
|
||||
VOD.vod_name = data.list[0].id;
|
||||
VOD.vod_actor = "▶️创建于" + data.list[0].created_at;
|
||||
VOD.vod_year = data.list[0].created_at.split("-")[0];
|
||||
VOD.vod_director = "▶️更新于" + data.list[0].updated_at;
|
||||
let total = data.total;
|
||||
playlists = data.list;
|
||||
if (total > 200) {
|
||||
for (let i = 2; i < total / 200 + 1; i++) {
|
||||
let listUrl = input.split("&")[0] + "&page=" + i + "&num=200&order=1";
|
||||
let data = JSON.parse(request(listUrl)).data;
|
||||
playlists = playlists.concat(data.list)
|
||||
}
|
||||
}
|
||||
playlists.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.title,
|
||||
url: it.file
|
||||
})
|
||||
});
|
||||
VOD.vod_play_from = "bookan";
|
||||
VOD.vod_play_url = d.map(function(it) {
|
||||
return it.title + "$" + it.url
|
||||
}).join("#");
|
||||
`,
|
||||
搜索:'*',
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
// 地址发布页 https://www.czzy.site
|
||||
// 地址发布页 https://cz01.vip
|
||||
var rule = {
|
||||
title: '厂长资源',
|
||||
host: 'https://www.cz0101.com',
|
||||
// host:'https://www.czzy.site',
|
||||
// host:'https://cz01.vip',
|
||||
// hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});HOST = html.match(/推荐访问<a href="(.*)"/)[1];print("厂长跳转地址 =====> " + HOST)',
|
||||
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': 'MOBILE_UA',
|
||||
'Cookie': 'esc_search_captcha=1'
|
||||
},
|
||||
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',
|
||||
play_parse: true,
|
||||
|
||||
// lazy代码:源于海阔香雅情大佬 / 小程序:香情影视 https://pastebin.com/L4tHdvFn
|
||||
lazy: `js:
|
||||
pdfh = jsp.pdfh;
|
||||
var html = request(input);
|
||||
var ohtml = pdfh(html, '.videoplay&&Html');
|
||||
var url = pdfh(ohtml, "body&&iframe&&src");
|
||||
if (/Cloud/.test(url)) {
|
||||
var ifrwy = request(url);
|
||||
let code = ifrwy.match(/var url = '(.*?)'/)[1].split('').reverse().join('');
|
||||
let temp = '';
|
||||
for (let i = 0x0; i < code.length; i = i + 0x2) {
|
||||
temp += String.fromCharCode(parseInt(code[i] + code[i + 0x1], 0x10))
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: temp.substring(0x0, (temp.length - 0x7) / 0x2) + temp.substring((temp.length - 0x7) / 0x2 + 0x7),
|
||||
parse: 0
|
||||
}
|
||||
} else if (/decrypted/.test(ohtml)) {
|
||||
var phtml = pdfh(ohtml, "body&&script:not([src])&&Html");
|
||||
eval(getCryptoJS());
|
||||
var scrpt = phtml.match(/var.*?\\)\\);/g)[0];
|
||||
var data = [];
|
||||
eval(scrpt.replace(/md5/g, 'CryptoJS').replace('eval', 'data = '));
|
||||
input = {
|
||||
jx: 0,
|
||||
url: data.match(/url:.*?[\\'\\"](.*?)[\\'\\"]/)[1],
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
推荐: '.bt_img;ul&&li;*;*;*;*',
|
||||
double: true,
|
||||
一级: '.bt_img&&ul&&li;h3.dytit&&Text;img.lazy&&data-original;.jidi&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.moviedteail_list li&&a&&Text",
|
||||
"img": "div.dyimg img&&src",
|
||||
"desc": ".moviedteail_list li:eq(3) a&&Text;.moviedteail_list li:eq(2) a&&Text;.moviedteail_list li:eq(1) a&&Text;.moviedteail_list li:eq(7)&&Text;.moviedteail_list li:eq(5)&&Text",
|
||||
"content": ".yp_context&&Text",
|
||||
"tabs": ".mi_paly_box span",
|
||||
"lists": ".paly_list_btn:eq(#id) a"
|
||||
},
|
||||
搜索: '.search_list&&ul&&li;*;*;*;*',
|
||||
// 预处理:'rule_fetch_params.headers.Cookie="68148872828e9f4d64e7a296f6c6b6d7=5429da9a54375db451f7f9e4f16ce0ea;esc_search_captcha=1";let new_host="https://czspp.com";let new_html=request(new_host);if(/正在进行人机识别/.test(new_html)){let new_src=pd(new_html,"script&&src",new_host);log(new_src);let hhtml=request(new_src,{withHeaders:true});let json=JSON.parse(hhtml);let html=json.body;let key=html.match(new RegExp(\'var key="(.*?)"\'))[1];let avalue=html.match(new RegExp(\'value="(.*?)"\'))[1];let c="";for(let i=0;i<avalue.length;i++){let a=avalue[i];let b=a.charCodeAt();c+=b}let value=md5(c);log(value);let yz_url="https://czspp.com/a20be899_96a6_40b2_88ba_32f1f75f1552_yanzheng_ip.php?type=96c4e20a0e951f471d32dae103e83881&key="+key+"&value="+value;log(yz_url);hhtml=request(yz_url,{withHeaders:true});json=JSON.parse(hhtml);let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");let cookie=setCk?json[setCk].split(";")[0]:"";log("cookie:"+cookie);rule_fetch_params.headers.Cookie=cookie;setItem(RULE_CK,cookie)}',
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
muban.vfed.二级.title = 'h1&&Text;.fed-col-md3--span:eq(0)&&Text';
|
||||
muban.vfed.二级.desc = '.fed-col-md3:eq(3)&&Text;;;.fed-col-md6:eq(0)&&Text;.fed-col-md6--span:eq(1)&&Text';
|
||||
var rule = {
|
||||
title: '去看吧',
|
||||
模板: 'vfed',
|
||||
host: 'https://www.k9dm.com',
|
||||
// url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
url: '/index.php/vod/show/id/fyclassfyfilter.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.by}}{{fl.class}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"33": [{ "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": "year", "name": "年代", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }, { "n": "1999", "v": "/year/1999" }, { "n": "1998", "v": "/year/1998" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"21": [{ "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/其它" }] }, { "key": "year", "name": "年代", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }, { "n": "1999", "v": "/year/1999" }, { "n": "1998", "v": "/year/1998" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"50": [{ "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/其它" }] }, { "key": "year", "name": "年代", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }, { "n": "1999", "v": "/year/1999" }, { "n": "1998", "v": "/year/1998" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"24": [{ "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/其它" }] }, { "key": "year", "name": "年代", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }, { "n": "1999", "v": "/year/1999" }, { "n": "1998", "v": "/year/1998" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }],
|
||||
"22": [{ "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/其他" }] }, { "key": "year", "name": "年代", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }, { "n": "1999", "v": "/year/1999" }, { "n": "1998", "v": "/year/1998" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }] }]
|
||||
},
|
||||
class_parse: '.fed-pops-list:eq(0)&&li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
var rule = {
|
||||
title:'啦啦DJ',
|
||||
host:'http://www.laladj.com',
|
||||
// url: '/dance/id-fyclass-fypage.html',
|
||||
url: '/fyclass-0-0-fypage',
|
||||
searchUrl: '/search?search=**&page=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout:5000,//网站的全局请求超时,默认是3000毫秒
|
||||
class_parse:'.navbar&&.xcls0;a&&Text;a&&href;com/(.*)',
|
||||
play_parse:true,
|
||||
lazy:'js:input=input.replace("www","m")',
|
||||
limit:6,
|
||||
推荐: '.center_fl&&.recommended-list;li;img&&alt;img&&src;.index-music-hit--b&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级:'.list_musiclist&&.sbg;.t1&&Text;img&&src;.sc_2:eq(0)&&Text;a&&href',
|
||||
二级: "*",
|
||||
搜索: "*",
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
globalThis.getTime = function(){
|
||||
let ts= Math.round(new Date().getTime()/1000).toString();
|
||||
log('获取时间戳:'+ts);
|
||||
return ts
|
||||
}
|
||||
|
||||
globalThis.signUrl=function(json){
|
||||
// 获取所有节点的名称并按字母顺序排序
|
||||
let json1=JSON.parse(json);
|
||||
var sortedKeys = Object.keys(json1).sort();
|
||||
// 遍历排好序的节点名称列表,并打印相应的值
|
||||
let s='';
|
||||
for (let key in sortedKeys){
|
||||
let value=json1[sortedKeys[key]];
|
||||
if(value!=undefined){
|
||||
s=s+value;
|
||||
}
|
||||
}
|
||||
//log(s);
|
||||
//log(md5(s+"alskeuscli"));
|
||||
s=json.slice(0,-1)+",\"sign\":\""+md5(s+"alskeuscli")+"\"\}";
|
||||
log(s);
|
||||
return s;
|
||||
}
|
||||
|
||||
globalThis.posturl=function(url,json){
|
||||
let html= fetch(url, {
|
||||
body: JSON.parse(signUrl(json)),
|
||||
headers: {"User-Agent": "okhttp/3.12.3"},
|
||||
method: "POST"
|
||||
}, true);
|
||||
return JSON.parse(html);
|
||||
}
|
||||
var rule = {
|
||||
title: '喵次元[APP]',
|
||||
host: 'https://cym.zhui.la/api.php',
|
||||
hostJs:`
|
||||
var json2 = '{"versionName":"5.6.9","uuid":"9cc01079c64e2495","version":"4835d0a2","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
let url="https://cym.zhui.la/api.php/type/get_list";
|
||||
let jo=posturl(url,json2).data.list;
|
||||
let filters = {};
|
||||
let cb={"class":"类型","area":"地区","lang":"语言","year":"年份","star":"演员","director":"导演","state":"状态","version":"版本"};
|
||||
let class1=[];
|
||||
jo.forEach(function(tp) {
|
||||
rule.class_name=rule.class_name +"&"+tp['type_name'];
|
||||
rule.class_url=rule.class_url +"&"+tp['type_id'];
|
||||
let ep=tp['type_extend'];
|
||||
let classes = [];
|
||||
for (let key in ep){
|
||||
let value=ep[key];
|
||||
|
||||
if (value.length>1){
|
||||
class1.append(key);
|
||||
//写成{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"}]}这种格式
|
||||
let dd=value.toString().split(',');
|
||||
var s=[];
|
||||
dd.forEach(function(i){
|
||||
s.append({'n':i,'v':i});
|
||||
})
|
||||
let ss={"key":key,"name":cb[key],"value":s};
|
||||
classes.append(ss);
|
||||
}
|
||||
}
|
||||
filters[tp['type_id']]=classes;
|
||||
});
|
||||
class1=Array.from(new Set(class1)).sort();
|
||||
let s=""
|
||||
class1.forEach(function(tp) {
|
||||
s=s+"&" + tp +"={{fl."+tp+"}}";
|
||||
})
|
||||
log(s);
|
||||
rule.filter_url=s;
|
||||
rule.filter=filters;
|
||||
log(rule.filter);
|
||||
log(rule.class_name);
|
||||
log(rule.class_url);
|
||||
`,
|
||||
|
||||
homeUrl:'?hpindigo=**&page=fypage',
|
||||
url:'?t=fyclass&page=fypage',
|
||||
filter_url:'',
|
||||
filter: {},
|
||||
detailUrl:'?ids=',
|
||||
searchUrl: '?hpindigo=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable:1,//是否启用分类筛选,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
timeout:10000,
|
||||
class_name:'全部', // 分类筛选 /api.php/app/nav
|
||||
class_url:'0',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
log("*************测试*************");
|
||||
let dd=input.split("&");
|
||||
let ju_id=dd[0];
|
||||
let plyer=dd[1];
|
||||
let video_id=dd[2];
|
||||
var json2 = '{"player_id":"'+plyer+'","ju_id":"'+ju_id+'","vod_id":"'+video_id+'","versionName":"5.6.9","uuid":"3899af59c0b12b98","version":"4835d0a2","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
let url="https://cym.zhui.la/api.php/video/get_definition";
|
||||
let html = posturl(url,json2).data[0].url.trim();
|
||||
log(html);
|
||||
//input=aesX("AES/CBC/PKCS7",false,html,true,"sLunqcoH85Nm/jDmFKns7A==","fedcba9876543210",false);
|
||||
//log(input);
|
||||
eval(getCryptoJS);
|
||||
var key = CryptoJS.enc.Hex.parse("734C756E71636F4838354E6D2F6A446D464B6E7337413D3D0000000000000000");
|
||||
var iv = CryptoJS.enc.Utf8.parse("fedcba9876543210");
|
||||
input=(CryptoJS.AES.decrypt(html, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
})).toString(CryptoJS.enc.Utf8)
|
||||
log(input)
|
||||
`,
|
||||
//lazy:'js:input=/m3u8|mp4|flv/.test(input)?{jx:0,url:input,parse:0}:{jx:1,url:input,parse:1}',
|
||||
limit:6,
|
||||
// 推荐:'json:items;*;*;*;*',
|
||||
推荐:'json:data.sections[0].items;*;*;*;*',
|
||||
推荐:`js:
|
||||
log(input);
|
||||
let page=input.split("&")[1].split("=")[1];
|
||||
log(page);
|
||||
var json2 = '{"page":"'+page+'","versionName":"5.6.9","uuid":"9cc01079c64e2495","version":"4835d0a2","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
let url="https://cym.zhui.la/api.php/video/index";
|
||||
let jo = posturl(url,json2);
|
||||
let vodList = jo.data;
|
||||
log(vodList);
|
||||
let videos=[];
|
||||
vodList.forEach(function(vod) {
|
||||
vod.video.forEach(function(vod1) {
|
||||
let aid = (vod1["vod_id"]);
|
||||
let title = vod1["vod_name"];
|
||||
let img = vod1["vod_pic"];
|
||||
let remark = vod1["vod_remarks"];
|
||||
videos.push({
|
||||
vod_id: aid,
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: remark
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
VODS=videos;
|
||||
`,
|
||||
一级:`js:
|
||||
log(input);
|
||||
let canshu=input.split("?")[1].split("&");
|
||||
let dd={};
|
||||
canshu.forEach(function(key){
|
||||
log(key);
|
||||
let k=key.split("=");
|
||||
dd[k[0]]=k[1];
|
||||
})
|
||||
var json2 = '{"type_id":"'+dd["t"]+'","vod_year":"'+dd["year"]+'","limit":"20","orderby":"","vod_area":"'+dd["area"]+'","vod_class":"'+dd["class"]+'","page":"'+dd["page"]+'","versionName":"5.6.9","uuid":"9cc01079c64e2495","version":"4835d0a2","vod_name":"","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
log(json2);
|
||||
let url="https://cym.zhui.la/api.php/video/get_list";
|
||||
let jo = posturl(url,json2);
|
||||
var d=[];
|
||||
jo.data.list.forEach(function(it){
|
||||
d.push({
|
||||
title:it.vod_name,
|
||||
img:it.vod_pic,
|
||||
desc:it.vod_remarks,
|
||||
url:it.vod_id,
|
||||
content:it.vod_blurb})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级:`js:
|
||||
log(orId);
|
||||
var json2 = '{"vod_id":"'+orId+'","versionName":"5.6.9","uuid":"3899af59c0b12b98","version":"4835d0a2","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
log(json2);
|
||||
let url="https://cym.zhui.la/api.php/video/get_detail";
|
||||
let jo = posturl(url,json2);
|
||||
let node = jo.data;
|
||||
VOD = {
|
||||
vod_id: node["vod_id"],
|
||||
vod_name: node["vod_name"],
|
||||
vod_pic: node["vod_pic"],
|
||||
type_name: node["vod_class"],
|
||||
vod_year: node["vod_year"],
|
||||
vod_area: node["vod_area"],
|
||||
vod_remarks: node["vod_remarks"],
|
||||
vod_actor: node["vod_actor"],
|
||||
vod_director: node["vod_director"],
|
||||
vod_content: node["vod_content"]
|
||||
};
|
||||
let episodes = node.player;
|
||||
let playMap = {};
|
||||
episodes.forEach(function(ep) {
|
||||
let playurls = ep["code"];
|
||||
let source = ep["name"];
|
||||
log (playurls);
|
||||
log (source);
|
||||
//这里分别获取线路
|
||||
var json2 = '{"limit":"5000","vod_id":"'+orId+'","page":"1","versionName":"5.6.9","uuid":"9cc01079c64e2495","version":"4835d0a2","versionCode":"35","player":"'+playurls+'","ctime":"'+getTime()+'"}';
|
||||
log(json2);
|
||||
let url="https://cym.zhui.la/api.php/video/get_player";
|
||||
let jo1 = posturl(url,json2);
|
||||
jo1.data.list.forEach(function(playurl) {
|
||||
if (!playMap.hasOwnProperty(source)) {
|
||||
playMap[source] = []
|
||||
}
|
||||
playMap[source].append(playurl["drama"]+"$"+playurl["ju_id"]+"&"+playurl["plyer"]+"&"+playurl["video_id"])
|
||||
})
|
||||
});
|
||||
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
|
||||
Object.keys(playMap)
|
||||
.forEach(function(key) {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key].join("#"))
|
||||
});
|
||||
let vod_play_from = playFrom.join("$$$");
|
||||
let vod_play_url = playList.join("$$$");
|
||||
VOD["vod_play_from"] = vod_play_from;
|
||||
VOD["vod_play_url"] = vod_play_url
|
||||
`,
|
||||
搜索:`js:
|
||||
let page=input.split("&")[1].split("=")[1];
|
||||
log(page);
|
||||
var json2 = '{"vod_year":"","limit":"20","orderby":"up","vod_area":"","vod_class":"","page":"'+page+'","versionName":"5.6.9","uuid":"9cc01079c64e2495","version":"4835d0a2","vod_name":"'+KEY+'","versionCode":"35","ctime":"'+getTime()+'"}';
|
||||
let url="https://cym.zhui.la/api.php/video/get_list";
|
||||
let jo = posturl(url,json2);
|
||||
var d=[];
|
||||
jo.data.list.forEach(function(it){
|
||||
d.push({
|
||||
title:it.vod_name,
|
||||
img:it.vod_pic,
|
||||
desc:it.vod_remarks,
|
||||
url:it.vod_id})
|
||||
});
|
||||
setResult(d);`,
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
var rule = {
|
||||
title: '奇珍异兽',
|
||||
host: 'https://www.iqiyi.com',
|
||||
homeUrl: '',
|
||||
// detailUrl:'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid=fyid&size=2000&page=1',
|
||||
detailUrl: 'https://pcw-api.iqiyi.com/video/video/videoinfowithuser/fyid?agent_type=1&authcookie=&subkey=fyid&subscribe=1',
|
||||
searchUrl: 'https://search.video.iqiyi.com/o?if=html5&key=**&pageNum=fypage&pos=1&pageSize=24&site=iqiyi',
|
||||
searchable: 2,
|
||||
multi: 1,
|
||||
filterable: 1,
|
||||
filter: { '1': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '华语', 'v': 1 }, { 'n': '香港地区', 'v': 28997 }, { 'n': '美国', 'v': 2 }, { 'n': '欧洲', 'v': 3 }, { 'n': '韩国', 'v': 4 }, { 'n': '日本', 'v': 308 }, { 'n': '泰国', 'v': 1115 }, { 'n': '印度', 'v': 28999 }, { 'n': '其它', 'v': 5 }] }, { 'key': '18001', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '喜剧', 'v': 8 }, { 'n': '爱情', 'v': 6 }, { 'n': '动作', 'v': 11 }, { 'n': '枪战', 'v': 131 }, { 'n': '犯罪', 'v': 291 }, { 'n': '惊悚', 'v': 128 }, { 'n': '恐怖', 'v': 10 }, { 'n': '悬疑', 'v': 289 }, { 'n': '动画', 'v': 12 }, { 'n': '家庭', 'v': 27356 }, { 'n': '奇幻', 'v': 1284 }, { 'n': '魔幻', 'v': 129 }, { 'n': '科幻', 'v': 9 }, { 'n': '战争', 'v': 7 }, { 'n': '青春', 'v': 130 }] }, { 'key': '27396', 'name': '规格', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '巨制', 'v': 27397 }, { 'n': '院线', 'v': 27815 }, { 'n': '独播', 'v': 30149 }, { 'n': '网络电影', 'v': 27401 }] }], '2': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': 15 }, { 'n': '港剧', 'v': 16 }, { 'n': '韩剧', 'v': 17 }, { 'n': '美剧', 'v': 18 }, { 'n': '日剧', 'v': 309 }, { 'n': '泰剧', 'v': 1114 }, { 'n': '台湾地区', 'v': 1117 }, { 'n': '英剧', 'v': 28916 }, { 'n': '其它', 'v': 19 }] }, { 'key': '18003', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '自制', 'v': 11992 }, { 'n': '古装', 'v': 24 }, { 'n': '言情', 'v': 20 }, { 'n': '武侠', 'v': 23 }, { 'n': '偶像', 'v': 30 }, { 'n': '家庭', 'v': 1654 }, { 'n': '青春', 'v': 1653 }, { 'n': '都市', 'v': 24064 }, { 'n': '喜剧', 'v': 135 }, { 'n': '战争', 'v': 27916 }, { 'n': '军旅', 'v': 1655 }, { 'n': '谍战', 'v': 290 }, { 'n': '悬疑', 'v': 32 }, { 'n': '罪案', 'v': 149 }, { 'n': '穿越', 'v': 148 }, { 'n': '宫廷', 'v': 139 }, { 'n': '历史', 'v': 21 }, { 'n': '神话', 'v': 145 }, { 'n': '科幻', 'v': 34 }, { 'n': '年代', 'v': 27 }, { 'n': '农村', 'v': 29 }, { 'n': '商战', 'v': 140 }, { 'n': '剧情', 'v': 24063 }, { 'n': '奇幻', 'v': 27881 }, { 'n': '网剧', 'v': 24065 }, { 'n': '竖短片', 'v': 32839 }] }], '3': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '国内', 'v': 20323 }, { 'n': '国外', 'v': 20324 }] }, { 'key': '18004', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '人文', 'v': 70 }, { 'n': '美食', 'v': 33908 }, { 'n': '医疗', 'v': 33924 }, { 'n': '自然', 'v': 33933 }, { 'n': '萌宠', 'v': 33945 }, { 'n': '财经', 'v': 33953 }, { 'n': '罪案', 'v': 33960 }, { 'n': '竞技', 'v': 33967 }, { 'n': '灾难', 'v': 33974 }, { 'n': '军事', 'v': 72 }, { 'n': '历史', 'v': 74 }, { 'n': '探险', 'v': 73 }, { 'n': '社会', 'v': 71 }, { 'n': '科技', 'v': 28119 }, { 'n': '旅游', 'v': 310 }] }, { 'key': '28467', 'name': '出品方', 'value': [{ 'n': '全部', 'v': '' }, { 'n': 'BBC', 'v': 28468 }, { 'n': '美国历史频道', 'v': 28470 }, { 'n': '探索频道', 'v': 28471 }, { 'n': '央视记录', 'v': 28472 }, { 'n': '北京纪实频道', 'v': 28473 }, { 'n': '上海纪实频道', 'v': 28474 }, { 'n': '朗思文化', 'v': 28476 }, { 'n': 'CNEX', 'v': 28477 }, { 'n': '五星传奇', 'v': 28478 }, { 'n': 'IMG', 'v': 28479 }, { 'n': 'NHK', 'v': 28480 }, { 'n': '爱奇艺出品', 'v': 31283 }, { 'n': 'Netflix', 'v': 31286 }] }, { 'key': '29076', 'name': '片种', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '纪录电影', 'v': 29077 }, { 'n': '系列纪录片', 'v': 29078 }, { 'n': '网络纪录片', 'v': 29082 }, { 'n': '纪实栏目', 'v': 29083 }] }, { 'key': '31294', 'name': '时长', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '微纪录', 'v': 29079 }, { 'n': '长纪录', 'v': 29080 }, { 'n': '短纪录', 'v': 29081 }] }], '4': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '中国大陆', 'v': 37 }, { 'n': '日本', 'v': 38 }, { 'n': '韩国', 'v': 1106 }, { 'n': '欧美', 'v': 30218 }, { 'n': '其它', 'v': 40 }] }, { 'key': '30219', 'name': '版本', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '动画', 'v': 30220 }, { 'n': '特摄', 'v': 30223 }, { 'n': '布袋戏', 'v': 30224 }, { 'n': '特别篇', 'v': 32782 }, { 'n': '动态漫画', 'v': 32783 }, { 'n': '动画电影', 'v': 32784 }, { 'n': '竖版视频', 'v': 32785 }, { 'n': '轻动画', 'v': 33482 }, { 'n': '短剧', 'v': 33483 }] }, { 'key': '30225', 'name': '风格', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '搞笑', 'v': 30230 }, { 'n': '热血', 'v': 30232 }, { 'n': '催泪', 'v': 30233 }, { 'n': '治愈', 'v': 30234 }, { 'n': '励志', 'v': 30237 }, { 'n': '机战', 'v': 30241 }, { 'n': '恋爱', 'v': 30243 }, { 'n': '科幻', 'v': 30245 }, { 'n': '奇幻', 'v': 30247 }, { 'n': '推理', 'v': 30248 }, { 'n': '校园', 'v': 30249 }, { 'n': '日常', 'v': 30252 }, { 'n': '历史', 'v': 30254 }, { 'n': '美食', 'v': 30255 }, { 'n': '职场', 'v': 30256 }, { 'n': '偶像', 'v': 30258 }, { 'n': '泡面', 'v': 30265 }, { 'n': '冒险', 'v': 30267 }, { 'n': '竞技', 'v': 30268 }, { 'n': '合家欢', 'v': 30270 }, { 'n': '武侠', 'v': 32792 }, { 'n': '玄幻', 'v': 32793 }] }, { 'key': '32795', 'name': '新类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '轻小说改编', 'v': 32796 }, { 'n': '漫画改编', 'v': 32797 }, { 'n': '游戏改编', 'v': 32798 }, { 'n': '原创', 'v': 32799 }] }], '6': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': 151 }, { 'n': '港台', 'v': 152 }, { 'n': '韩国', 'v': 33306 }, { 'n': '欧美', 'v': 154 }, { 'n': '其它', 'v': 1113 }] }, { 'key': '18014', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '播报', 'v': 155 }, { 'n': '访谈', 'v': 156 }, { 'n': '游戏', 'v': 158 }, { 'n': '晚会', 'v': 292 }, { 'n': '曲艺', 'v': 293 }, { 'n': '脱口秀', 'v': 2118 }, { 'n': '真人秀', 'v': 2224 }, { 'n': '竞技', 'v': 30278 }, { 'n': '爱奇艺出品', 'v': 30279 }, { 'n': '竞演', 'v': 33860 }] }, { 'key': '33162', 'name': '题材', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '音乐', 'v': 33163 }, { 'n': '舞蹈', 'v': 33172 }, { 'n': '文化', 'v': 33173 }, { 'n': '美食', 'v': 33182 }, { 'n': '伦理', 'v': 33184 }, { 'n': '相亲', 'v': 33193 }, { 'n': '纪实', 'v': 33195 }, { 'n': '生活', 'v': 33196 }, { 'n': '亲子', 'v': 33197 }, { 'n': '少儿', 'v': 33198 }, { 'n': '财经', 'v': 33199 }, { 'n': '健康', 'v': 33200 }, { 'n': '时尚', 'v': 33203 }, { 'n': '旅游', 'v': 33205 }, { 'n': '教育', 'v': 33206 }, { 'n': '其它', 'v': 33220 }, { 'n': '爱情', 'v': 33316 }, { 'n': '搞笑', 'v': 33317 }, { 'n': '益智', 'v': 33318 }, { 'n': '职场', 'v': 33319 }, { 'n': '语言', 'v': 33530 }, { 'n': '辩论', 'v': 33531 }, { 'n': '演讲', 'v': 33843 }] }], '5': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': 'three_category_id', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': 221 }, { 'n': '港台', 'v': 220 }, { 'n': '欧美', 'v': 219 }, { 'n': '日韩', 'v': 218 }, { 'n': '拉美', 'v': 217 }, { 'n': '亚洲地区', 'v': 216 }, { 'n': '非洲', 'v': 215 }] }, { 'key': '18009', 'name': '语种', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '普通话', 'v': 91 }, { 'n': '粤语', 'v': 92 }, { 'n': '闽南语', 'v': 93 }, { 'n': '英语', 'v': 94 }, { 'n': '日语', 'v': 95 }, { 'n': '韩语', 'v': 96 }, { 'n': '其它', 'v': 97 }] }, { 'key': '23554', 'name': '音乐类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '单曲MV', 'v': 23556 }, { 'n': '单曲现场', 'v': 23557 }, { 'n': '演唱会', 'v': 23558 }, { 'n': '新闻', 'v': 23559 }, { 'n': '访谈', 'v': 23560 }, { 'n': '音乐记录', 'v': 23561 }, { 'n': '音乐周边', 'v': 23562 }, { 'n': '音乐节目', 'v': 23563 }, { 'n': '影视原声', 'v': 23564 }, { 'n': '音乐短片', 'v': 23565 }, { 'n': '其他', 'v': 23566 }] }], '16': [{ 'key': 'mode', 'name': '综合排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '热播榜', 'v': 11 }, { 'n': '好评榜', 'v': 8 }, { 'n': '新上线', 'v': 4 }] }, { 'key': 'year', 'name': '全部年份', 'value': [{ 'n': '全部', 'v': '' }, { "n": "2024", "v": "2024" }, { 'n': '2023', 'v': 2023 }, { 'n': '2022', 'v': 2022 }, { 'n': '2021', 'v': 2021 }, { 'n': '2020', 'v': 2020 }, { 'n': '2019', 'v': 2019 }, { 'n': '2018', 'v': 2018 }, { 'n': '2017', 'v': 2017 }, { 'n': '2016-2011', 'v': '2011_2016' }, { 'n': '2010-2000', 'v': '2000_2010' }, { 'n': '90年代', 'v': '1990_1999' }, { 'n': '80年代', 'v': '1980_1989' }, { 'n': '更早', 'v': '1964_1979' }] }, { 'key': 'is_purchase', 'name': '全部资费', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '免费', 'v': 0 }, { 'n': '会员', 'v': 1 }, { 'n': '付费', 'v': 2 }] }, { 'key': '18061', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '喜剧', 'v': 1296 }, { 'n': '爱情', 'v': 1297 }, { 'n': '动作', 'v': 1298 }, { 'n': '奇幻', 'v': 1299 }, { 'n': '惊悚', 'v': 1300 }, { 'n': '悬疑', 'v': 1301 }, { 'n': '青春', 'v': 1302 }] }] },
|
||||
// url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&is_purchase=&mode=24&page_id=fypage&ret_num=48&three_category_id=',
|
||||
url: 'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&page_id=fypage&ret_num=48',
|
||||
filter_url: 'is_purchase={{fl.is_purchase}}&mode={{fl.mode}}&three_category_id={{fl.three_category_id}}&market_release_date_level={{fl.year}}',
|
||||
// url:'https://pcw-api.iqiyi.com/search/video/videolists?channel_id=fyclass&pageNum=fypage&pageSize=24&data_type=1&site=iqiyi',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电影&电视剧&纪录片&动漫&综艺&音乐&网络电影',
|
||||
class_url: '1&2&3&4&6&5&16',
|
||||
limit: 20,
|
||||
// play_parse:true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
// 一级:'json:.data.list;.name;.imageUrl;.latestOrder;.albumId',
|
||||
推荐: '',
|
||||
// 推荐:'js:let d=[];fetch_params.headers["user-agent"]=PC_UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=fetch(HOST,fetch_params);let lists=pdfa(html,".qy-mod-li");lists.forEach(function(it){try{let title=pdfh(it,"p.sub&&title");let desc=pdfh(it,".qy-mod-label&&Text");let pic_url=pd(it,"img&&src");d.push({title:title,desc:desc,img:pic_url})}catch(e){}});res=setResult(d);',
|
||||
一级: 'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=request(input);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);',
|
||||
// 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=fetch(input,fetch_params);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);',
|
||||
// 一级:'json:.data.list;.name;.imageUrl;.playUrl;.latestOrder',
|
||||
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
// 二级:{is_json:1,"title":"data.name+data.subtitle;data.latestOrder","img":"data.imageUrl","desc":"data.categories;data.areas","content":"data.description","tabs":"data.name","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
二级: '',
|
||||
二级: 'js:let d=[];let html=request(input);let json=JSON.parse(html).data;VOD={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};VOD.vod_name=json.name;try{if(json.latestOrder){VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){VOD.vod_remarks=json.subtitle}VOD.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}VOD.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");VOD.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){let vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});VOD.vod_actor=vod_actors.join(",")}VOD.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i<total/200+1;i++){let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page="+i;let data=JSON.parse(request(listUrl)).data;playlists=playlists.concat(data.epsodelist)}}}}playlists.forEach(function(it){d.push({title:it.shortTitle||"第"+it.order+"集",desc:it.subtitle||it.focus||it.period,img:it.imageUrl.replace(".jpg","_480_270.jpg?caplist=jpg,webp"),url:it.playUrl})});VOD.vod_play_from="qiyi";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
// 二级:'js:let d=[];let html=request(input);let json=JSON.parse(html).data;vod={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};vod.vod_name=json.name;try{if(json.latestOrder){vod.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{vod.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){vod.vod_remarks=json.subtitle}vod.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}vod.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");vod.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});vod.vod_actor=vod_actors.join(",")}vod.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i<total/200+1;i++){let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page="+i;let data=JSON.parse(request(listUrl)).data;playlists=playlists.concat(data.epsodelist)}}}}playlists.forEach(function(it){d.push({title:it.shortTitle||"第"+it.order+"集",desc:it.subtitle||it.focus||it.period,img:it.imageUrl.replace(".jpg","_480_270.jpg?caplist=jpg,webp"),url:it.playUrl})});vod.vod_play_from="qiyi";vod.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
搜索: 'json:.data.docinfos;.albumDocInfo.albumTitle;.albumDocInfo.albumVImage;.albumDocInfo.channel;.albumDocInfo.albumId;.albumDocInfo.tvFocus',
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
var rule = {
|
||||
title: '奇米动漫',
|
||||
host: 'http://www.qimiqimi.net',
|
||||
url: '/show/fyclassfyfilter.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.by}}{{fl.class}}{{fl.letter}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"xinfan": [{ "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/日常" }] }, { "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": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }] }, { "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" }] }],
|
||||
"riman": [{ "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/日常" }] }, { "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": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }] }, { "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" }] }],
|
||||
"guoman": [{ "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/日常" }] }, { "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": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }] }, { "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" }] }],
|
||||
"jcdm": [{ "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/日常" }] }, { "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": "2024", "v": "/year/2024" }, { "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" }, { "n": "2003", "v": "/year/2003" }, { "n": "2002", "v": "/year/2002" }, { "n": "2001", "v": "/year/2001" }, { "n": "2000", "v": "/year/2000" }] }, { "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" }] }]
|
||||
},
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'PC_UA',
|
||||
},
|
||||
class_parse: '#nav li;a&&Text;a&&href;.*/(\\w+).html',
|
||||
cate_exclude: '番组专题|最近更新',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
推荐: '*;*;*;.text&&Text;*',
|
||||
一级: '.img-list li;a&&title;img&&src;i&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;dl.fn-left:eq(3)&&Text",
|
||||
"img": ".detail-pic&&img&&src",
|
||||
"desc": "dl.fn-left:eq(2)&&Text;;;.nyzhuy--dt&&Text;.fn-right:eq(0)--dt&&Text",
|
||||
"content": ".tjuqing&&Text",
|
||||
"tabs": ".down-title h2",
|
||||
"lists": ".video_list:eq(#id) a"
|
||||
},
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
detailUrl: '/detail/fyid.html', //非必填,二级详情拼接链接
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
// 发布页 https://acgfans.org/pub.html
|
||||
var rule={
|
||||
title:'怡萱动漫',
|
||||
// host:'https://www.yxdmlove.com',
|
||||
host:'https://acgfans.org/pub.html',
|
||||
hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,"p:eq(0)&&a&&Text");print(src);HOST=src',//网页域名根动态抓取js代码。通过HOST=赋值
|
||||
// url:'/category.html?channel=17&zhonglei=fyclass&orderby=pubdate&totalresult=2999&pageno=fypage',
|
||||
url:'/category.html?channel=17&zhonglei=fyclassfyfilter&pageno=fypage',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'&{{fl.by or "orderby=pubdate"}}&{{fl.year}}&{{fl.area}}&{{fl.sta}}&{{fl.class}}',
|
||||
filter: {
|
||||
"TV":[{"key":"sta","name":"进度","value":[{"n":"全部","v":""},{"n":"连载中","v":"status=连载中"},{"n":"已完结","v":"status=已完结"},{"n":"未播放","v":"status=未播放"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"area=日本"},{"n":"中国","v":"area=中国"},{"n":"欧美","v":"area=欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"year=2024"},{"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":"更早","v":"year=2010前"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"冒险","v":"jqlx=冒险"},{"n":"热血","v":"jqlx=热血"},{"n":"爱情","v":"jqlx=爱情"},{"n":"搞笑","v":"jqlx=搞笑"},{"n":"后宫","v":"jqlx=后宫"},{"n":"校园","v":"jqlx=校园"},{"n":"机战","v":"jqlx=机战"},{"n":"幻想","v":"jqlx=幻想"},{"n":"科幻","v":"jqlx=科幻"},{"n":"竞技","v":"jqlx=竞技"},{"n":"百合","v":"jqlx=百合"},{"n":"耽美","v":"jqlx=耽美"},{"n":"悬疑","v":"jqlx=悬疑"},{"n":"剧情","v":"jqlx=剧情"},{"n":"战争","v":"jqlx=战争"},{"n":"恐怖","v":"jqlx=恐怖"},{"n":"运动","v":"jqlx=运动"},{"n":"动作","v":"jqlx=动作"},{"n":"童话","v":"jqlx=童话"},{"n":"历史","v":"jqlx=历史"},{"n":"真人","v":"jqlx=真人"},{"n":"女性向","v":"jqlx=女性向"},{"n":"泡面番","v":"jqlx=泡面番"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"orderby=pubdate"},{"n":"热度","v":"orderby=click"}]}],
|
||||
"剧场版":[{"key":"sta","name":"进度","value":[{"n":"全部","v":""},{"n":"连载中","v":"status=连载中"},{"n":"已完结","v":"status=已完结"},{"n":"未播放","v":"status=未播放"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"area=日本"},{"n":"中国","v":"area=中国"},{"n":"欧美","v":"area=欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"year=2024"},{"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":"更早","v":"year=2010前"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"冒险","v":"jqlx=冒险"},{"n":"热血","v":"jqlx=热血"},{"n":"爱情","v":"jqlx=爱情"},{"n":"搞笑","v":"jqlx=搞笑"},{"n":"后宫","v":"jqlx=后宫"},{"n":"校园","v":"jqlx=校园"},{"n":"机战","v":"jqlx=机战"},{"n":"幻想","v":"jqlx=幻想"},{"n":"科幻","v":"jqlx=科幻"},{"n":"竞技","v":"jqlx=竞技"},{"n":"百合","v":"jqlx=百合"},{"n":"耽美","v":"jqlx=耽美"},{"n":"悬疑","v":"jqlx=悬疑"},{"n":"剧情","v":"jqlx=剧情"},{"n":"战争","v":"jqlx=战争"},{"n":"恐怖","v":"jqlx=恐怖"},{"n":"运动","v":"jqlx=运动"},{"n":"动作","v":"jqlx=动作"},{"n":"童话","v":"jqlx=童话"},{"n":"历史","v":"jqlx=历史"},{"n":"真人","v":"jqlx=真人"},{"n":"女性向","v":"jqlx=女性向"},{"n":"泡面番","v":"jqlx=泡面番"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"orderby=pubdate"},{"n":"热度","v":"orderby=click"}]}],
|
||||
"OVA":[{"key":"sta","name":"进度","value":[{"n":"全部","v":""},{"n":"连载中","v":"status=连载中"},{"n":"已完结","v":"status=已完结"},{"n":"未播放","v":"status=未播放"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"area=日本"},{"n":"中国","v":"area=中国"},{"n":"欧美","v":"area=欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"year=2024"},{"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":"更早","v":"year=2010前"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"冒险","v":"jqlx=冒险"},{"n":"热血","v":"jqlx=热血"},{"n":"爱情","v":"jqlx=爱情"},{"n":"搞笑","v":"jqlx=搞笑"},{"n":"后宫","v":"jqlx=后宫"},{"n":"校园","v":"jqlx=校园"},{"n":"机战","v":"jqlx=机战"},{"n":"幻想","v":"jqlx=幻想"},{"n":"科幻","v":"jqlx=科幻"},{"n":"竞技","v":"jqlx=竞技"},{"n":"百合","v":"jqlx=百合"},{"n":"耽美","v":"jqlx=耽美"},{"n":"悬疑","v":"jqlx=悬疑"},{"n":"剧情","v":"jqlx=剧情"},{"n":"战争","v":"jqlx=战争"},{"n":"恐怖","v":"jqlx=恐怖"},{"n":"运动","v":"jqlx=运动"},{"n":"动作","v":"jqlx=动作"},{"n":"童话","v":"jqlx=童话"},{"n":"历史","v":"jqlx=历史"},{"n":"真人","v":"jqlx=真人"},{"n":"女性向","v":"jqlx=女性向"},{"n":"泡面番","v":"jqlx=泡面番"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"orderby=pubdate"},{"n":"热度","v":"orderby=click"}]}],
|
||||
"其他":[{"key":"sta","name":"进度","value":[{"n":"全部","v":""},{"n":"连载中","v":"status=连载中"},{"n":"已完结","v":"status=已完结"},{"n":"未播放","v":"status=未播放"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"area=日本"},{"n":"中国","v":"area=中国"},{"n":"欧美","v":"area=欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"year=2024"},{"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":"更早","v":"year=2010前"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"冒险","v":"jqlx=冒险"},{"n":"热血","v":"jqlx=热血"},{"n":"爱情","v":"jqlx=爱情"},{"n":"搞笑","v":"jqlx=搞笑"},{"n":"后宫","v":"jqlx=后宫"},{"n":"校园","v":"jqlx=校园"},{"n":"机战","v":"jqlx=机战"},{"n":"幻想","v":"jqlx=幻想"},{"n":"科幻","v":"jqlx=科幻"},{"n":"竞技","v":"jqlx=竞技"},{"n":"百合","v":"jqlx=百合"},{"n":"耽美","v":"jqlx=耽美"},{"n":"悬疑","v":"jqlx=悬疑"},{"n":"剧情","v":"jqlx=剧情"},{"n":"战争","v":"jqlx=战争"},{"n":"恐怖","v":"jqlx=恐怖"},{"n":"运动","v":"jqlx=运动"},{"n":"动作","v":"jqlx=动作"},{"n":"童话","v":"jqlx=童话"},{"n":"历史","v":"jqlx=历史"},{"n":"真人","v":"jqlx=真人"},{"n":"女性向","v":"jqlx=女性向"},{"n":"泡面番","v":"jqlx=泡面番"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"orderby=pubdate"},{"n":"热度","v":"orderby=click"}]}]
|
||||
},
|
||||
// filter_def:{
|
||||
// TV:{by:'orderby=pubdate'},
|
||||
// 剧场版:{by:'orderby=pubdate'},
|
||||
// OVA:{by:'orderby=pubdate'},
|
||||
// 其他:{by:'orderby=pubdate'}
|
||||
// },
|
||||
searchUrl:'/search.html?keyword=**&PageNo=fypage',
|
||||
searchable:2,//是否启用全局搜索,
|
||||
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'PC_UA',
|
||||
},
|
||||
class_name:'TV&剧场版&OVA&其他',
|
||||
class_url:'TV&剧场版&OVA&其他',
|
||||
play_parse: true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
// 推荐:'.dhnew.adj li;*;*;*;*',
|
||||
推荐:'.dhnew.adj li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
|
||||
// 一级:'.dhnew li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
|
||||
一级:`js:
|
||||
let d = [];
|
||||
pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd;
|
||||
let html = '';
|
||||
let totalresult = getItem("totalresult_" + MY_CATE, '')
|
||||
if (totalresult == '') {
|
||||
html = request(input);
|
||||
totalresult = pdfh(html, ".pageinfo&&strong&&Text");
|
||||
setItem("totalresult_" + MY_CATE, totalresult)
|
||||
}
|
||||
input += '&totalresult=' + getItem("totalresult_" + MY_CATE, '');
|
||||
html = request(input);
|
||||
let list = pdfa(html, ".dhnew&&li");
|
||||
list.forEach(it => {
|
||||
d.push({
|
||||
title: pdfh(it, "a&&title"),
|
||||
desc: pdfh(it, "p:eq(-1)&&Text"),
|
||||
pic_url: pd(it, "img&&src"),
|
||||
url: pd(it, "a&&href")
|
||||
})
|
||||
});
|
||||
setResult(d)
|
||||
`,
|
||||
二级:{
|
||||
"title":"h1&&Text;.dhxx p:eq(4)&&Text",
|
||||
"img":".anime-img&&img&&src",
|
||||
"desc":".info1-left li:eq(1)&&Text;.dhxx p:eq(3)&&Text;.dhxx p:eq(2)&&Text;.info1-left li:eq(0)&&Text;.info1-left li:eq(2)&&Text",
|
||||
"content":".info2--strong&&Text",
|
||||
"tabs":".ol-select li",
|
||||
"lists":".ol-content:eq(#id) li"
|
||||
},
|
||||
// 搜索:'*;*;*;p:eq(3)&&Text;*',
|
||||
搜索:'.dhnew li;a&&title;img&&src;p:eq(3)&&Text;a&&href',
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
var rule = {
|
||||
title: '曲奇动漫',
|
||||
// host:'https://www.quqidm.net',
|
||||
host: 'https://www.quqim.net',
|
||||
// url:'/list/?genre=fyclass&pagesize=24&pageindex=fypage',
|
||||
url: '/list/?genre=fyclassfyfilter',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '&pagesize=24&pageindex=(fypage-1)®ion={{fl.area}}&order={{fl.by}}&label={{fl.class}}&letter={{fl.letter}}&year={{fl.year}}',
|
||||
filter: {
|
||||
"TV": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }],
|
||||
"剧场版": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }],
|
||||
"OVA": [{ "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "日本", "v": "日本" }, { "n": "中国", "v": "中国" }, { "n": "欧美", "v": "欧美" }] }, { "key": "letter", "name": "字母", "value": [{ "n": "全部", "v": "" }, { "n": "A", "v": "A" }, { "n": "B", "v": "B" }, { "n": "C", "v": "C" }, { "n": "D", "v": "D" }, { "n": "E", "v": "E" }, { "n": "F", "v": "F" }, { "n": "G", "v": "G" }, { "n": "H", "v": "H" }, { "n": "I", "v": "I" }, { "n": "J", "v": "J" }, { "n": "K", "v": "K" }, { "n": "L", "v": "L" }, { "n": "M", "v": "M" }, { "n": "N", "v": "N" }, { "n": "O", "v": "O" }, { "n": "P", "v": "P" }, { "n": "Q", "v": "Q" }, { "n": "R", "v": "R" }, { "n": "S", "v": "S" }, { "n": "T", "v": "T" }, { "n": "U", "v": "U" }, { "n": "V", "v": "V" }, { "n": "W", "v": "W" }, { "n": "X", "v": "X" }, { "n": "Y", "v": "Y" }, { "n": "Z", "v": "Z" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000以前", "v": "2000" }] }, { "key": "class", "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": "欢乐向" }] }, { "key": "by", "name": "排序", "value": [{ "n": "时间", "v": "" }, { "n": "名称", "v": "名称" }, { "n": "点击量", "v": "点击量" }] }]
|
||||
},
|
||||
searchUrl: '/s_all?ex=fypage&kw=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
class_name: 'TV&剧场版&OVA',
|
||||
class_url: 'TV&剧场版&OVA',
|
||||
play_parse: true,
|
||||
detailUrl: '',
|
||||
lazy: "",
|
||||
limit: 6,
|
||||
推荐: '.img&&ul;li;*;*;p:eq(1)&&Text;*',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.lpic&&li;img&&alt;img&&src;.red&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.sinfo&&span--label:eq(2)&&Text",
|
||||
"img": ".thumb&&img&&src",
|
||||
"desc": ".score&&Text;.sinfo&&span--label:eq(0)&&Text;.sinfo&&span--label:eq(1)&&Text;.sinfo&&p:eq(0)&&Text;.sinfo&&p:eq(1)&&Text",
|
||||
"content": ".info&&Text",
|
||||
"tabs": "#menu0&&li",
|
||||
"lists": ".movurl:eq(#id)&&li"
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
var rule = {
|
||||
title:'有声小说吧',
|
||||
编码:'gb18030',
|
||||
host:'http://m.ysxs8.vip',
|
||||
url:'/downlist/fyclass_fypage.html',
|
||||
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
// homeUrl:'/fenlei/',
|
||||
// class_parse: '.pd-class:eq(0) dd;a&&Text;a&&href;.*/(.*?).html',
|
||||
class_name:'网络玄幻&恐怖悬疑&传统武侠&都市言情&官场刑侦&历史军事&探险盗墓&职场商战&明朝那些事儿&评书下载&相声戏曲&人物传记&广播剧&百家讲坛&外语读物&有声文学&儿童读物&管理营销',
|
||||
class_url:'r52&r17&r12&r13&r14&r15&r45&r81&r36&r3&r7&r16&r18&r32&r35&r41&r4&r6',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
// double:true,
|
||||
推荐:'.list-ul .list-li;.list-name&&Text;*;.module-slide-author&&Text;*',
|
||||
一级:'.book-ol&&li;h4&&Text;img&&data-original;.book-meta&&Text;a&&href',
|
||||
二级:{
|
||||
// title:'h2&&Text;.book-cell .book-rand-a:eq(2)&&Text',
|
||||
title:'h1&&Text;.book-cell .book-rand-a:eq(0)&&a&&Text',
|
||||
img:'.book img&&src',
|
||||
// desc:';;;;.book-des p&&Text',
|
||||
desc:';;;.book-rand-a:eq(2)&&Text;.book-des p&&Text',
|
||||
content:'.book-des--p&&Text',
|
||||
tabs:'.playlist-top&&h2',
|
||||
// lists:'js:pd=jsp.pd;let url=pd(html,".bookbutton&&a&&href");log(url);html=request(url);let v=pd(html,".booksite&&script&&Html");var document={};var VideoListJson;VideoListJson=eval(v.split("VideoListJson=")[1].split(",urlinfo")[0]);log(typeof VideoListJson);let list1=VideoListJson[0][1];LISTS=[list1];log(LISTS);',
|
||||
// 有声小说有防盗链,我服了(上面的列表数据正常拿到了,没法播放)
|
||||
// lists:'#playlist:eq(#id)&&ul&&li',
|
||||
lists:'#playlist ul li',
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
||||
@@ -0,0 +1,412 @@
|
||||
var rule = {
|
||||
author: '书虫/250613/第1版',
|
||||
title: '泥视频',
|
||||
类型: '影视',
|
||||
//主页 网页的域名根
|
||||
host: 'https://www.nivod.vip/',
|
||||
hostJs: ``,
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0'
|
||||
},
|
||||
//不填就默认utf-8,根据网页源码所显示的格式填,根据需要可填UTF-8,GBK,GB2312
|
||||
编码: 'utf-8',
|
||||
timeout: 5000,
|
||||
//首页链接,可以是完整路径或者相对路径,用于分类获取和推荐获取
|
||||
homeUrl: '/',
|
||||
//分类链接,分类参数用fyclasss,页码用fypage,带筛选的用fyfilter,第一页无页码的用[]括起,处理方式同xbpq方式,fyfilter代表filter_url里内容
|
||||
|
||||
// https://www.nivod.vip/k/6-大陆-------2---2021/
|
||||
url: 'https://www.nivod.vip/k/fyfilter/',
|
||||
filter_url: '{{fl.cateId}}-{{fl.area}}-------fypage---{{fl.year}}',
|
||||
detailUrl: 'https://www.nivod.vip/nivod/fyid/',
|
||||
//搜索链接 可以是完整路径或者相对路径,用于分类获取和推荐获取 **代表搜索词 fypage代表页数
|
||||
// searchUrl: 'https://www.shkangping.com/vodsearch/**----------fypage---.html',
|
||||
// 搜索页找参数 数组标题图片副标题链接
|
||||
// 搜索: '*',
|
||||
//rss搜索写法
|
||||
// searchUrl: '/rss/index.xml?wd=**&page=fypage',
|
||||
// ajax搜索写法
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&page=fypage&limit=30',
|
||||
|
||||
搜索: 'json:list;name;pic;en;id',
|
||||
|
||||
searchable: 1,
|
||||
quickSearch: 1,
|
||||
filterable: 1,
|
||||
limit: 10,
|
||||
double: false,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
//静态分类值
|
||||
class_url: '1&2&3&4',
|
||||
|
||||
|
||||
filter_def: {
|
||||
1: {
|
||||
cateId: '1'
|
||||
},
|
||||
2: {
|
||||
cateId: '2'
|
||||
},
|
||||
3: {
|
||||
cateId: '3'
|
||||
},
|
||||
4: {
|
||||
cateId: '4'
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
//推荐列表可以单独写也是几个参数,和一级列表部分参数一样的可以用*代替,不一样写不一样的,全和一级一样,可以用一个*代替
|
||||
推荐: '*',
|
||||
//推荐页的json模式
|
||||
//推荐: 'json:list;vod_name;vod_pic;vod_remarks;vod_id',
|
||||
//数组、标题、图片、副标题、链接,分类页找参数
|
||||
一级: 'a:has(.module-item-pic);a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
|
||||
|
||||
//数组、标题、图片、副标题、链接,分类页找参数
|
||||
|
||||
//一级: `js:
|
||||
//let klist=pdfa(request(input),'.vertical-box');
|
||||
// let k=[];
|
||||
//klist.forEach(it=>{
|
||||
// k.push({
|
||||
//title: pdfh(it,'.title&&Text'),
|
||||
// pic_url: !pdfh(it,'.lazyload&&data-original').startsWith('http') ? HOST + pdfh(it,'.lazyload&&data-original') : pdfh(it,'.lazyload&&data-original'),
|
||||
|
||||
//desc: pdfh(it,''),
|
||||
// url: pdfh(it,'a&&href'),
|
||||
//content: ''
|
||||
// })
|
||||
//});
|
||||
//setResult(k)
|
||||
//`,
|
||||
|
||||
//普通搜索模板 搜索数组标题图片副标题链接
|
||||
//搜索: `js:
|
||||
|
||||
//let klist=pdfa(request(input),'.hzixunui-vodlist__thumb');
|
||||
// let k=[];
|
||||
//klist.forEach(it=>{
|
||||
//k.push({
|
||||
// title: pdfh(it,'a&&title'),
|
||||
// pic_url: !pdfh(it,'a&&data-original').startsWith('http') ? HOST + pdfh(it,'a&&data-original') : pdfh(it,'a&&data-original'),
|
||||
// desc: pdfh(it,'.text-right&&Text'),
|
||||
// url: pdfh(it,'a&&href'),
|
||||
// content: ''
|
||||
// })
|
||||
// });
|
||||
// setResult(k)
|
||||
// `,
|
||||
|
||||
//rss搜索模板
|
||||
// 搜索: `js:
|
||||
//let klist=pdfa(request(input),'rss&&item');
|
||||
// let k=[];
|
||||
// klist.forEach(it=>{
|
||||
// it=it.replace(/title|link|author|pubdate|description/g,'p');
|
||||
// k.push({
|
||||
// title: pdfh(it,'p:eq(0)&&Text'),
|
||||
// pic_url: '',
|
||||
// desc: pdfh(it,'p:eq(3)&&Text'),
|
||||
// url: pdfh(it,'p:eq(1)&&Text').replace('cc','la'),
|
||||
// content: pdfh(it,'p:eq(4)&&Text')
|
||||
// })
|
||||
// });
|
||||
// setResult(k)
|
||||
//" `,
|
||||
|
||||
//详情页找参数
|
||||
//第一部分分别是对应参数式中的标题、类型、图片、备注、年份、地区、导演、主演、简介
|
||||
//第二部分分别对应参数式中的线路数组和线路标题
|
||||
//第三部分分别对应参数式中的播放数组、播放列表、播放标题、播放链接
|
||||
|
||||
二级: `js:
|
||||
let html = request(input);
|
||||
VOD = {};
|
||||
VOD.vod_id = input;
|
||||
VOD.vod_name = '集多提示本线路仅供学习交流,贩卖必究!!!标题: '+pdfh(html, 'h1&&Text');
|
||||
VOD.type_name = pdfh(html, '.module-info-tag-link:eq(2)&&Text');
|
||||
VOD.vod_pic = pd(html, '.lazyload&&data-original', input);
|
||||
VOD.vod_remarks = pdfh(html, '.module-info-item:contains(集数)&&Text').replace('集数:','');
|
||||
VOD.vod_year = pdfh(html, '.module-info-tag-link:eq(0)&&Text');
|
||||
VOD.vod_area = pdfh(html, '.module-info-tag-link:eq(1)&&Text');
|
||||
VOD.vod_director = pdfh(html, '.module-info-item:contains(导演)&&Text').replace('导演:','');
|
||||
VOD.vod_actor = pdfh(html, '.module-info-item:contains(主演)&&Text').replace('主演:','');
|
||||
VOD.vod_content = '集多祝您观影愉快!现为您介绍剧情:' + pdfh(html, '.module-info-introduction-content&&Text');
|
||||
|
||||
let r_ktabs = pdfa(html,'#y-playList&&span');
|
||||
let ktabs = r_ktabs.map(it => pdfh(it, 'Text'));
|
||||
VOD.vod_play_from = ktabs.join('$$$');
|
||||
|
||||
|
||||
let klists = [];
|
||||
let r_plists = pdfa(html, '.module-play-list');
|
||||
r_plists.forEach((rp) => {
|
||||
let klist = pdfa(rp, 'body&&a:not([rel])').map((it) => {
|
||||
return pdfh(it, 'a&&Text') + '$' + pd(it, 'a&&href', input);
|
||||
});
|
||||
klist = klist.join('#');
|
||||
klists.push(klist);
|
||||
});
|
||||
VOD.vod_play_url = klists.join('$$$')
|
||||
|
||||
|
||||
`,
|
||||
//是否启用辅助嗅探: 1,0
|
||||
sniffer: 0,
|
||||
// 辅助嗅探规则
|
||||
isVideo: 'http((?!http).){26,}\\.(m3u8|mp4|flv|avi|mkv|wmv|mpg|mpeg|mov|ts|3gp|rm|rmvb|asf|m4a|mp3|wma)',
|
||||
|
||||
play_parse: true,
|
||||
//播放地址通用解析
|
||||
lazy: `js:
|
||||
let kcode = JSON.parse(request(input).match(/var player_.*?=(.*?)</)[1]);
|
||||
let kurl = kcode.url;
|
||||
if (kcode.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (kcode.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
};
|
||||
if (/\\.(m3u8|mp4)/.test(kurl)) {
|
||||
input = { jx: 0, parse: 0, url: kurl }
|
||||
} else {
|
||||
input = { jx: 0, parse: 1, url: input }
|
||||
}`,
|
||||
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"},
|
||||
{"n": "战争片", "v": "20"},
|
||||
{"n": "纪录片", "v": "21"},
|
||||
{"n": "动画片", "v": "26"},
|
||||
{"n": "悬疑片", "v": "22"},
|
||||
{"n": "冒险片", "v": "23"},
|
||||
{"n": "犯罪片", "v": "24"},
|
||||
{"n": "惊悚片", "v": "45"},
|
||||
{"n": "歌舞片", "v": "46"},
|
||||
{"n": "灾难片", "v": "47"},
|
||||
{"n": "网络片", "v": "48"}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "大陆", "v": "大陆"},
|
||||
{"n": "香港", "v": "香港"},
|
||||
{"n": "台湾", "v": "台湾"},
|
||||
{"n": "美国", "v": "美国"},
|
||||
{"n": "欧美", "v": "欧美"},
|
||||
{"n": "日本", "v": "日本"},
|
||||
{"n": "韩国", "v": "韩国"},
|
||||
{"n": "泰国", "v": "泰国"},
|
||||
{"n": "其他", "v": "其他"}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "2025", "v": "2025"},
|
||||
{"n": "2024", "v": "2024"},
|
||||
{"n": "2023", "v": "2023"},
|
||||
{"n": "2022", "v": "2022"},
|
||||
{"n": "2021", "v": "2021"},
|
||||
{"n": "2020", "v": "2020"},
|
||||
{"n": "2019", "v": "2019"},
|
||||
{"n": "2018", "v": "2018"},
|
||||
{"n": "2017", "v": "2017"},
|
||||
{"n": "2016", "v": "2016"},
|
||||
{"n": "2015", "v": "2015"},
|
||||
{"n": "2014", "v": "2014"},
|
||||
{"n": "2013", "v": "2013"},
|
||||
{"n": "2012", "v": "2012"}
|
||||
]
|
||||
|
||||
}
|
||||
],
|
||||
"2": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value":[
|
||||
{"n": "全部", "v": "2"},
|
||||
{"n": "国产剧", "v": "13"},
|
||||
{"n": "港台剧", "v": "14"},
|
||||
{"n": "日剧", "v": "15"},
|
||||
{"n": "韩剧", "v": "33"},
|
||||
{"n": "欧美剧", "v": "16"},
|
||||
{"n": "泰剧", "v": "34"},
|
||||
{"n": "新马剧", "v": "35"},
|
||||
{"n": "其他剧", "v": "25"}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "内地", "v": "内地"},
|
||||
{"n": "韩国", "v": "韩国"},
|
||||
{"n": "香港", "v": "香港"},
|
||||
{"n": "台湾", "v": "台湾"},
|
||||
{"n": "日本", "v": "日本"},
|
||||
{"n": "美国", "v": "美国"},
|
||||
{"n": "泰国", "v": "泰国"},
|
||||
{"n": "英国", "v": "英国"},
|
||||
{"n": "新加坡", "v": "新加坡"},
|
||||
{"n": "其他", "v": "其他"}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "2025", "v": "2025"},
|
||||
{"n": "2024", "v": "2024"},
|
||||
{"n": "2023", "v": "2023"},
|
||||
{"n": "2022", "v": "2022"},
|
||||
{"n": "2021", "v": "2021"},
|
||||
{"n": "2020", "v": "2020"},
|
||||
{"n": "2019", "v": "2019"},
|
||||
{"n": "2018", "v": "2018"},
|
||||
{"n": "2017", "v": "2017"},
|
||||
{"n": "2016", "v": "2016"},
|
||||
{"n": "2015", "v": "2015"},
|
||||
{"n": "2014", "v": "2014"},
|
||||
{"n": "2013", "v": "2013"},
|
||||
{"n": "2012", "v": "2012"}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
],
|
||||
|
||||
|
||||
"3": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value":[
|
||||
{"n": "全部", "v": "3"},
|
||||
{"n": "内地综艺", "v": "27"},
|
||||
{"n": "港台综艺", "v": "28"},
|
||||
{"n": "日本综艺", "v": "29"},
|
||||
{"n": "韩国综艺", "v": "36"},
|
||||
{"n": "欧美综艺", "v": "30"},
|
||||
{"n": "新马泰综艺", "v": "37"},
|
||||
{"n": "其他综艺", "v": "38"}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "内地", "v": "内地"},
|
||||
{"n": "港台", "v": "港台"},
|
||||
{"n": "日韩", "v": "日韩"},
|
||||
{"n": "欧美", "v": "欧美"}
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "2025", "v": "2025"},
|
||||
{"n": "2024", "v": "2024"},
|
||||
{"n": "2023", "v": "2023"},
|
||||
{"n": "2022", "v": "2022"},
|
||||
{"n": "2021", "v": "2021"},
|
||||
{"n": "2020", "v": "2020"},
|
||||
{"n": "2019", "v": "2019"},
|
||||
{"n": "2018", "v": "2018"},
|
||||
{"n": "2017", "v": "2017"},
|
||||
{"n": "2016", "v": "2016"},
|
||||
{"n": "2015", "v": "2015"},
|
||||
{"n": "2014", "v": "2014"},
|
||||
{"n": "2013", "v": "2013"},
|
||||
{"n": "2012", "v": "2012"}
|
||||
]
|
||||
|
||||
}
|
||||
],
|
||||
"4": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{"n": "全部", "v": "4"},
|
||||
{"n": "国产动漫", "v": "31"},
|
||||
{"n": "日本动漫", "v": "32"},
|
||||
{"n": "韩国动漫", "v": "39"},
|
||||
{"n": "港台动漫", "v": "40"},
|
||||
{"n": "新马泰动漫", "v": "41"},
|
||||
{"n": "欧美动漫", "v": "42"},
|
||||
{"n": "其他动漫", "v": "43"}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "国产", "v": "国产"},
|
||||
{"n": "日本", "v": "日本"},
|
||||
{"n": "欧美", "v": "欧美"},
|
||||
{"n": "其他", "v": "其他"}
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{"n": "全部", "v": ""},
|
||||
{"n": "2025", "v": "2025"},
|
||||
{"n": "2024", "v": "2024"},
|
||||
{"n": "2023", "v": "2023"},
|
||||
{"n": "2022", "v": "2022"},
|
||||
{"n": "2021", "v": "2021"},
|
||||
{"n": "2020", "v": "2020"},
|
||||
{"n": "2019", "v": "2019"},
|
||||
{"n": "2018", "v": "2018"},
|
||||
{"n": "2017", "v": "2017"},
|
||||
{"n": "2016", "v": "2016"},
|
||||
{"n": "2015", "v": "2015"},
|
||||
{"n": "2014", "v": "2014"},
|
||||
{"n": "2013", "v": "2013"},
|
||||
{"n": "2012", "v": "2012"}
|
||||
]
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
var rule = {
|
||||
title:'海洋听书',
|
||||
编码:'gb18030',
|
||||
host:'http://m.ychy.cc',
|
||||
homeUrl:'/best.html',
|
||||
url:'/list/fyclass_fypage.html',
|
||||
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
class_name:'网络玄幻&恐怖悬疑&评书下载&儿童读物&相声戏曲&传统武侠&都市言情&历史军事&人物传记&广播剧&百家讲坛&有声文学&探险盗墓&职场商战',
|
||||
class_url:'52&17&3&4&7&12&13&15&16&18&32&41&45&81',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
double:true,
|
||||
推荐:'*',
|
||||
一级:'.list-ul li;.tit&&Text;img&&src;p span:eq(0)&&Text;a&&href',
|
||||
二级:{
|
||||
title:'h2&&Text;.info div:eq(4)&&Text',
|
||||
img:'.bookimg img&&src',
|
||||
desc:'.info div:eq(3)&&Text;;;.info div:eq(2)&&Text;.info div:eq(1)&&Text',
|
||||
content:'.book_intro&&Text',
|
||||
tabs:'.sub_tit',
|
||||
// lists:'#playlist li',
|
||||
lists:`js:
|
||||
pd = jsp.pd;
|
||||
let url = pd(html, ".bookbutton&&a&&href");
|
||||
// log(url);
|
||||
html = request(url);
|
||||
let v = pd(html, ".booksite&&script&&Html");
|
||||
var document = {};
|
||||
var VideoListJson;
|
||||
VideoListJson = eval(v.split("VideoListJson=")[1].split(",urlinfo")[0]);
|
||||
// log(typeof VideoListJson);
|
||||
let list1 = VideoListJson[0][1];
|
||||
LISTS = [list1];
|
||||
// log(LISTS);
|
||||
`,
|
||||
},
|
||||
搜索:`js:
|
||||
let d = [];
|
||||
pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd;
|
||||
// log(input);
|
||||
let html = request(input);
|
||||
var list = pdfa(html, '.book_slist&&.bookbox');
|
||||
list.forEach(function(it) {
|
||||
d.push({
|
||||
title: pdfh(it, 'h4&&Text'),
|
||||
desc: pdfh(it, '.update&&Text'),
|
||||
pic_url: pd(it, 'img&&orgsrc'),
|
||||
url: 'http://m.ychy.com/book/' + pdfh(it, '.bookbox&&bookid') + '.html'
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
var rule = {
|
||||
title:'清风DJ',
|
||||
host:'https://www.vvvdj.com',
|
||||
// url: '/sort/fyclass/0-0-0-0-fypage.html',
|
||||
url:'/sort/fyclass/fyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'{{fl.class or "0"}}-{{fl.lang or "0"}}-{{fl.year or "0"}}-{{fl.by or "0"}}-fypage',
|
||||
filter:{
|
||||
"c1":[{"key":"class","name":"分类","value":[{"n":"全部","v":"0"},{"n":"慢摇串烧","v":"1"},{"n":"的高串烧","v":"2"},{"n":"碎拍串烧","v":"3"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":"0"},{"n":"粤语","v":"1"},{"n":"国语","v":"2"},{"n":"外语","v":"3"}]},{"key":"year","name":"时间","value":[{"n":"全部","v":"0"},{"n":"3月","v":"1"},{"n":"2月","v":"2"},{"n":"1月","v":"3"},{"n":"12月","v":"4"},{"n":"11月","v":"5"},{"n":"10月","v":"6"},{"n":"9月","v":"7"},{"n":"8月","v":"8"},{"n":"7月","v":"9"},{"n":"6月","v":"10"},{"n":"5月","v":"11"},{"n":"4月","v":"12"},{"n":"2024年","v":"2024"},{"n":"2023年","v":"2023"},{"n":"2022年","v":"2022"},{"n":"2021年","v":"2021"},{"n":"2020年","v":"2020"},{"n":"2019年","v":"2019"},{"n":"2018年","v":"2018"},{"n":"2017年","v":"2017"},{"n":"2016年","v":"2016"},{"n":"2015年","v":"2015"},{"n":"2014年","v":"2014"},{"n":"2013年","v":"2013"},{"n":"2012年","v":"2012"},{"n":"2011年","v":"2011"},{"n":"2010年","v":"2010"},{"n":"2009年","v":"2009"},{"n":"2008年","v":"2008"}]},{"key":"by","name":"排序","value":[{"n":"最新上传","v":"0"},{"n":"精品推荐","v":"1"},{"n":"本周热播榜","v":"2"},{"n":"上周热播榜","v":"3"},{"n":"本月热播榜","v":"4"},{"n":"上月热播榜","v":"5"},{"n":"年度热播榜","v":"6"},{"n":"年度下载","v":"7"}]}],
|
||||
"c2":[{"key":"class","name":"分类","value":[{"n":"全部","v":"0"},{"n":"流行金曲","v":"4"},{"n":"发烧经典","v":"5"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":"0"},{"n":"粤语","v":"1"},{"n":"国语","v":"2"},{"n":"外语","v":"3"}]},{"key":"year","name":"时间","value":[{"n":"全部","v":"0"},{"n":"3月","v":"1"},{"n":"2月","v":"2"},{"n":"1月","v":"3"},{"n":"12月","v":"4"},{"n":"11月","v":"5"},{"n":"10月","v":"6"},{"n":"9月","v":"7"},{"n":"8月","v":"8"},{"n":"7月","v":"9"},{"n":"6月","v":"10"},{"n":"5月","v":"11"},{"n":"4月","v":"12"},{"n":"2024年","v":"2024"},{"n":"2023年","v":"2023"},{"n":"2022年","v":"2022"},{"n":"2021年","v":"2021"},{"n":"2020年","v":"2020"},{"n":"2019年","v":"2019"},{"n":"2018年","v":"2018"},{"n":"2017年","v":"2017"},{"n":"2016年","v":"2016"},{"n":"2015年","v":"2015"},{"n":"2014年","v":"2014"},{"n":"2013年","v":"2013"},{"n":"2012年","v":"2012"},{"n":"2011年","v":"2011"},{"n":"2010年","v":"2010"},{"n":"2009年","v":"2009"},{"n":"2008年","v":"2008"}]},{"key":"by","name":"排序","value":[{"n":"最新上传","v":"0"},{"n":"精品推荐","v":"1"},{"n":"本周热播榜","v":"2"},{"n":"上周热播榜","v":"3"},{"n":"本月热播榜","v":"4"},{"n":"上月热播榜","v":"5"},{"n":"年度热播榜","v":"6"},{"n":"年度下载","v":"7"}]}],
|
||||
"c3":[{"key":"class","name":"分类","value":[{"n":"全部","v":"0"},{"n":"EDM/Dance/Electro/House","v":"6"},{"n":"FunkyHouse/ProgHouse","v":"7"},{"n":"Trap/HipHop/Rnb/Funk/BB","v":"8"},{"n":"Hardstyle/Techno/Trance","v":"9"}]},{"key":"year","name":"时间","value":[{"n":"全部","v":"0"},{"n":"3月","v":"1"},{"n":"2月","v":"2"},{"n":"1月","v":"3"},{"n":"12月","v":"4"},{"n":"11月","v":"5"},{"n":"10月","v":"6"},{"n":"9月","v":"7"},{"n":"8月","v":"8"},{"n":"7月","v":"9"},{"n":"6月","v":"10"},{"n":"5月","v":"11"},{"n":"4月","v":"12"},{"n":"2024年","v":"2024"},{"n":"2023年","v":"2023"},{"n":"2022年","v":"2022"},{"n":"2021年","v":"2021"},{"n":"2020年","v":"2020"},{"n":"2019年","v":"2019"},{"n":"2018年","v":"2018"},{"n":"2017年","v":"2017"},{"n":"2016年","v":"2016"},{"n":"2015年","v":"2015"},{"n":"2014年","v":"2014"},{"n":"2013年","v":"2013"},{"n":"2012年","v":"2012"},{"n":"2011年","v":"2011"},{"n":"2010年","v":"2010"},{"n":"2009年","v":"2009"},{"n":"2008年","v":"2008"}]},{"key":"by","name":"排序","value":[{"n":"最新上传","v":"0"},{"n":"精品推荐","v":"1"},{"n":"本周热播榜","v":"2"},{"n":"上周热播榜","v":"3"},{"n":"本月热播榜","v":"4"},{"n":"上月热播榜","v":"5"},{"n":"年度热播榜","v":"6"},{"n":"年度下载","v":"7"}]}],
|
||||
"c4":[{"key":"class","name":"分类","value":[{"n":"全部","v":"0"},{"n":"EDM/Dance/Electro/House","v":"10"},{"n":"FunkyHouse/ProgHouse","v":"11"},{"n":"Trap/HipHop/Rnb/Funk/BB","v":"12"},{"n":"Hardstyle/Techno/Trance","v":"13"}]},{"key":"year","name":"时间","value":[{"n":"全部","v":"0"},{"n":"3月","v":"1"},{"n":"2月","v":"2"},{"n":"1月","v":"3"},{"n":"12月","v":"4"},{"n":"11月","v":"5"},{"n":"10月","v":"6"},{"n":"9月","v":"7"},{"n":"8月","v":"8"},{"n":"7月","v":"9"},{"n":"6月","v":"10"},{"n":"5月","v":"11"},{"n":"4月","v":"12"},{"n":"2024年","v":"2024"},{"n":"2023年","v":"2023"},{"n":"2022年","v":"2022"},{"n":"2021年","v":"2021"},{"n":"2020年","v":"2020"},{"n":"2019年","v":"2019"},{"n":"2018年","v":"2018"},{"n":"2017年","v":"2017"},{"n":"2016年","v":"2016"},{"n":"2015年","v":"2015"},{"n":"2014年","v":"2014"},{"n":"2013年","v":"2013"},{"n":"2012年","v":"2012"},{"n":"2011年","v":"2011"},{"n":"2010年","v":"2010"},{"n":"2009年","v":"2009"},{"n":"2008年","v":"2008"}]},{"key":"by","name":"排序","value":[{"n":"最新上传","v":"0"},{"n":"精品推荐","v":"1"},{"n":"本周热播榜","v":"2"},{"n":"上周热播榜","v":"3"},{"n":"本月热播榜","v":"4"},{"n":"上月热播榜","v":"5"},{"n":"年度热播榜","v":"6"},{"n":"年度下载","v":"7"}]}]
|
||||
},
|
||||
searchUrl: '/search/so?key=**&cid=0&list=2&page=fypage',
|
||||
searchable:2,//是否启用全局搜索,
|
||||
quickSearch:0,//是否启用快速搜索,
|
||||
headers:{
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,//网站的全局请求超时,默认是3000毫秒
|
||||
class_parse: '#top_bannerct&&.se.banneroff;a&&title;a&&href;/sort/(.*?)/',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐: '#recs-list&&li;h2&&Text;*;i&&Text;a&&href',
|
||||
一级: '.isgood_list;a&&title;img&&src;.sc_1&&Text;a&&href',
|
||||
二级: '*',
|
||||
搜索: '*',
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
var rule = {
|
||||
title:'爱上你听书网',
|
||||
host:'https://www.230ts.net',
|
||||
url:'/sort/fyclass/fypage.html',
|
||||
searchUrl:'/search.html?searchtype=name&searchword=**&page=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'PC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_parse: '.nav-ol&&li:gt(0):lt(6);a&&Text;a&&href;.*/(\\w+).html',
|
||||
play_parse:true,
|
||||
lazy:'js:input=input.replace("www","wap")',
|
||||
limit:6,
|
||||
推荐:'#myTab_Content1&&li;.tab-book-title&&Text;*;.tab-book-author&&Text;*',
|
||||
一级:'ul.list-works&&li;.list-book-dt--span&&Text;.lazy&&data-original;.book-author:eq(2)&&a&&Text;a&&href',
|
||||
二级:{
|
||||
title:'.book-cover&&alt;.book-info&&dd--span:eq(1)&&Text',
|
||||
img:'.book-cover&&src',
|
||||
desc:'.book-info&&dd:eq(4)&&Text;;;.book-info&&dd--span:eq(3)&&Text;.book-info&&dd--span:eq(2)&&Text',
|
||||
content:'.book-des&&Text',
|
||||
tabs:'.playlist-top&&h2',
|
||||
lists:'#playlist:eq(#id)&&li',
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
|
||||
var rule = {
|
||||
title: '爱弹幕',
|
||||
模板: '短视2',
|
||||
host: 'https://anime.girigirilove.com',
|
||||
homeUrl: '/map/',
|
||||
// url:'/show/fyclass--------fypage---/'
|
||||
url: '/show/fyclassfyfilter/',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}',
|
||||
filter: {
|
||||
"2": [{ "key": "class", "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": "萌" }] }, { "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "一月", "v": "一月" }, { "n": "四月", "v": "四月" }, { "n": "七月", "v": "七月" }, { "n": "十月", "v": "十月" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }, { "n": "2002", "v": "2002" }, { "n": "2001", "v": "2001" }, { "n": "2000", "v": "2000" }] }, { "key": "lang", "name": "语言", "value": [{ "n": "全部", "v": "" }, { "n": "日语", "v": "日语" }, { "n": "国语", "v": "国语" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"3": [{ "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "" }, { "n": "搞笑", "v": "搞笑" }, { "n": "爱情", "v": "爱情" }, { "n": "恐怖", "v": "恐怖" }, { "n": "动作", "v": "动作" }, { "n": "科幻", "v": "科幻" }, { "n": "剧情", "v": "剧情" }, { "n": "战争", "v": "战争" }, { "n": "奇幻", "v": "奇幻" }, { "n": "冒险", "v": "冒险" }, { "n": "悬疑", "v": "悬疑" }, { "n": "校园", "v": "校园" }, { "n": "后宫", "v": "后宫" }, { "n": "热血", "v": "热血" }, { "n": "运动", "v": "运动" }] }, { "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "内地", "v": "内地" }, { "n": "港台", "v": "港台" }, { "n": "日韩", "v": "日韩" }, { "n": "欧美", "v": "欧美" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }] }, { "key": "lang", "name": "语言", "value": [{ "n": "全部", "v": "" }, { "n": "国语", "v": "国语" }, { "n": "英语", "v": "英语" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"21": [{ "key": "class", "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": "爱抖露" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004", "v": "2004" }, { "n": "2003", "v": "2003" }] }, { "key": "lang", "name": "语言", "value": [{ "n": "全部", "v": "" }, { "n": "日语", "v": "日语" }, { "n": "中文", "v": "中文" }, { "n": "英语", "v": "英语" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"20": [{ "key": "class", "name": "类型", "value": [{ "n": "全部", "v": "" }, { "n": "爱情", "v": "爱情" }, { "n": "科幻", "v": "科幻" }, { "n": "经典", "v": "经典" }, { "n": "冒险", "v": "冒险" }, { "n": "剧情", "v": "剧情" }, { "n": "动作", "v": "动作" }, { "n": "同性", "v": "同性" }, { "n": "喜剧", "v": "喜剧" }, { "n": "奇幻", "v": "奇幻" }, { "n": "恐怖", "v": "恐怖" }, { "n": "悬疑.惊悚", "v": "悬疑.惊悚" }, { "n": "战争", "v": "战争" }, { "n": "欧美", "v": "欧美" }, { "n": "歌舞", "v": "歌舞" }, { "n": "灾难", "v": "灾难" }, { "n": "记录.泰剧", "v": "记录.泰剧" }, { "n": "体育", "v": "体育" }, { "n": "烧脑", "v": "烧脑" }] }, { "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "" }, { "n": "日本", "v": "日本" }, { "n": "欧美", "v": "欧美" }, { "n": "泰国", "v": "泰国" }] }, { "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }, { "n": "2014", "v": "2014" }, { "n": "2013", "v": "2013" }, { "n": "2012", "v": "2012" }, { "n": "2011", "v": "2011" }, { "n": "2010", "v": "2010" }, { "n": "2009", "v": "2009" }, { "n": "2008", "v": "2008" }, { "n": "2007", "v": "2007" }, { "n": "2006", "v": "2006" }, { "n": "2005", "v": "2005" }, { "n": "2004.2003", "v": "2004.2003" }] }, { "key": "lang", "name": "语言", "value": [{ "n": "全部", "v": "" }, { "n": "日语", "v": "日语" }, { "n": "英语", "v": "英语" }, { "n": "泰语", "v": "泰语" }] }, { "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"24": [{ "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }],
|
||||
"26": [{ "key": "by", "name": "排序", "value": [{ "n": "最新", "v": "time" }, { "n": "最热", "v": "hits" }, { "n": "评分", "v": "score" }] }]
|
||||
},
|
||||
searchUrl: '/search/**----------fypage---/',
|
||||
class_name: '日番&美番&劇場版&真人番劇&BD副音軌&其他',
|
||||
class_url: '2&3&21&20&24&26',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
var next = html.link_next;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
} else if (html.encrypt == '3') {
|
||||
url = url.substring(8, url.length);
|
||||
url = base64Decode(url);
|
||||
url = url.substring(8, (url.length) - 8)
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
var paurl = request(HOST + '/static/player/' + from + '.js').match(/ src="(.*?)'/)[1];
|
||||
if (/https/.test(paurl)) {
|
||||
var purl = paurl + url + '&next=' + next + '&title=';
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
推荐: '.border-box&&.public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
double: false, // 推荐内容是否双层定位
|
||||
一级: '.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
搜索: '.row-right&&.search-box;.thumb-txt&&Text;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
var rule = {
|
||||
title:'爱车MV',
|
||||
host:'https://www.ichemv.com',
|
||||
homeUrl:'/mv/',
|
||||
url:'/mv/fyclass_fypage.html',
|
||||
searchUrl:'/search.php?key=**&pages=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
class_parse:'.lei_fl&&li;a&&Text;a&&href;.*/(\\d+)_1.html',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
double:false,
|
||||
图片来源:'@Referer=https://www.ichemv.com/',
|
||||
推荐:'*',
|
||||
一级: '.mv_list&&li;a&&title;img&&data-src;;a&&href',
|
||||
二级:'*',
|
||||
搜索:'.sp_list&&li;a&&title;img&&data-src;.singer&&Text;a&&href;.hits&&Text',
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
var rule = {
|
||||
title: '百忙无果',
|
||||
host: 'https://pianku.api.%6d%67%74%76.com',
|
||||
homeUrl: '',
|
||||
searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/pc/search/v1?q=**&pn=fypage&pc=10',
|
||||
detailUrl: 'https://pcweb.api.mgtv.com/episode/list?page=1&size=50&video_id=fyid',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
// https://www.mgtv.com/lib/3?lastp=list_index&kind=a1&year=all&chargeInfo=a1&sort=c2
|
||||
url: '/rider/list/pcweb/v3?platform=pcweb&channelId=fyclass&pn=fypage&pc=80&hudong=1&_support=10000000&kind=a1&area=a1',
|
||||
filter_url: 'year={{fl.year or "all"}}&sort={{fl.sort or "all"}}&chargeInfo={{fl.chargeInfo or "all"}}',
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电视剧&电影&综艺&动漫&纪录片&教育&少儿',
|
||||
class_url: '2&3&1&50&51&115&10',
|
||||
filter: { '2': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }], '3': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }], '1': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }], '50': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }], '51': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }], '115': [{ 'key': 'chargeInfo', 'name': '付费类型', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '免费', 'v': 'b1' }, { 'n': 'vip', 'v': 'b2' }, { 'n': 'VIP用券', 'v': 'b3' }, { 'n': '付费点播', 'v': 'b4' }] }, { 'key': 'sort', 'name': '排序', 'value': [{ 'n': '最新', 'v': 'c1' }, { 'n': '最热', 'v': 'c2' }, { 'n': '知乎高分', 'v': 'c4' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': 'all' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '2013', 'v': '2013' }, { 'n': '2012', 'v': '2012' }, { 'n': '2011', 'v': '2011' }, { 'n': '2010', 'v': '2010' }, { 'n': '2009', 'v': '2009' }, { 'n': '2008', 'v': '2008' }, { 'n': '2007', 'v': '2007' }, { 'n': '2006', 'v': '2006' }, { 'n': '2005', 'v': '2005' }, { 'n': '2004', 'v': '2004' }] }] },
|
||||
limit: 20,
|
||||
play_parse: true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: 'json:data.hitDocs;title;img;updateInfo||rightCorner.text;playPartId',
|
||||
// 一级:'json:data.hitDocs;title;img;updateInfo;playPartId',
|
||||
二级: '',
|
||||
二级: 'js:log(input);',
|
||||
二级: 'js:fetch_params.headers.Referer="https://www.mgtv.com";fetch_params.headers["User-Agent"]=UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;VOD={};let d=[];let html=request(input);let json=JSON.parse(html);let host="https://www.mgtv.com";let ourl=json.data.list.length>0?json.data.list[0].url:json.data.series[0].url;if(!/^http/.test(ourl)){ourl=host+ourl}fetch_params.headers["User-Agent"]=MOBILE_UA;html=request(ourl);if(html.includes("window.location =")){print("开始获取ourl");ourl=pdfh(html,"meta[http-equiv=refresh]&&content").split("url=")[1];print("获取到ourl:"+ourl);html=request(ourl)}try{let details=pdfh(html,".m-details&&Html").replace(/h1>/,"h6>").replace(/div/g,"br");print(details);let actor="",director="",time="";if(/播出时间/.test(details)){actor=pdfh(html,"p:eq(5)&&Text").substr(0,25);director=pdfh(html,"p:eq(4)&&Text");time=pdfh(html,"p:eq(3)&&Text")}else{actor=pdfh(html,"p:eq(4)&&Text").substr(0,25);director=pdfh(html,"p:eq(3)&&Text");time="已完结"}let _img=pd(html,".video-img&&img&&src");let JJ=pdfh(html,".desc&&Text").split("简介:")[1];let _desc=time;VOD.vod_name=pdfh(html,".vt-txt&&Text");VOD.type_name=pdfh(html,"p:eq(0)&&Text").substr(0,6);VOD.vod_area=pdfh(html,"p:eq(1)&&Text");VOD.vod_actor=actor;VOD.vod_director=director;VOD.vod_remarks=_desc;VOD.vod_pic=_img;VOD.vod_content=JJ}catch(e){log("获取影片信息发生错误:"+e.message)}function getRjpg(imgUrl,xs){xs=xs||3;let picSize=/jpg_/.test(imgUrl)?imgUrl.split("jpg_")[1].split(".")[0]:false;let rjpg=false;if(picSize){let a=parseInt(picSize.split("x")[0])*xs;let b=parseInt(picSize.split("x")[1])*xs;rjpg=a+"x"+b+".jpg"}let img=/jpg_/.test(imgUrl)&&rjpg?imgUrl.replace(imgUrl.split("jpg_")[1],rjpg):imgUrl;return img}if(json.data.total===1&&json.data.list.length===1){let data=json.data.list[0];let url="https://www.mgtv.com"+data.url;d.push({title:data.t4,desc:data.t2,pic_url:getRjpg(data.img),url:url})}else if(json.data.list.length>1){for(let i=1;i<=json.data.total_page;i++){if(i>1){json=JSON.parse(fetch(input.replace("page=1","page="+i),{}))}json.data.list.forEach(function(data){let url="https://www.mgtv.com"+data.url;if(data.isIntact=="1"){d.push({title:data.t4,desc:data.t2,pic_url:getRjpg(data.img),url:url})}})}}else{print(input+"暂无片源")}VOD.vod_play_from="mgtv";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");setResult(d);',
|
||||
搜索: '',
|
||||
搜索: 'js:fetch_params.headers.Referer="https://www.mgtv.com";fetch_params.headers["User-Agent"]=UA;let d=[];let html=request(input);let json=JSON.parse(html);json.data.contents.forEach(function(data){if(data.data.sourceList||data.data.yearList){let list=data.data.sourceList?data.data.sourceList:data.data.yearList[0].sourceList;let desc="";list.forEach(function(it){desc+=it.name+"\\t"});if(list[0].source==="imgo"){let img=data.data.pic?data.data.pic:data.data.yearList[0].pic;d.push({title:data.data.title?data.data.title:data.data.yearList[0].title,img:img,content:data.data.story?data.data.story:data.data.yearList[0].story,desc:data.data.playTime,url:list[0].vid})}}});setResult(d);',
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// 搜寻验证
|
||||
var rule = {
|
||||
title:'短视频',
|
||||
host:'http://www.sharenice.net',
|
||||
url:'/fyclass?page=fypage',
|
||||
//searchUrl:'/video/search?search_key=**',
|
||||
searchable:0,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'PC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
// class_name:'抖音&快手&微视&火山&场库&体育&美拍&秒拍&全民&梨&好兔&美女&正能量&搞笑&社会&游戏&娱乐&旅游&萌系&生活&音乐&美食&明星&动漫&影视&时尚',
|
||||
class_name:'抖音&快手&微视&火山&场库&美拍&秒拍&全民&澎湃&好兔&开眼&美女&搞笑&社会&影视&音乐&娱乐&正能量&生活&动漫&体育&美食&萌系&旅游&游戏&明星&时尚',
|
||||
// class_url:'douyin&kuaishou&weishi&huoshan&changku&tags/t-5L2T6IKy.html&meipai&miaopai&quanmin&lishipin&haotu&tags/t-576O5aWz.html&tags/t-5q2j6IO96YeP.html&tags/t-5pCe56yR.html&tags/t-56S+5Lya.html&tags/t-5ri45oiP.html&tags/t-5aix5LmQ.html&tags/t-5peF5ri4.html&tags/t-6JCM57O7.html&tags/t-55Sf5rS7.html&tags/t-6Z+z5LmQ.html&tags/t-576O6aOf.html&tags/t-5piO5pif.html&tags/t-5Yqo5ryr.html&tags/t-5b2x6KeG.html&tags/t-5pe25bCa.html',
|
||||
class_url:'douyin&kuaishou&weishi&huoshan&changku&meipai&miaopai&quanmin&lishipin&haotu&kaiyan&t-576O5aWz&t-5pCe56yR&t-56S+5Lya&t-5b2x6KeG&t-6Z+z5LmQ&t-5aix5LmQ&t-5q2j6IO96YeP&t-55Sf5rS7&t-5Yqo5ryr&t-5L2T6IKy&t-576O6aOf&t-6JCM57O7&t-5peF5ri4&t-5ri45oiP&t-5piO5pif&t-5pe25bCa',
|
||||
play_parse:true,
|
||||
lazy:'js:/kuaishou/.test(input)?input=jsp.pdfh(request("http://m.sharenice.net/mobile"+input.split("net")[1]),".video-play-box&&video&&src"):input=jsp.pdfh(request("http://m.sharenice.net/mobile"+input.split("net")[1]),".video-play-box&&video&&src")+"#.mp4"',
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
一级:'.item-box&&ul&&li;a&&title;img&&data-original;;a&&href',
|
||||
二级:'*',
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
var rule = {
|
||||
title: '稀饭动漫',
|
||||
host: 'https://dm.xifanacg.com',
|
||||
class_name: '连载新番&完结旧番&剧场版&美漫',
|
||||
class_url: '1&2&3&21',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
url: '/index.php/ds_api/vod#type=fyclass&page=fypage',
|
||||
filterable: 0,
|
||||
filter_url: '',
|
||||
filter: {},
|
||||
filter_def: {},
|
||||
detailUrl: '/bangumi/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: "js:\n let html = request(input);\n let playerMatch = html.match(/var player_aaaa\\s*=\\s*(\\{.*?\\})\\s*;/);\n if (playerMatch) {\n try {\n let json = JSON5.parse(playerMatch[1]);\n let url = json.url;\n if (json.encrypt == '1') {\n url = unescape(url);\n } else if (json.encrypt == '2') {\n url = unescape(base64Decode(url));\n }\n if (/(\\.m3u8|\\.mp4)/i.test(url)) {\n input = {parse:0, jx:0, url: url};\n } else {\n input = {parse:0, jx:1, url: url};\n }\n } catch (e) {\n console.error('解析失败:', e);\n let iframeSrc = html.match(/<iframe[^>]+src=['\"]([^'\"?#]+)/i)?.[1];\n if (iframeSrc) {\n let urlParam = new URLSearchParams(iframeSrc.split('?')[1]).get('url');\n if (urlParam) {\n input = {parse:0, jx:0, url: decodeURIComponent(urlParam)};\n }\n }\n }\n }",
|
||||
limit: 6,
|
||||
推荐: '.list-swiper .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级: {
|
||||
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: '.row .vod-detail;.slide-info-title&&Text;.lazy&&data-src;.slide-info&&Text;a&&href',
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
var rule = {
|
||||
title:'网易公版影像',
|
||||
host:'https://active.163.com',
|
||||
homeUrl:'/service/form/v1/9347/view/1618.jsonp?param_entry_kinds=his&page=1&pageSize=20',
|
||||
url:'/service/form/v1/9347/view/1618.jsonp?param_entry_kinds=fyclass&page=fypage&pageSize=20',
|
||||
class_name:'电影&纪录片&动画片&珍贵史料',
|
||||
class_url:'movie&doc&ani&his',
|
||||
searchUrl:'/service/form/v1/9347/view/1619.jsonp?_charset=UTF-8&_decode=UTF-8¶m_title=**&page=fypage&pageSize=6',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA',
|
||||
},
|
||||
timeout:5000,
|
||||
limit:6,
|
||||
play_parse:true,
|
||||
lazy:'js:let vid = input.split("/view/")[1];var playJsonUrl="https://so.v.163.com/mobile/getBatchOnlineVideo.do?vidstr=";var reqUrl=playJsonUrl+vid;var reqJson=JSON.parse(request(reqUrl)).data.video_list[0];input={jx:0,url:reqJson.mp4SdUrl,parse:0}',
|
||||
// lazy:'',
|
||||
推荐:'*',
|
||||
一级:'json:list;title;cover_pic;meida_type;vid',
|
||||
二级:'*',
|
||||
搜索:'*',
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
var rule = {
|
||||
title: '腾云驾雾',
|
||||
host: 'https://v.%71%71.com',
|
||||
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=25&iarea=-1&sort=19',
|
||||
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
|
||||
searchUrl: 'https://v.%71%71.com/x/search/?q=**&stag=1',
|
||||
//searchUrl: 'https://tv.aiseet.atianqi.com/i-tvbin/qtv_video/search/get_search_baseline?request_type=homepage&req_page_size=20&req_page_num=0&key=**&Q-UA=QV%3D1%26PR%3DVIDEO%26PT%3DSNMAPP%26CHID%3D15000%26RL%3D2560*1440%26VN%3D15.7.0%26VN_CODE%3D1231008%26VN_BUILD%3D1018%26SV%3D12%26SI%3D32%26MD%3DV2199GA%26DV%3DPD2203%26BD%3DV2199GA%26DE%3D%26MF%3Dvivo%26TVKPlatform%3D670603%26HOST_VN%3D15.7.0%26HOST_VC%3D1231008%26HOST_VB%3D1018%26HOST_API%3D7',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*25)&pagesize=25&iarea=-1',
|
||||
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
|
||||
filter: { "choice": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "83" }, { "n": "好评", "v": "81" }] }, { "key": "iyear", "name": "年代", "value": [{ "n": "全部", "v": "-1" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }] }], "tv": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "79" }, { "n": "好评", "v": "16" }] }, { "key": "feature", "name": "类型", "value": [{ "n": "全部", "v": "-1" }, { "n": "爱情", "v": "1" }, { "n": "古装", "v": "2" }, { "n": "悬疑", "v": "3" }, { "n": "都市", "v": "4" }, { "n": "家庭", "v": "5" }, { "n": "喜剧", "v": "6" }, { "n": "传奇", "v": "7" }, { "n": "武侠", "v": "8" }, { "n": "军旅", "v": "9" }, { "n": "权谋", "v": "10" }, { "n": "革命", "v": "11" }, { "n": "现实", "v": "13" }, { "n": "青春", "v": "14" }, { "n": "猎奇", "v": "15" }, { "n": "科幻", "v": "16" }, { "n": "竞技", "v": "17" }, { "n": "玄幻", "v": "18" }] }, { "key": "iyear", "name": "年代", "value": [{ "n": "全部", "v": "-1" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }] }], "movie": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "83" }, { "n": "好评", "v": "81" }] }, { "key": "type", "name": "类型", "value": [{ "n": "全部", "v": "-1" }, { "n": "犯罪", "v": "4" }, { "n": "励志", "v": "2" }, { "n": "喜剧", "v": "100004" }, { "n": "热血", "v": "100061" }, { "n": "悬疑", "v": "100009" }, { "n": "爱情", "v": "100005" }, { "n": "科幻", "v": "100012" }, { "n": "恐怖", "v": "100010" }, { "n": "动画", "v": "100015" }, { "n": "战争", "v": "100006" }, { "n": "家庭", "v": "100017" }, { "n": "剧情", "v": "100022" }, { "n": "奇幻", "v": "100016" }, { "n": "武侠", "v": "100011" }, { "n": "历史", "v": "100021" }, { "n": "老片", "v": "100013" }, { "n": "西部", "v": "3" }, { "n": "记录片", "v": "100020" }] }, { "key": "year", "name": "年代", "value": [{ "n": "全部", "v": "-1" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }] }], "variety": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "23" }] }, { "key": "iyear", "name": "年代", "value": [{ "n": "全部", "v": "-1" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }] }], "cartoon": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "83" }, { "n": "好评", "v": "81" }] }, { "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "-1" }, { "n": "内地", "v": "1" }, { "n": "日本", "v": "2" }, { "n": "欧美", "v": "3" }, { "n": "其他", "v": "4" }] }, { "key": "type", "name": "类型", "value": [{ "n": "全部", "v": "-1" }, { "n": "玄幻", "v": "9" }, { "n": "科幻", "v": "4" }, { "n": "武侠", "v": "13" }, { "n": "冒险", "v": "3" }, { "n": "战斗", "v": "5" }, { "n": "搞笑", "v": "1" }, { "n": "恋爱", "v": "7" }, { "n": "魔幻", "v": "6" }, { "n": "竞技", "v": "20" }, { "n": "悬疑", "v": "17" }, { "n": "日常", "v": "15" }, { "n": "校园", "v": "16" }, { "n": "真人", "v": "18" }, { "n": "推理", "v": "14" }, { "n": "历史", "v": "19" }, { "n": "经典", "v": "3" }, { "n": "其他", "v": "12" }] }, { "key": "iyear", "name": "年代", "value": [{ "n": "全部", "v": "-1" }, { "n": "2024", "v": "2024" }, { "n": "2023", "v": "2023" }, { "n": "2022", "v": "2022" }, { "n": "2021", "v": "2021" }, { "n": "2020", "v": "2020" }, { "n": "2019", "v": "2019" }, { "n": "2018", "v": "2018" }, { "n": "2017", "v": "2017" }, { "n": "2016", "v": "2016" }, { "n": "2015", "v": "2015" }] }], "child": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "76" }, { "n": "好评", "v": "20" }] }, { "key": "sex", "name": "性别", "value": [{ "n": "全部", "v": "-1" }, { "n": "女孩", "v": "1" }, { "n": "男孩", "v": "2" }] }, { "key": "area", "name": "地区", "value": [{ "n": "全部", "v": "-1" }, { "n": "内地", "v": "3" }, { "n": "日本", "v": "2" }, { "n": "其他", "v": "1" }] }, { "key": "iyear", "name": "年龄段", "value": [{ "n": "全部", "v": "-1" }, { "n": "0-3岁", "v": "1" }, { "n": "4-6岁", "v": "2" }, { "n": "7-9岁", "v": "3" }, { "n": "10岁以上", "v": "4" }, { "n": "全年龄段", "v": "7" }] }], "doco": [{ "key": "sort", "name": "排序", "value": [{ "n": "最热", "v": "75" }, { "n": "最新", "v": "74" }] }, { "key": "itrailer", "name": "出品方", "value": [{ "n": "全部", "v": "-1" }, { "n": "BBC", "v": "1" }, { "n": "国家地理", "v": "4" }, { "n": "HBO", "v": "3175" }, { "n": "NHK", "v": "2" }, { "n": "历史频道", "v": "7" }, { "n": "ITV", "v": "3530" }, { "n": "探索频道", "v": "3174" }, { "n": "ZDF", "v": "3176" }, { "n": "腾讯自制", "v": "15" }, { "n": "合作机构", "v": "6" }, { "n": "其他", "v": "5" }] }, { "key": "type", "name": "类型", "value": [{ "n": "全部", "v": "-1" }, { "n": "自然", "v": "4" }, { "n": "美食", "v": "10" }, { "n": "社会", "v": "3" }, { "n": "人文", "v": "6" }, { "n": "历史", "v": "1" }, { "n": "军事", "v": "2" }, { "n": "科技", "v": "8" }, { "n": "财经", "v": "14" }, { "n": "探险", "v": "15" }, { "n": "罪案", "v": "7" }, { "n": "竞技", "v": "12" }, { "n": "旅游", "v": "11" }] }] },
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36'
|
||||
},
|
||||
timeout: 5000,
|
||||
cate_exclude: '会员|游戏|全部',
|
||||
class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
|
||||
class_url: 'choice&tv&movie&variety&cartoon&child&doco',
|
||||
limit: 20,
|
||||
// play_parse:true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
lazy: '',
|
||||
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
|
||||
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
二级: `js:
|
||||
VOD = {};
|
||||
let d = [];
|
||||
let video_list = [];
|
||||
let video_lists = [];
|
||||
let list = [];
|
||||
let QZOutputJson;
|
||||
let html = fetch(input, fetch_params);
|
||||
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\\d*?)&/)[1] : input.split("cid=")[1];
|
||||
let cid = sourceId;
|
||||
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
|
||||
log("详情页:" + detailUrl);
|
||||
var pdfh = jsp.pdfh;
|
||||
var pd = jsp.pd;
|
||||
try {
|
||||
let json = JSON.parse(html);
|
||||
VOD = {
|
||||
vod_url: input,
|
||||
vod_name: json.c.title,
|
||||
type_name: json.typ.join(","),
|
||||
vod_actor: json.nam.join(","),
|
||||
vod_year: json.c.year,
|
||||
vod_content: json.c.description,
|
||||
vod_remarks: json.rec,
|
||||
vod_pic: urljoin2(input, json.c.pic)
|
||||
}
|
||||
} catch(e) {
|
||||
log("解析片名海报等基础信息发生错误:" + e.message)
|
||||
}
|
||||
if (/get_playsource/.test(input)) {
|
||||
eval(html);
|
||||
let indexList = QZOutputJson.PlaylistItem.indexList;
|
||||
indexList.forEach(function(it) {
|
||||
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
|
||||
eval(fetch(dataUrl, fetch_params));
|
||||
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
|
||||
vdata.forEach(function(item) {
|
||||
d.push({
|
||||
title: item.title,
|
||||
pic_url: item.pic,
|
||||
desc: item.episode_number + "\\t\\t\\t播放量:" + item.thirdLine,
|
||||
url: item.playUrl
|
||||
})
|
||||
});
|
||||
video_lists = video_lists.concat(vdata)
|
||||
})
|
||||
} else {
|
||||
let json = JSON.parse(html);
|
||||
video_lists = json.c.video_ids;
|
||||
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
|
||||
if (video_lists.length === 1) {
|
||||
let vid = video_lists[0];
|
||||
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
|
||||
d.push({
|
||||
title: "在线播放",
|
||||
url: url
|
||||
})
|
||||
} else if (video_lists.length > 1) {
|
||||
for (let i = 0; i < video_lists.length; i += 30) {
|
||||
video_list.push(video_lists.slice(i, i + 30))
|
||||
}
|
||||
video_list.forEach(function(it, idex) {
|
||||
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
|
||||
let o_html = fetch(o_url, fetch_params);
|
||||
eval(o_html);
|
||||
QZOutputJson.results.forEach(function(it1) {
|
||||
it1 = it1.fields;
|
||||
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
|
||||
let parts = it1.series_part_title.split(" ")[1];
|
||||
if (!it1.title.match(/预告/)) {
|
||||
d.push({
|
||||
title: parts ? parts: it1.title,
|
||||
pic_url: it1.pic160x90.replace("/160", ""),
|
||||
desc: it1.video_checkup_time,
|
||||
url: url,
|
||||
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
let zp = d.filter(function(it) {
|
||||
return ! (it.title === "1" && it.type && it.type !== "正片")
|
||||
});
|
||||
VOD.vod_play_from = "腾讯";
|
||||
VOD.vod_play_url = zp.map(function(it) {
|
||||
return it.title + "$" + it.url
|
||||
}).join("#");
|
||||
`,
|
||||
搜索: `js:
|
||||
let d = [];
|
||||
pdfa = jsp.pdfa;
|
||||
pdfh = jsp.pdfh;
|
||||
pd = jsp.pd;
|
||||
let html = request(input);
|
||||
let baseList = pdfa(html, "body&&.result_item_v");
|
||||
if (baseList.length > 0) {
|
||||
baseList.forEach(function(it) {
|
||||
let longText = pdfh(it, ".result_title&&Text");
|
||||
let shortText = pdfh(it, ".sub&&Text");
|
||||
let url = pd(it, "div.result_item_v&&data-id");
|
||||
let img = pd(it, ".figure_pic&&src");
|
||||
let fromTag = pdfh(it, ".result_source&&Text");
|
||||
let markAlt = pd(it, ".mark_v img&&alt");
|
||||
if (fromTag.match(/腾讯/) && shortText && !markAlt.match(/预告/)) {
|
||||
d.push({
|
||||
title: longText.split(shortText)[0],
|
||||
img: img,
|
||||
url: 'https://node.video.qq.com/x/api/float_vinfo2?cid=' + url,
|
||||
desc: shortText.replace('(', "").replace(')', "")
|
||||
})
|
||||
}
|
||||
});
|
||||
} else {
|
||||
let baseLists = pdfa(html, "body&&.list_item");
|
||||
baseLists.forEach(function(it) {
|
||||
let longText = pdfh(it, ".figure_title&&Text");
|
||||
let shortText = pdfh(it, ".figure_desc&&Text");
|
||||
let url = pd(it, ".figure_title&&a&&href");
|
||||
let img = pd(it, ".figure_pic&&src");
|
||||
let fromTag = pd(it, ".source_icon&&alt");
|
||||
const parts = url.split('/');
|
||||
const cid = parts[parts.length - 1].replace('.html', "");
|
||||
if (!fromTag && longText) {
|
||||
d.push({
|
||||
title: longText,
|
||||
img: img,
|
||||
url: 'https://node.video.qq.com/x/api/float_vinfo2?cid=' + cid,
|
||||
desc: shortText
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
var rule = {
|
||||
title: '菜狗',
|
||||
host: 'https://waptv.sogou.com',
|
||||
homeUrl: '',
|
||||
searchUrl: '/film/result?ie=utf8&query=**',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
url: '/napi/video/classlist?abtest=0&iploc=CN1304&spver=&listTab=fyclass&filter=&start=((fypage-1)*15)&len=15&fr=filter',
|
||||
filter_url: 'style={{fl.style}}&zone={{fl.zone}}&year={{fl.year}}&fee={{fl.fee}}&order={{fl.order}}',
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电视剧&电影&动漫&综艺&纪录片',
|
||||
class_url: 'teleplay&film&cartoon&tvshow&documentary',
|
||||
filter: { 'teleplay': [{ 'key': 'style', 'name': '类型', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '爱情', 'v': '爱情' }, { 'n': '喜剧', 'v': '喜剧' }, { 'n': '都市', 'v': '都市' }, { 'n': '悬疑', 'v': '悬疑' }, { 'n': '古装', 'v': '古装' }, { 'n': '偶像', 'v': '偶像' }, { 'n': '犯罪', 'v': '犯罪' }, { 'n': '历史', 'v': '历史' }, { 'n': '战争', 'v': '战争' }, { 'n': '武侠', 'v': '武侠' }, { 'n': '警匪', 'v': '警匪' }, { 'n': '科幻', 'v': '科幻' }, { 'n': '奇幻', 'v': '奇幻' }, { 'n': '谍战', 'v': '谍战' }, { 'n': '农村', 'v': '农村' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'zone', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': '内地' }, { 'n': '香港', 'v': '香港' }, { 'n': '台湾', 'v': '台湾' }, { 'n': '韩国', 'v': '韩国' }, { 'n': '泰国', 'v': '泰国' }, { 'n': '日本', 'v': '日本' }, { 'n': '美国', 'v': '美国' }, { 'n': '英国', 'v': '英国' }, { 'n': '新加坡', 'v': '新加坡' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '更早', 'v': '更早' }] }, { 'key': 'fee', 'name': '资源', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '正片', 'v': '正片' }, { 'n': '免费正片', 'v': '免费正片' }, { 'n': '付费正片', 'v': '付费正片' }] }, { 'key': 'order', 'name': '排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '最新', 'v': '最新' }, { 'n': '好评', 'v': '好评' }] }], 'film': [{ 'key': 'style', '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': '其他' }] }, { 'key': 'zone', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': '内地' }, { 'n': '香港', 'v': '香港' }, { 'n': '台湾', 'v': '台湾' }, { 'n': '韩国', 'v': '韩国' }, { 'n': '泰国', 'v': '泰国' }, { 'n': '日本', 'v': '日本' }, { 'n': '美国', 'v': '美国' }, { 'n': '英国', 'v': '英国' }, { 'n': '新加坡', 'v': '新加坡' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '更早', 'v': '更早' }] }, { 'key': 'fee', 'name': '资源', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '正片', 'v': '正片' }, { 'n': '免费正片', 'v': '免费正片' }, { 'n': '付费正片', 'v': '付费正片' }] }, { 'key': 'order', 'name': '排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '最新', 'v': '最新' }, { 'n': '好评', 'v': '好评' }] }], 'cartoon': [{ 'key': 'style', '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': '其他' }] }, { 'key': 'zone', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '日本', 'v': '日本' }, { 'n': '欧美', 'v': '欧美' }, { 'n': '国产', 'v': '国产' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '更早', 'v': '更早' }] }, { 'key': 'fee', 'name': '资源', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '正片', 'v': '正片' }, { 'n': '免费正片', 'v': '免费正片' }, { 'n': '付费正片', 'v': '付费正片' }] }, { 'key': 'order', 'name': '排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '最新', 'v': '最新' }, { 'n': '好评', 'v': '好评' }] }], 'tvshow': [{ 'key': 'style', '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': '其他' }] }, { 'key': 'zone', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': '内地' }, { 'n': '台湾', 'v': '台湾' }, { 'n': '日韩', 'v': '日韩' }, { 'n': '欧美', 'v': '欧美' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'emcee', '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': '谢娜' }] }, { 'key': 'order', 'name': '排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '最新', 'v': '最新' }, { 'n': '好评', 'v': '好评' }] }], 'documentary': [{ 'key': 'style', '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': '其他' }] }, { 'key': 'zone', 'name': '地区', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '内地', 'v': '内地' }, { 'n': '香港', 'v': '香港' }, { 'n': '台湾', 'v': '台湾' }, { 'n': '韩国', 'v': '韩国' }, { 'n': '泰国', 'v': '泰国' }, { 'n': '日本', 'v': '日本' }, { 'n': '美国', 'v': '美国' }, { 'n': '英国', 'v': '英国' }, { 'n': '新加坡', 'v': '新加坡' }, { 'n': '其他', 'v': '其他' }] }, { 'key': 'year', 'name': '年代', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '2025', 'v': '2025' }, { 'n': '2024', 'v': '2024' }, { 'n': '2023', 'v': '2023' }, { 'n': '2022', 'v': '2022' }, { 'n': '2021', 'v': '2021' }, { 'n': '2020', 'v': '2020' }, { 'n': '2019', 'v': '2019' }, { 'n': '2018', 'v': '2018' }, { 'n': '2017', 'v': '2017' }, { 'n': '2016', 'v': '2016' }, { 'n': '2015', 'v': '2015' }, { 'n': '2014', 'v': '2014' }, { 'n': '更早', 'v': '更早' }] }, { 'key': 'fee', 'name': '资源', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '正片', 'v': '正片' }, { 'n': '免费正片', 'v': '免费正片' }, { 'n': '付费正片', 'v': '付费正片' }] }, { 'key': 'order', 'name': '排序', 'value': [{ 'n': '全部', 'v': '' }, { 'n': '最新', 'v': '最新' }, { 'n': '好评', 'v': '好评' }] }] },
|
||||
limit: 20,
|
||||
play_parse: true,
|
||||
play_json: 1,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
lazy: '',
|
||||
lazy: `js:
|
||||
print(input);
|
||||
fetch_params.headers["User-Agent"]=MOBILE_UA;
|
||||
print(fetch_params);
|
||||
let html=request(input);
|
||||
let rurl=html.match(/window\\.open\\('(.*?)',/)[1];
|
||||
rurl=urlDeal(rurl);
|
||||
input={parse:1,jx:1,url:rurl};
|
||||
`,
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: 'js:let d=[];let html=request(input);html=JSON.parse(html);let list=html.listData.results;list.forEach(function(it){let desc1=it.ipad_play_for_list.finish_episode?it.ipad_play_for_list.episode===it.ipad_play_for_list.finish_episode?"全集"+it.ipad_play_for_list.finish_episode:"连载"+it.ipad_play_for_list.episode+"/"+it.ipad_play_for_list.finish_episode:"";let desc2=it.score?"评分:"+it.score:"";let desc3=it.date?"更至:"+it.date:"";d.push({title:it.name,img:it.v_picurl,url:"https://v.sogou.com"+it.url.replace("teleplay","series").replace("cartoon","series"),desc:desc1||desc2||desc3})});setResult(d);',
|
||||
二级: '',
|
||||
二级: 'js:VOD={};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return urlencode(url)}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){VOD.vod_name=name;VOD.vod_area=emcee+","+tv_station;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_remarks=style+" 评分:"+score+","+update;VOD.vod_content=introduction}else{VOD.vod_name=name;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});VOD.vod_play_from=tabs.join("$$$");let vod_lists=[];print("play_url1:"+play_url);play_url=play_url.replace("&play_url=","&type=json&play_url=");print("play_url2:"+play_url);lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j<day.length;j++){let dayy=day[j][0]>=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k<arr.length;k++){let url="https://v.sogou.com/vc/eplay?query="+arr[k]+"&date="+arr[k]+"&key="+key+"&st=5&tvsite="+plays[idex].site;tmp.push("第"+arr[k]+"期"+"$"+play_url+base64Encode(adhead(url)))}vod_lists.push(tmp.join("#"))}}else if(plays[idex].site){let tmp=[];if(!plays[idex].flag_list.includes("trailer")){tmp.push(plays[idex].sitename[0]+"$"+play_url+base64Encode(adhead(plays[idex].url)))}else{tmp.push(plays[idex].sitename[0]+"—预告"+"$"+play_url+base64Encode(adhead(plays[idex].url)))}vod_lists.push(tmp.join("#"))}});VOD.vod_play_url=vod_lists.join("$$$")}catch(e){let img=json.photo.item_list;VOD.vod_name="本片无选集";VOD.vod_pic=img.length>0?img[0]:""}}catch(e){print("发生了错误:"+e.message)}',
|
||||
// 二级:'js:var vod={vod_id:input};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return url}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){vod.vod_name=name;vod.vod_area=emcee+","+tv_station;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_remarks=style+" 评分:"+score+","+update;vod.vod_content=introduction}else{vod.vod_name=name;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});vod.vod_play_from=tabs.join("$$$");vod_lists=[];play_url=play_url.replace("&play_url=","&type=json&play_url=");lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j<day.length;j++){let dayy=day[j][0]>=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k<arr.length;k++){let url="https://v.sogou.com/vc/eplay?query="+arr[k]+"&date="+arr[k]+"&key="+key+"&st=5&tvsite="+plays[idex].site;tmp.push("第"+arr[k]+"期"+"$"+play_url+base64Encode(adhead(url)))}vod_lists.push(tmp.join("#"))}}else if(plays[idex].site){let tmp=[];if(!plays[idex].flag_list.includes("trailer")){tmp.push(plays[idex].sitename[0]+"$"+play_url+base64Encode(adhead(plays[idex].url)))}else{tmp.push(plays[idex].sitename[0]+"—预告"+"$"+play_url+base64Encode(adhead(plays[idex].url)))}vod_lists.push(tmp.join("#"))}});vod.vod_play_url=vod_lists.join("$$$")}catch(e){let img=json.photo.item_list;vod.vod_name="本片无选集";vod.vod_pic=img.length>0?img[0]:""}}catch(e){}',
|
||||
搜索: '',
|
||||
搜索: `js:
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let jsonA = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]);
|
||||
print(jsonA);
|
||||
jsonA = jsonA.result.resultData.searchData.results;
|
||||
jsonA.forEach(function(it) {
|
||||
let name = it.name;
|
||||
let introduction = it.introduction;
|
||||
let pic = it.v_picurl;
|
||||
let url = it.tiny_url;
|
||||
let zone = it.zone;
|
||||
let score = it.score || "暂无";
|
||||
let style = it.style;
|
||||
if (it.play_info && it.play_info.play_list) {
|
||||
let r = {};
|
||||
r.title = name.replace(//, "").replace(//, "");
|
||||
r.url = "https://v.sogou.com" + url.replace(/teleplay|cartoon/g, 'series');
|
||||
r.desc = it.listCategory.join(",");
|
||||
r.content = introduction;
|
||||
r.pic_url = pic;
|
||||
d.push(r)
|
||||
}
|
||||
});
|
||||
setResult(d);`,
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
var rule = {
|
||||
title:'蜻蜓FM',
|
||||
host:'http://www.qingting.fm',
|
||||
url:'/radiopage/fyclass/fypage',
|
||||
searchUrl:'',
|
||||
searchable:0,
|
||||
quickSearch:0,
|
||||
class_name:'广东&浙江&北京&天津&河北&上海&山西&内蒙古&辽宁&吉林&黑龙江&江苏&安徽&福建&江西&山东&河南&湖北&湖南&广西&海南&重庆&四川&贵州&云南&陕西&甘肃&宁夏&新疆&西藏&青海&资讯&音乐&交通&经济&文艺&都市&体育&双语&综合&生活&旅游&曲艺&方言',
|
||||
class_url:'217&99&3&5&7&83&19&31&44&59&69&85&111&129&139&151&169&187&202&239&254&257&259&281&291&316&327&351&357&308&342&433&442&429&439&432&441&430&431&440&438&435&436&434',
|
||||
headers:{
|
||||
'User-Agent':'PC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
play_json:0,
|
||||
lazy:'js:input=input.replace("www.qingting.fm/radios/","lhttp.qingting.fm/live/")+"/64k.mp3"',
|
||||
limit:6,
|
||||
double:false,
|
||||
//推荐:'*',
|
||||
一级:'.contentSec&&.radio;span&&Text;img&&src;.descRadio&&Text;a&&href',
|
||||
二级:'*',
|
||||
搜索:'',
|
||||
|
||||
//是否启用辅助嗅探: 1,0
|
||||
sniffer:1,
|
||||
// 辅助嗅探规则
|
||||
isVideo:"http((?!http).){26,}\\.(m3u8|mp4|flv|avi|mkv|wmv|mpg|mpeg|mov|ts|3gp|rm|rmvb|asf|m4a|mp3|wma)",
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
var rule = {
|
||||
title: '路漫漫',
|
||||
// host:'https://www.96ba.com',
|
||||
host: 'https://www.wzwt369.com',
|
||||
// url:'/vod/show/id/fyclass/page/fypage.html',
|
||||
url: '/vod/show/id/fyclassfyfilter.html',
|
||||
filterable: 1,//是否启用分类筛选,
|
||||
filter_url: '{{fl.by}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"ribendongman": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }],
|
||||
"guochandongman": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }],
|
||||
"oumeidongman": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }],
|
||||
"ribendonghuadianying": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }],
|
||||
"guochandonghuadianying": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }],
|
||||
"oumeidonghuadianying": [{ "key": "year", "name": "年份", "value": [{ "n": "全部", "v": "" }, { "n": "2024", "v": "/year/2024" }, { "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": "更早", "v": "/year/2013-1980" }] }, { "key": "by", "name": "排序", "value": [{ "n": "更新", "v": "/by/time" }, { "n": "人气", "v": "/by/hits" }, { "n": "评分", "v": "/by/score" }, { "n": "点赞", "v": "/by/up" }] }]
|
||||
},
|
||||
searchUrl: '/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
class_parse: '.container&&.tag.text-light;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (/m3u8/.test(url)) {
|
||||
input = url.split("&")[0]
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
推荐: '.owl-theme-jable .item;*;*;*;*',
|
||||
一级: '#mdym .col-6;h6&&Text;.lazyload&&data-src;.label&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.video-info-aux&&Text",
|
||||
"img": ".url_img&&src",
|
||||
"desc": ".video-info-items--span:eq(3)&&Text;;;.video-info-actor:eq(1)&&Text;.video-info-actor:eq(0)&&Text",
|
||||
"content": ".content-text&&Text",
|
||||
"tabs": ".module-tab-content .tab-item",
|
||||
"lists": ".scroll-content:eq(#id) a"
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
var rule = {
|
||||
title:'酷6网',
|
||||
host:'https://www.ku6.com',
|
||||
homeUrl:'/video/feed?pageNo=0&pageSize=20',
|
||||
url:'/video/feed?subjectId=fyclass&pageNo=fypage',
|
||||
class_name:'资讯&娱乐&搞笑&少儿&自制节目&影视&音乐&原创&生活&游戏&健康&汽车&时事',
|
||||
class_url:'69&70&76&73&71&72&74&75&80&93&81&47&149',
|
||||
searchUrl:'',
|
||||
searchable:0,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA',
|
||||
},
|
||||
timeout:5000,
|
||||
limit:6,
|
||||
play_parse:true,
|
||||
lazy:'js:if(/detail.html/.test(input)){var vid=input.split("~")[1];var reqUrl="https://news-stream.lsttnews.com/topic/recommend/vinfo?vid="+vid;purl=JSON.parse(request(reqUrl)).data.video.src;input={jx:0,url:purl,parse:0}}else{input={jx:0,url:input,parse:0}}',
|
||||
// lazy:'',
|
||||
推荐:'*',
|
||||
一级:'json:data;title;picPath;publisher;playUrl',
|
||||
二级:'*',
|
||||
搜索:'',
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
var rule = {
|
||||
title:'酷奇MV',
|
||||
host:'https://www.kuqimv.com',
|
||||
// homeUrl:'/play/',
|
||||
url:'/play/fyclass_fypage.html',
|
||||
searchUrl:'/search.php?key=**&pages=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
// class_parse:'.main:eq(1)&&li;a&&Text;a&&href;.*/(\\d+)_1.html',
|
||||
// class_parse:'.lei_class&&a;a&&Text;a&&href;.*/(\\d+)_1.html',
|
||||
class_name:'华语高清&日韩精选&欧美MV&高清现场&影视MV&夜店视频&车模视频&热舞视频&美女写真&美女打碟',
|
||||
class_url:'1&2&3&4&5&6&7&8&9&10',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
一级:'js:var d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);let list=pdfa(html,".mv_list&&li");list.forEach((it)=>{d.push({title:pdfh(it,".name&&Text"),desc:"🎤"+pdfh(it,".singer&&Text")+"|"+pdfh(it,".time&&Text"),pic_url:pd(it,"img&&src"),url:pd(it,"a&&href"),})});setResult(d);',
|
||||
二级:'*',
|
||||
搜索:'.video_list&&li;a&&title;;.singer&&Text;a&&href;.t_03:eq(1)&&Text',
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
LyoqCiAqIOW8uueDiOaOqOiNkOmdmeaAgeWIhuexu+OAguWPr+S7peWKoOW/q+mAn+W6piEhIQogKiDkuI3lu7rorq46CiAqIOS8oOWPgiA/dHlwZT11cmwmcGFyYW1zPS4uL2pzb24v6YeH6ZuGLmpzb24KICog5bu66K6u77yaCiAqIOS8oOWPgiA/dHlwZT11cmwmcGFyYW1zPS4uL2pzb24v6YeH6ZuG6Z2Z5oCBLmpzb24kMQogKiDkvKDlj4IgP3R5cGU9dXJsJnBhcmFtcz0uLi9qc29uL+mHh+mbhlt6eV3pnZnmgIEuanNvbiQxCiAqIOS8oOWPgiA/dHlwZT11cmwmcGFyYW1zPS4uL2pzb24v6YeH6ZuGW+Wvhl3pnZnmgIEuanNvbiQxCiAqIGhpcHktc2VydmVy5pSv5oyBQOaUueWQjeavlOWmgjoKICog5Lyg5Y+CID90eXBlPXVybCZwYXJhbXM9Li4vanNvbi/ph4fpm4bpnZnmgIEuanNvbiQxQOmHh+eOi+mBk+mVv1vlkIhdCiAqIOS8oOWPgiA/dHlwZT11cmwmcGFyYW1zPS4uL2pzb24v6YeH6ZuGW3p5XemdmeaAgS5qc29uJDFA6YeH546Lenlb5a+GXQogKiDkvKDlj4IgP3R5cGU9dXJsJnBhcmFtcz0uLi9qc29uL+mHh+mbhlvlr4Zd6Z2Z5oCBLmpzb25A6YeH546L5oiQ5Lq6W+Wvhl0KICogW3sibmFtZSI6IuaatOmjjui1hOa6kCIsInVybCI6Imh0dHBzOi8vYmZ6eWFwaS5jb20iLCJwYXJzZV91cmwiOiIifSx7Im5hbWUiOiLpo57liIDotYTmupAiLCJ1cmwiOiJodHRwOi8vd3d3LmZlaWRhb3p5LmNvbSIsInBhcnNlX3VybCI6IiJ9LHsibmFtZSI6Ium7keacqOiAs+i1hOa6kCIsInVybCI6Imh0dHBzOi8vd3d3LmhlaW11ZXIudHYiLCJwYXJzZV91cmwiOiIifV0KICovCmdsb2JhbFRoaXMuZ2V0UmFuZG9tSXRlbSA9IGZ1bmN0aW9uIChpdGVtcykgey8v5LuO5YiX6KGo6ZqP5py65Y+W5Ye65LiA5Liq5YWD57SgCiAgICByZXR1cm4gaXRlbXNbTWF0aC5yYW5kb20oKSAqIGl0ZW1zLmxlbmd0aCB8IDBdOwp9CnZhciBydWxlID0gewogICAgdGl0bGU6ICfph4fpm4bkuYvnjotb5ZCIXScsCiAgICBhdXRob3I6ICfpgZPplb8nLAogICAgdmVyc2lvbjogJzIwMjQwNzA2IGJldGExNycsCiAgICB1cGRhdGVfaW5mbzogYAoyMDI0MDcwNjoKMS7pnZnmgIFqc29u5pWw5o2u5pSv5oyBY2F0ZV9leGNsdWRlc+WIhuexu+WQjeensOWIl+ihqOi/h+a7pOaXoOaVsOaNruWIhuexuwoyLuabtOaWsOmHh+mbhuWIhuexu+eUn+aIkOWZqOWinuWKoOi/h+a7pOetm+mAieaooeW8jwoyMDI0MDcwNToKMS7mlK/mjIHkvKDlj4Jqc29u5ZCO6Z2i5aKe5YqgJDEg6L+Z5qC355qE6aKd5aSW5qCH6K+G77yM55So5LqO5pCc57Si57uT5p6c57K+5YeG5Yy56YWNCjIu5pSv5oyB5Lyg5Y+CanNvbuWQjumdouWinuWKoCQxJDEg6L+Z5qC355qE6aKd5aSW5qCH6K+G77yM55So5LqO5by65Yi26I635Y+W5pCc57Si5Zu+54mH44CCJDEk5LiN5pi+56S65Zu+54mH44CC6buY6K6k5piv5pCc57Si5by65Yi25pyJ5Zu+54mH55qEW+W3suWunueOsOivpuaDhemhteivt+axguS9v+eUqOaJuemHj10KMy7kv67lpI3kuoznuqfmlbDmja7ml6Dluo/ljLnphY3mkJzntKLliJfooajlm77niYfnmoTpl67popgKNC7kv67mlLnmkJzntKLnsr7lh4blkozlm77niYfmmL7npLrpop3lpJblj4LmlbDpl7TpmpTnrKbku44j5Y+Y5Li6JAoyMDI0MDcwMzoKMS7ph4fpm4Zqc29u5pSv5oyBInNlYXJjaGFibGUiOiAwLOeUqOS6juaQnOe0ouaXtuaOkumZpOi/meS4qua6kAoyMDI0MDYwNDoKMS7pppbpobXmjqjojZDlj5bmtojnoazmjqfnrYnlvoXjgILlop7liqDpmo/mnLrmjqjojZDlip/og73jgIIKMi7pppbpobXmjqjojZDmlrDlop7mm7TmlrDml6Xlv5fmn6XnnIvlip/og70K44CQ54m55Yir6K+05piO44CR55uu5YmN5Y+q5pSv5oyB5qCH5YeGanNvbuagvOW8j+eahOmHh+mbhuermSjotYTmupDnq5nkuIDoiKzpg73mj5Dkvpt4bWzlkoxqc29u5Lik56eN5o6l5Y+j77yM55uu5YmN5rKh5pyJ5pSv5oyBeG1s55qE5oOz5rOV77yM5rKh5LuA5LmI5b+F6KaBKQrmnInkupvotYTmupDnq5nnmoRqc29u5o6l5Y+j5LiN5piv5qCH5YeG55qEL2FwaS5waHAvcHJvdmlkZS92b2QvLOmcgOimgeiHquW3seWcqOmHh+mbhumdmeaAgS5qc29u5Lit57yW6L6R5a+55bqU55qEYXBp5bGe5oCn5aGr5YaZ5q+U5aaCOi9hcGkucGhwL3Byb3ZpZGUvdm9kL2F0L2pzb24vCuacieS6m+i1hOa6kOermeeahOmHh+mbhuaVsOaNruaYr+WKoOWvhuWQjueahOWIh+eJh+eJh+aute+8jOWPr+iDvemcgOimgemHh+mbhuermeeJueWumueahOino+aekOaOpeWPo++8jOmcgOimgeiHquW3see8lui+kWpzb27ph4znmoRwYXJzZV91cmzlsZ7mgKcK6LWE5rqQ56uZ6YOo5YiG5aSn5YiG57G75LiL5peg5pWw5o2u5b6I5q2j5bi477yM5Y+v5Lul6Ieq6KGM57yW6L6RanNvbumHjGNhdGVfZXhjbHVkZeWxnuaAp+aOkumZpOaOieiHquW3sea1i+ivlei/h+aXoOaVsOaNrueahOWIhuexuyjlsI/nqIvluo/ml6Dms5Xoh6rliqjor4bliKvvvIzlj6rog73kurrlt6XmtYvlpb3lk6rkupvliIbnsbvml6DmlbDmja4pCmAudHJpbSgpLAogICAgaG9zdDogJycsCiAgICBob21lVGlkOiAnJywgLy8g6aaW6aG15o6o6I2Q44CC5LiA6Iis5aGr5YaZ56ys5LiA5Liq6LWE5rqQ56uZ55qE5oOz6KaB55qE5o6o6I2Q5YiG57G755qEaWQu5Y+v5Lul56m6CiAgICBob21lVXJsOiAnL2FwaS5waHAvcHJvdmlkZS92b2QvP2FjPWRldGFpbCZ0PXt7cnVsZS5ob21lVGlkfX0nLAogICAgZGV0YWlsVXJsOiAnL2FwaS5waHAvcHJvdmlkZS92b2QvP2FjPWRldGFpbCZpZHM9ZnlpZCcsCiAgICBzZWFyY2hVcmw6ICcvYXBpLnBocC9wcm92aWRlL3ZvZC8/d2Q9KiomcGc9I1RydWVQYWdlIyNwYWdlPWZ5cGFnZScsCiAgICBjbGFzc1VybDogJy9hcGkucGhwL3Byb3ZpZGUvdm9kLycsCiAgICB1cmw6ICcvYXBpLnBocC9wcm92aWRlL3ZvZC8/YWM9ZGV0YWlsJnBnPWZ5cGFnZSZ0PWZ5ZmlsdGVyJywKICAgIGZpbHRlcl91cmw6ICd7e2ZsLuexu+Wei319JywKICAgIGhlYWRlcnM6IHsnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnfSwKICAgIHRpbWVvdXQ6IDUwMDAsIC8vIGNsYXNzX25hbWU6ICfnlLXlvbEm55S16KeG5YmnJue7vOiJuibliqjmvKsnLAogICAgbGltaXQ6IDIwLAogICAgc2VhcmNoX2xpbWl0OiA1LCAvLyDmkJzntKLpmZDliLblj5bliY015Liq77yM5Y+v5Lul5rOo6YeK5o6J77yM5bCx5LiN6ZmQ5Yi25pCc57SiCiAgICBzZWFyY2hhYmxlOiAxLC8v5piv5ZCm5ZCv55So5YWo5bGA5pCc57SiLAogICAgcXVpY2tTZWFyY2g6IDAsLy/mmK/lkKblkK/nlKjlv6vpgJ/mkJzntKIsCiAgICBmaWx0ZXJhYmxlOiAxLC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIHBhcnNlX3VybDogJycsIC8vIOi/meS4quWPguaVsOaaguaXtuS4jei1t+S9nOeUqOOAguiBmuWQiOexu+eahOavj+S4qui1hOa6kOW6lOivpeacieiHquW3seeLrOeri+eahOino+aekOWPo+OAguWNleeLrOmFjee9ruWcqOmHh+mbhi5qc29u6YeM55qEcGFyc2VfdXJs5pyJ5pWICiAgICBzZWFyY2hfbWF0Y2g6IGZhbHNlLCAvLyDmkJzntKLnsr7lh4bljLnphY0KICAgIHNlYXJjaF9waWM6IHRydWUsIC8vIOaQnOe0ouW8uuWItumcgOimgeWbvueJhwogICAgLy8gcGFyYW1zOiAnaHR0cDovLzEyNy4wLjAuMTo1NzA3L2ZpbGVzL2pzb24vJUU5JTg3JTg3JUU5JTlCJTg2Lmpzb24nLAogICAgLy8gcGFyYW1zOiAnaHR0cDovLzEyNy4wLjAuMTo1NzA3L2ZpbGVzL2pzb24v6YeH6ZuG6Z2Z5oCBLmpzb24kMScsCiAgICAvLyBwYXJhbXM6ICdodHRwOi8vMTI3LjAuMC4xOjU3MDcvZmlsZXMvanNvbi/ph4fpm4Zbenld6Z2Z5oCBLmpzb24kMScsCiAgICAvLyBob3N0SnM6JGpzLnRvU3RyaW5nKCgpPT57CiAgICAvLwogICAgLy8gfSksCiAgICDpooTlpITnkIY6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgZnVuY3Rpb24gZ2V0Q2xhc3NlcyhpdGVtKSB7CiAgICAgICAgICAgIGxldCBjbGFzc2VzID0gW107CiAgICAgICAgICAgIGlmIChpdGVtLmNsYXNzX25hbWUgJiYgaXRlbS5jbGFzc191cmwpIHsKICAgICAgICAgICAgICAgIGlmICghLyZ855S15b2xfOeUteinhuWJp3znu7zoibp85Yqo5ryrW1x1NEUwMC1cdTlGQTVdKy8udGVzdChpdGVtLmNsYXNzX25hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jbGFzc19uYW1lID0gdW5nemlwKGl0ZW0uY2xhc3NfbmFtZSkKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhg5LiN6K+G5Yir55qEY2xhc3NfbmFtZeWvvOiHtGd6aXDop6PnoIHlpLHotKU6JHtlfWApCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc2VzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbGV0IG5hbWVzID0gaXRlbS5jbGFzc19uYW1lLnNwbGl0KCcmJyk7CiAgICAgICAgICAgICAgICBsZXQgdXJscyA9IGl0ZW0uY2xhc3NfdXJsLnNwbGl0KCcmJyk7CiAgICAgICAgICAgICAgICBsZXQgY250ID0gTWF0aC5taW4obmFtZXMubGVuZ3RoLCB1cmxzLmxlbmd0aCk7CiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNudDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGVfaWQnOiB1cmxzW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwZV9uYW1lJzogbmFtZXNbaV0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY2xhc3NlcwogICAgICAgIH0KCiAgICAgICAgaWYgKHR5cGVvZiAoYmF0Y2hGZXRjaCkgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgLy8g5pSv5oyB5om56YeP6K+35rGC55u05o6l5pS+6aOe6Ieq5oiR44CC5pCc57Si6ZmQ5Yi25pyA5aSn57q/56iL5pWw6YePMTYKICAgICAgICAgICAgcnVsZS5zZWFyY2hfbGltaXQgPSAxNjsKICAgICAgICAgICAgbG9nKCflvZPliY3nqIvluo/mlK/mjIHmibnph4/or7fmsYJbYmF0Y2hGZXRjaF0s5pCc57Si6ZmQ5Yi25bey6K6+572u5Li6MTYnKTsKICAgICAgICB9CiAgICAgICAgbGV0IF91cmwgPSBydWxlLnBhcmFtczsKICAgICAgICBsb2coYOS8oOWFpeWPguaVsDoke191cmx9YCk7CiAgICAgICAgaWYgKF91cmwgJiYgdHlwZW9mIChfdXJsKSA9PT0gJ3N0cmluZycgJiYgL14oaHR0cHxmaWxlKS8udGVzdChfdXJsKSkgewogICAgICAgICAgICBpZiAoX3VybC5pbmNsdWRlcygnJCcpKSB7CiAgICAgICAgICAgICAgICBsZXQgX3VybF9wYXJhbXMgPSBfdXJsLnNwbGl0KCckJyk7CiAgICAgICAgICAgICAgICBfdXJsID0gX3VybF9wYXJhbXNbMF07CiAgICAgICAgICAgICAgICBydWxlLnNlYXJjaF9tYXRjaCA9ICEhKF91cmxfcGFyYW1zWzFdKTsKICAgICAgICAgICAgICAgIGlmIChfdXJsX3BhcmFtcy5sZW5ndGggPiAyKSB7IC8vIOW8uuWItuWbvueJhwogICAgICAgICAgICAgICAgICAgIHJ1bGUuc2VhcmNoX3BpYyA9ICEhKF91cmxfcGFyYW1zWzJdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoX3VybCk7CiAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgbGV0IF9jbGFzc2VzID0gW107CiAgICAgICAgICAgIHJ1bGUuZmlsdGVyID0ge307CiAgICAgICAgICAgIHJ1bGUuZmlsdGVyX2RlZiA9IHt9OwogICAgICAgICAgICBqc29uLmZvckVhY2goaXQgPT4gewogICAgICAgICAgICAgICAgbGV0IF9vYmogPSB7CiAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lOiBpdC5uYW1lLAogICAgICAgICAgICAgICAgICAgIHR5cGVfaWQ6IGl0LnVybCwKICAgICAgICAgICAgICAgICAgICBwYXJzZV91cmw6IGl0LnBhcnNlX3VybCB8fCAnJywKICAgICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlOiBpdC5zZWFyY2hhYmxlICE9PSAwLAogICAgICAgICAgICAgICAgICAgIGFwaTogaXQuYXBpIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIGNhdGVfZXhjbHVkZTogaXQuY2F0ZV9leGNsdWRlIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIGNhdGVfZXhjbHVkZXM6IGl0LmNhdGVfZXhjbHVkZXMgfHwgW10sCiAgICAgICAgICAgICAgICAgICAgLy8gY2xhc3NfbmFtZTogaXQuY2xhc3NfbmFtZSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAvLyBjbGFzc191cmw6IGl0LmNsYXNzX3VybCB8fCAnJywKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBfY2xhc3Nlcy5wdXNoKF9vYmopOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBsZXQganNvbjEgPSBbXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXQuY2xhc3NfbmFtZSAmJiBpdC5jbGFzc191cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAganNvbjEgPSBnZXRDbGFzc2VzKGl0KTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBqc29uMSA9IEpTT04ucGFyc2UocmVxdWVzdCh1cmxqb2luKF9vYmoudHlwZV9pZCwgX29iai5hcGkgfHwgcnVsZS5jbGFzc1VybCkpKS5jbGFzczsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKF9vYmouY2F0ZV9leGNsdWRlcyAmJiBBcnJheS5pc0FycmF5KF9vYmouY2F0ZV9leGNsdWRlcykgJiYgX29iai5jYXRlX2V4Y2x1ZGVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAganNvbjEgPSBqc29uMS5maWx0ZXIoY2wgPT4gIV9vYmouY2F0ZV9leGNsdWRlcy5pbmNsdWRlcyhjbC50eXBlX25hbWUpKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKF9vYmouY2F0ZV9leGNsdWRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGpzb24xID0ganNvbjEuZmlsdGVyKGNsID0+ICFuZXcgUmVnRXhwKF9vYmouY2F0ZV9leGNsdWRlLCAnaScpLnRlc3QoY2wudHlwZV9uYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJ1bGUuZmlsdGVyW19vYmoudHlwZV9pZF0gPSBbewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogIuexu+WeiyIsICJuYW1lIjogIuexu+WeiyIsICJ2YWx1ZSI6IGpzb24xLm1hcChpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7Im4iOiBpLnR5cGVfbmFtZSwgJ3YnOiBpLnR5cGVfaWR9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24xLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5maWx0ZXJfZGVmW2l0LnVybF0gPSB7Iuexu+WeiyI6IGpzb24xWzBdLnR5cGVfaWR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICBydWxlLmZpbHRlcltpdC51cmxdID0gW3sia2V5IjogIuexu+WeiyIsICJuYW1lIjogIuexu+WeiyIsICJ2YWx1ZSI6IFt7Im4iOiAi5YWo6YOoIiwgInYiOiAiIn1dfV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBydWxlLmNsYXNzZXMgPSBfY2xhc3NlczsKICAgICAgICB9CiAgICB9KSwKICAgIC8vIGNsYXNzX3BhcnNlOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgLy8gICAgIGxldCBfdXJsID0gcnVsZS5wYXJhbXM7CiAgICAvLyAgICAgaWYgKF91cmwgJiYgdHlwZW9mIChfdXJsKSA9PT0gJ3N0cmluZycgJiYgX3VybC5zdGFydHNXaXRoKCdodHRwJykpIHsKICAgIC8vICAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KF91cmwpOwogICAgLy8gICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAvLyAgICAgICAgIGxldCBfY2xhc3NlcyA9IFtdOwogICAgLy8gICAgICAgICBob21lT2JqLmZpbHRlciA9IHt9OwogICAgLy8gICAgICAgICBydWxlLmZpbHRlcl9kZWYgPSB7fTsKICAgIC8vICAgICAgICAganNvbi5mb3JFYWNoKGl0ID0+IHsKICAgIC8vICAgICAgICAgICAgIGxldCBfb2JqID0gewogICAgLy8gICAgICAgICAgICAgICAgIHR5cGVfbmFtZTogaXQubmFtZSwKICAgIC8vICAgICAgICAgICAgICAgICB0eXBlX2lkOiBpdC51cmwsCiAgICAvLyAgICAgICAgICAgICAgICAgcGFyc2VfdXJsOiBpdC5wYXJzZV91cmwgfHwgJycsCiAgICAvLyAgICAgICAgICAgICAgICAgY2F0ZV9leGNsdWRlOiBpdC5jYXRlX2V4Y2x1ZGUgfHwgJycsCiAgICAvLyAgICAgICAgICAgICB9OwogICAgLy8gICAgICAgICAgICAgX2NsYXNzZXMucHVzaChfb2JqKTsKICAgIC8vICAgICAgICAgICAgIHRyeSB7CiAgICAvLyAgICAgICAgICAgICAgICAgbGV0IGpzb24xID0gSlNPTi5wYXJzZShyZXF1ZXN0KHVybGpvaW4oX29iai50eXBlX2lkLCBydWxlLmNsYXNzVXJsKSkpLmNsYXNzOwogICAgLy8gICAgICAgICAgICAgICAgIGlmIChfb2JqLmNhdGVfZXhjbHVkZSkgewogICAgLy8gICAgICAgICAgICAgICAgICAgICBqc29uMSA9IGpzb24xLmZpbHRlcihjbCA9PiAhbmV3IFJlZ0V4cChfb2JqLmNhdGVfZXhjbHVkZSwgJ2knKS50ZXN0KGNsLnR5cGVfbmFtZSkpOwogICAgLy8gICAgICAgICAgICAgICAgIH0KICAgIC8vICAgICAgICAgICAgICAgICBob21lT2JqLmZpbHRlcltfb2JqLnR5cGVfaWRdID0gW3sKICAgIC8vICAgICAgICAgICAgICAgICAgICAgImtleSI6ICLnsbvlnosiLCAibmFtZSI6ICLnsbvlnosiLCAidmFsdWUiOiBqc29uMS5tYXAoaSA9PiB7CiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyJuIjogaS50eXBlX25hbWUsICd2JzogaS50eXBlX2lkfQogICAgLy8gICAgICAgICAgICAgICAgICAgICB9KQogICAgLy8gICAgICAgICAgICAgICAgIH1dOwogICAgLy8gICAgICAgICAgICAgICAgIGlmIChqc29uMS5sZW5ndGggPiAwKSB7CiAgICAvLyAgICAgICAgICAgICAgICAgICAgIHJ1bGUuZmlsdGVyX2RlZltpdC51cmxdID0geyLnsbvlnosiOiBqc29uMVswXS50eXBlX2lkfTsKICAgIC8vICAgICAgICAgICAgICAgICB9CiAgICAvLyAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAvLyAgICAgICAgICAgICAgICAgaG9tZU9iai5maWx0ZXJbaXQudXJsXSA9IFt7ImtleSI6ICLnsbvlnosiLCAibmFtZSI6ICLnsbvlnosiLCAidmFsdWUiOiBbeyJuIjogIuWFqOmDqCIsICJ2IjogIiJ9XX1dOwogICAgLy8gICAgICAgICAgICAgfQogICAgLy8gICAgICAgICB9KTsKICAgIC8vICAgICAgICAgcnVsZS5jbGFzc2VzID0gX2NsYXNzZXM7CiAgICAvLyAgICAgICAgIGlucHV0ID0gX2NsYXNzZXM7CiAgICAvLyAgICAgfQogICAgLy8gfSksCiAgICBjbGFzc19wYXJzZTogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBpbnB1dCA9IHJ1bGUuY2xhc3NlczsKICAgIH0pLAogICAg5o6o6I2QOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGxldCB1cGRhdGVfaW5mbyA9IFt7CiAgICAgICAgICAgIHZvZF9uYW1lOiAn5pu05paw5pel5b+XJywKICAgICAgICAgICAgdm9kX2lkOiAndXBkYXRlX2luZm8nLAogICAgICAgICAgICB2b2RfcmVtYXJrczogYOeJiOacrDoke3J1bGUudmVyc2lvbn1gLAogICAgICAgICAgICB2b2RfcGljOiAnaHR0cHM6Ly9naHByb3h5Lm5ldC9odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vaGpkaG54L2hpcHktc2VydmVyL21hc3Rlci9hcHAvc3RhdGljL2ltZy9sb2dvLnBuZycKICAgICAgICB9XTsKICAgICAgICBWT0RTID0gW107CiAgICAgICAgaWYgKHJ1bGUuY2xhc3NlcykgewogICAgICAgICAgICBsZXQgcmFuZG9tQ2xhc3MgPSBnZXRSYW5kb21JdGVtKHJ1bGUuY2xhc3Nlcyk7CiAgICAgICAgICAgIGxldCBfdXJsID0gdXJsam9pbihyYW5kb21DbGFzcy50eXBlX2lkLCBpbnB1dCk7CiAgICAgICAgICAgIGlmIChyYW5kb21DbGFzcy5hcGkpIHsKICAgICAgICAgICAgICAgIF91cmwgPSBfdXJsLnJlcGxhY2UoJy9hcGkucGhwL3Byb3ZpZGUvdm9kLycsIHJhbmRvbUNsYXNzLmFwaSkKICAgICAgICAgICAgfQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KF91cmwsIHt0aW1lb3V0OiBydWxlLnRpbWVvdXR9KTsKICAgICAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgICAgIFZPRFMgPSBqc29uLmxpc3Q7CiAgICAgICAgICAgICAgICBWT0RTLmZvckVhY2goaXQgPT4gewogICAgICAgICAgICAgICAgICAgIGl0LnZvZF9pZCA9IHJhbmRvbUNsYXNzLnR5cGVfaWQgKyAnJCcgKyBpdC52b2RfaWQ7CiAgICAgICAgICAgICAgICAgICAgaXQudm9kX3JlbWFya3MgPSBpdC52b2RfcmVtYXJrcyArICd8JyArIHJhbmRvbUNsYXNzLnR5cGVfbmFtZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgVk9EUyA9IHVwZGF0ZV9pbmZvLmNvbmNhdChWT0RTKTsKICAgIH0pLAogICAg5LiA57qnOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIFZPRFMgPSBbXTsKICAgICAgICBpZiAocnVsZS5jbGFzc2VzKSB7CiAgICAgICAgICAgIC8vIGxvZyhpbnB1dCk7CiAgICAgICAgICAgIGxldCBfdXJsID0gdXJsam9pbihNWV9DQVRFLCBpbnB1dCk7CiAgICAgICAgICAgIGxldCBjdXJyZW50X3ZvZCA9IHJ1bGUuY2xhc3Nlcy5maW5kKGl0ZW0gPT4gaXRlbS50eXBlX2lkID09PSBNWV9DQVRFKTsKICAgICAgICAgICAgaWYgKGN1cnJlbnRfdm9kICYmIGN1cnJlbnRfdm9kLmFwaSkgewogICAgICAgICAgICAgICAgX3VybCA9IF91cmwucmVwbGFjZSgnL2FwaS5waHAvcHJvdmlkZS92b2QvJywgY3VycmVudF92b2QuYXBpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChfdXJsKTsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICBWT0RTID0ganNvbi5saXN0OwogICAgICAgICAgICBWT0RTLmZvckVhY2goaXQgPT4gewogICAgICAgICAgICAgICAgaXQudm9kX2lkID0gTVlfQ0FURSArICckJyArIGl0LnZvZF9pZAogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9KSwKICAgIC8vIOS4gOe6pzogJ2pzb246bGlzdDt2b2RfbmFtZTt2b2RfcGljO3ZvZF9yZW1hcmtzO3ZvZF9pZDt2b2RfcGxheV9mcm9tJywKICAgIOS6jOe6pzogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBWT0QgPSB7fTsKICAgICAgICBpZiAob3JJZCA9PT0gJ3VwZGF0ZV9pbmZvJykgewogICAgICAgICAgICBWT0QgPSB7CiAgICAgICAgICAgICAgICB2b2RfY29udGVudDogcnVsZS51cGRhdGVfaW5mby50cmltKCksCiAgICAgICAgICAgICAgICB2b2RfbmFtZTogJ+abtOaWsOaXpeW/lycsCiAgICAgICAgICAgICAgICB0eXBlX25hbWU6ICfmm7TmlrDml6Xlv5cnLAogICAgICAgICAgICAgICAgdm9kX3BpYzogJ2h0dHBzOi8vcmVzb3VyY2UtY2RuLnR1eGlhb2JlaS5jb20vdmlkZW8vRnRXaHMybWV3WF83bkV1RTUxX2s2enZnNmF3bC5wbmcnLAogICAgICAgICAgICAgICAgdm9kX3JlbWFya3M6IGDniYjmnKw6JHtydWxlLnZlcnNpb259YCwKICAgICAgICAgICAgICAgIHZvZF9wbGF5X2Zyb206ICfpgZPplb/lnKjnur8nLAogICAgICAgICAgICAgICAgLy8gdm9kX3BsYXlfdXJsOiAn5ZeF5o6i5pKt5pS+JGh0dHBzOi8vcmVzb3VyY2UtY2RuLnR1eGlhb2JlaS5jb20vdmlkZW8vMTAvOGYvMTA4ZmM5ZDFhYzNmNjlkMjlhNzM4Y2RjMDk3YzkwMTgubXA0JywKICAgICAgICAgICAgICAgIHZvZF9wbGF5X3VybDogJ+maj+acuuWwj+inhumikSRodHRwOi8vYXBpLnl1am4uY24vYXBpL3p6eGpqLnBocCcsCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHJ1bGUuY2xhc3NlcykgewogICAgICAgICAgICAgICAgbGV0IF91cmwgPSB1cmxqb2luKGZ5Y2xhc3MsIGlucHV0KTsKICAgICAgICAgICAgICAgIGxldCBjdXJyZW50X3ZvZCA9IHJ1bGUuY2xhc3Nlcy5maW5kKGl0ZW0gPT4gaXRlbS50eXBlX2lkID09PSBmeWNsYXNzKTsKICAgICAgICAgICAgICAgIGlmIChjdXJyZW50X3ZvZCAmJiBjdXJyZW50X3ZvZC5hcGkpIHsKICAgICAgICAgICAgICAgICAgICBfdXJsID0gX3VybC5yZXBsYWNlKCcvYXBpLnBocC9wcm92aWRlL3ZvZC8nLCBjdXJyZW50X3ZvZC5hcGkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoX3VybCk7CiAgICAgICAgICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IGpzb24ubGlzdDsKICAgICAgICAgICAgICAgIFZPRCA9IGRhdGFbMF07CiAgICAgICAgICAgICAgICBpZiAoY3VycmVudF92b2QgJiYgY3VycmVudF92b2QudHlwZV9uYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgVk9ELnZvZF9wbGF5X2Zyb20gPSBWT0Qudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJykubWFwKGl0ID0+IGN1cnJlbnRfdm9kLnR5cGVfbmFtZSArICd8JyArIGl0KS5qb2luKCckJCQnKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSksCiAgICDmkJzntKI6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgVk9EUyA9IFtdOwogICAgICAgIGlmIChydWxlLmNsYXNzZXMpIHsKICAgICAgICAgICAgbGV0IGNhblNlYXJjaCA9IHJ1bGUuY2xhc3Nlcy5maWx0ZXIoaXQgPT4gaXQuc2VhcmNoYWJsZSk7CiAgICAgICAgICAgIGxldCBwYWdlID0gTnVtYmVyKE1ZX1BBR0UpOwogICAgICAgICAgICBwYWdlID0gKE1ZX1BBR0UgLSAxKSAlIE1hdGguY2VpbChjYW5TZWFyY2gubGVuZ3RoIC8gcnVsZS5zZWFyY2hfbGltaXQpICsgMTsKICAgICAgICAgICAgbGV0IHRydWVQYWdlID0gTWF0aC5jZWlsKE1ZX1BBR0UgLyBNYXRoLmNlaWwoY2FuU2VhcmNoLmxlbmd0aCAvIHJ1bGUuc2VhcmNoX2xpbWl0KSk7CiAgICAgICAgICAgIGlmIChydWxlLnNlYXJjaF9saW1pdCkgewogICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gKHBhZ2UgLSAxKSAqIHJ1bGUuc2VhcmNoX2xpbWl0OwogICAgICAgICAgICAgICAgbGV0IGVuZCA9IHBhZ2UgKiBydWxlLnNlYXJjaF9saW1pdDsKICAgICAgICAgICAgICAgIGxldCB0MSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgbGV0IHNlYXJjaE1vZGUgPSB0eXBlb2YgKGJhdGNoRmV0Y2gpID09PSAnZnVuY3Rpb24nID8gJ+aJuemHjycgOiAn5Y2V5LiqJzsKICAgICAgICAgICAgICAgIGxvZygnc3RhcnQ6JyArIHN0YXJ0KTsKICAgICAgICAgICAgICAgIGxvZygnZW5kOicgKyBlbmQpOwogICAgICAgICAgICAgICAgbG9nKCfmkJzntKLmqKHlvI86JyArIHNlYXJjaE1vZGUpOwogICAgICAgICAgICAgICAgbG9nKCfnsr7lh4bmkJzntKI6JyArIHJ1bGUuc2VhcmNoX21hdGNoKTsKICAgICAgICAgICAgICAgIC8vIGxvZygndDE6JyArIHQxKTsKICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IGNhblNlYXJjaC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgc2VhcmNoX2NsYXNzZXMgPSBjYW5TZWFyY2guc2xpY2Uoc3RhcnQsIGVuZCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IHVybHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICBzZWFyY2hfY2xhc3Nlcy5mb3JFYWNoKGl0ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF91cmwgPSB1cmxqb2luKGl0LnR5cGVfaWQsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmFwaSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3VybCA9IF91cmwucmVwbGFjZSgnL2FwaS5waHAvcHJvdmlkZS92b2QvJywgaXQuYXBpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF91cmwgPSBfdXJsLnJlcGxhY2UoIiNUcnVlUGFnZSMiLCAiIiArIHRydWVQYWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgdXJscy5wdXNoKF91cmwpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzX2xpc3QgPSBbXTsKICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGJhdGNoRmV0Y2gpID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXFVcmxzID0gdXJscy5tYXAoaXQgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt0aW1lb3V0OiBydWxlLnRpbWVvdXR9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmV0cyA9IGJhdGNoRmV0Y2gocmVxVXJscyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxVcmxzID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxVcmxDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHMuZm9yRWFjaCgocmV0LCBpZHgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdCA9IHNlYXJjaF9jbGFzc2VzW2lkeF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKHJldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ganNvbi5saXN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goaSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLnNpdGVfbmFtZSA9IGl0LnR5cGVfbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkudm9kX2lkID0gaXQudHlwZV9pZCArICckJyArIGkudm9kX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS52b2RfcmVtYXJrcyA9IGkudm9kX3JlbWFya3MgKyAnfCcgKyBpdC50eXBlX25hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5zZWFyY2hfbWF0Y2gpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0udm9kX25hbWUgJiYgKG5ldyBSZWdFeHAoS0VZLCAnaScpKS50ZXN0KGl0ZW0udm9kX25hbWUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLnNlYXJjaF9waWMgJiYgIWRhdGFbMF0udm9kX3BpYykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhg5b2T5YmN5pCc57Si56uZ54K544CQJHtpdC50eXBlX25hbWV944CR5rKh5Zu+54mHLOWwneivleiuv+mXruS6jOe6p+WOu+iOt+WPluWbvueJh2ApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxVcmwgPSB1cmxzW2lkeF0uc3BsaXQoJ3dkPScpWzBdICsgJ2FjPWRldGFpbCZpZHM9JyArIGRhdGEubWFwKGsgPT4gay52b2RfaWQuc3BsaXQoJyQnKVsxXSkuam9pbignLCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbFVybHMucHVzaChkZXRhaWxVcmwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfbGlzdC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzX3BpYzogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbFVybENvdW50OiBkZXRhaWxVcmxDb3VudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbFVybENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgbGV0IGRldGFpbEpzb24gPSBKU09OLnBhcnNlKHJlcXVlc3QoZGV0YWlsVXJsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRhdGEuZm9yRWFjaCgoZCwgX3NlcSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgbG9nKCfkuoznuqfmlbDmja7liJfooajlhYPntKDmlbA6JyArIGRldGFpbEpzb24ubGlzdC5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgbGV0IGRldGFpbFZvZFBpYyA9IGRldGFpbEpzb24ubGlzdFtfc2VxXS52b2RfcGljOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGRldGFpbFZvZFBpYykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZCwge3ZvZF9waWM6IGRldGFpbFZvZFBpY30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGxvZyhg5by65Yi26I635Y+W572R56uZJHtpdC50eXBlX2lkfeeahOaQnOe0ouWbvueJh+Wksei0pToke2UubWVzc2FnZX1gKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfbGlzdC5wdXNoKHtkYXRhOiBkYXRhLCBoYXNfcGljOiB0cnVlfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0cyA9IHJlc3VsdHMuY29uY2F0KGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coYOivt+axgjoke2l0LnR5cGVfaWR95Y+R55Sf6ZSZ6K+vOiR7ZS5tZXNzYWdlfWApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5p6E6YCg6K+35rGC5LqM57qn55qEYmF0Y2hGZXRjaOWIl+ihqAogICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVxVXJsczIgPSBkZXRhaWxVcmxzLm1hcChpdCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge3RpbWVvdXQ6IHJ1bGUudGltZW91dH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXRzMiA9IGJhdGNoRmV0Y2gocmVxVXJsczIpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHJlc3VsdHNfbGlzdC5sZW5ndGg7IGsrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdF9kYXRhID0gcmVzdWx0c19saXN0W2tdLmRhdGE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdHNfbGlzdFtrXS5oYXNfcGljKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbEpzb24gPSBKU09OLnBhcnNlKHJldHMyW3Jlc3VsdHNfbGlzdFtrXS5kZXRhaWxVcmxDb3VudF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+S6jOe6p+aVsOaNruWIl+ihqOWFg+e0oOaVsDonICsgZGV0YWlsSnNvbi5saXN0Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9kYXRhLmZvckVhY2goKGQsIF9zZXEpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBkZXRhaWxWb2RQaWMgPSBkZXRhaWxKc29uLmxpc3RbX3NlcV0udm9kX3BpYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvZyhkZXRhaWxKc29uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxWb2RQaWMgPSBkZXRhaWxKc29uLmxpc3QuZmluZCh2b2QgPT4gdm9kLnZvZF9pZC50b1N0cmluZygpID09PSBkLnZvZF9pZC5zcGxpdCgnJCcpWzFdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxWb2RQaWMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGQsIHt2b2RfcGljOiBkZXRhaWxWb2RQaWMudm9kX3BpY30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhg5by65Yi26I635Y+W572R56uZJHtyZXN1bHRfZGF0YVswXS5zaXRlX25hbWV955qE5pCc57Si5Zu+54mH5aSx6LSlOiR7ZS5tZXNzYWdlfWApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmNvbmNhdChyZXN1bHRfZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdXJscy5mb3JFYWNoKChfdXJsLCBpZHgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdCA9IHNlYXJjaF9jbGFzc2VzW2lkeF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChfdXJsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBqc29uLmxpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5mb3JFYWNoKGkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLnZvZF9pZCA9IGl0LnR5cGVfaWQgKyAnJCcgKyBpLnZvZF9pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS52b2RfcmVtYXJrcyA9IGkudm9kX3JlbWFya3MgKyAnfCcgKyBpdC50eXBlX25hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuc2VhcmNoX21hdGNoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0udm9kX25hbWUgJiYgKG5ldyBSZWdFeHAoS0VZLCAnaScpKS50ZXN0KGl0ZW0udm9kX25hbWUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLnNlYXJjaF9waWMgJiYgIWRhdGFbMF0udm9kX3BpYykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKGDlvZPliY3mkJzntKLnq5nngrnjgJAke2l0LnR5cGVfbmFtZX3jgJHmsqHlm77niYcs5bCd6K+V6K6/6Zeu5LqM57qn5Y676I635Y+W5Zu+54mHYCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlsVXJsID0gdXJsc1tpZHhdLnNwbGl0KCd3ZD0nKVswXSArICdhYz1kZXRhaWwmaWRzPScgKyBkYXRhLm1hcChrID0+IGsudm9kX2lkLnNwbGl0KCckJylbMV0pLmpvaW4oJywnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbEpzb24gPSBKU09OLnBhcnNlKHJlcXVlc3QoZGV0YWlsVXJsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfkuoznuqfmlbDmja7liJfooajlhYPntKDmlbA6JyArIGRldGFpbEpzb24ubGlzdC5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZm9yRWFjaCgoZCwgX3NlcSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgZGV0YWlsVm9kUGljID0gZGV0YWlsSnNvbi5saXN0W19zZXFdLnZvZF9waWM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxWb2RQaWMgPSBkZXRhaWxKc29uLmxpc3QuZmluZCh2b2QgPT4gdm9kLnZvZF9pZC50b1N0cmluZygpID09PSBkLnZvZF9pZC5zcGxpdCgnJCcpWzFdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbFZvZFBpYykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkLCB7dm9kX3BpYzogZGV0YWlsVm9kUGljLnZvZF9waWN9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhg5by65Yi26I635Y+W572R56uZJHtpdC50eXBlX2lkfeeahOaQnOe0ouWbvueJh+Wksei0pToke2UubWVzc2FnZX1gKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmNvbmNhdChkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coYOivt+axgjoke2l0LnR5cGVfaWR95Y+R55Sf6ZSZ6K+vOiR7ZS5tZXNzYWdlfWApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVk9EUyA9IHJlc3VsdHM7CiAgICAgICAgICAgICAgICAgICAgbGV0IHQyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICAgICAgLy8gbG9nKCd0MjonK3QyKTsKICAgICAgICAgICAgICAgICAgICBsb2coYCR7c2VhcmNoTW9kZX3mkJzntKI6JHt1cmxzLmxlbmd0aH3kuKrnq5nogJfml7Y6JHsoTnVtYmVyKHQyKSAtIE51bWJlcih0MSkpfW1zYCkKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KSwKICAgIGxhenk6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgLy8gbGF6eeaDs+WKnuazleeUqOWvueW6lOeahHBhcnNlX3VybO+8jOS9huaYr+aciemavuW6pu+8jOaaguacquWunueOsAogICAgICAgIGxldCBwYXJzZV91cmwgPSAnJzsKICAgICAgICBpZiAoZmxhZyAmJiBmbGFnLmluY2x1ZGVzKCd8JykpIHsKICAgICAgICAgICAgbGV0IHR5cGVfbmFtZSA9IGZsYWcuc3BsaXQoJ3wnKVswXTsKICAgICAgICAgICAgbGV0IGN1cnJlbnRfdm9kID0gcnVsZS5jbGFzc2VzLmZpbmQoaXRlbSA9PiBpdGVtLnR5cGVfbmFtZSA9PT0gdHlwZV9uYW1lKTsKICAgICAgICAgICAgaWYgKGN1cnJlbnRfdm9kICYmIGN1cnJlbnRfdm9kLnBhcnNlX3VybCkgewogICAgICAgICAgICAgICAgcGFyc2VfdXJsID0gY3VycmVudF92b2QucGFyc2VfdXJsCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKC9cLihtM3U4fG1wNCkvLnRlc3QoaW5wdXQpKSB7CiAgICAgICAgICAgIGlucHV0ID0ge3BhcnNlOiAwLCB1cmw6IGlucHV0fQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChwYXJzZV91cmwuc3RhcnRzV2l0aCgnanNvbjonKSkgewogICAgICAgICAgICAgICAgbGV0IHB1cmwgPSBwYXJzZV91cmwucmVwbGFjZSgnanNvbjonLCAnJykgKyBpbnB1dDsKICAgICAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChwdXJsKTsKICAgICAgICAgICAgICAgIGlucHV0ID0ge3BhcnNlOiAwLCB1cmw6IEpTT04ucGFyc2UoaHRtbCkudXJsfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXQgPSBwYXJzZV91cmwgKyBpbnB1dDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0pLAp9
|
||||
@@ -0,0 +1,3108 @@
|
||||
import cheerio from "assets://js/lib/cheerio.min.js";
|
||||
import "assets://js/lib/crypto-js.js";
|
||||
import "./jsencrypt.js";
|
||||
import "./node-rsa.js";
|
||||
import "./pako.min.js";
|
||||
import 模板 from "./模板.js";
|
||||
import {
|
||||
gbkTool
|
||||
} from "./gbk.js";
|
||||
import "./json5.js";
|
||||
import "./jinja.js";
|
||||
const _jinja2 = cheerio.jinja2;
|
||||
cheerio.jinja2 = function(template, obj) {
|
||||
try {
|
||||
return jinja.render(template, obj)
|
||||
} catch (e) {
|
||||
console.log("新的jinja2库渲染失败,换回原始cheerio:" + e.message);
|
||||
return _jinja2(template, obj)
|
||||
}
|
||||
};
|
||||
let vercode = typeof pdfl === "function" ? "drpy2.1" : "drpy2";
|
||||
const VERSION = vercode + " 3.9.51beta6 20241126";
|
||||
const UpdateInfo = [{
|
||||
date: "20241126",
|
||||
title: "drpy更新,优化去广告算法",
|
||||
version: "3.9.51beta6 20241126",
|
||||
msg: `
|
||||
1. 更新龙头大佬提供的去广告算法
|
||||
`
|
||||
}, {
|
||||
date: "20241104",
|
||||
title: "drpy更新,增加新特性",
|
||||
version: "3.9.51beta5 20241104",
|
||||
msg: `
|
||||
1. rule增加 搜索验证标识 属性,可以不定义,默认为 '系统安全验证|请输入验证码'
|
||||
2. rule增加 searchNoPage 属性,可以不定义,如果定义 1 将关闭该源的搜索翻页功能,超过1页直接返回空
|
||||
`
|
||||
}];
|
||||
|
||||
function getUpdateInfo() {
|
||||
return UpdateInfo.map(_o => {
|
||||
_o.msg = _o.msg.trim().split("\n").map(_it => _it.trim()).join("\n");
|
||||
return _o
|
||||
})
|
||||
}
|
||||
|
||||
function init_test() {
|
||||
console.log("init_test_start");
|
||||
console.log("当前版本号:" + VERSION);
|
||||
console.log("本地代理地址:" + getProxyUrl());
|
||||
console.log(RKEY);
|
||||
console.log(JSON.stringify(rule));
|
||||
console.log("init_test_end")
|
||||
}
|
||||
|
||||
function ocr_demo_test() {
|
||||
let img_base64 = `iVBORw0KGgoAAAANSUhEUgAAAIAAAAAoBAMAAADEX+97AAAAG1BMVEXz+/4thQTa7N6QwIFFkyNeokKozqDB3b93sWHFR+MEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABN0lEQVRIie2TQU+DQBCFt9vScvQpxR4xrcSjJCZ67JDGXsX+AdR4B3vpsSYm/m2HXaRLmuySepR3Gdidb/btDAjRq5dT96eCMlfBuzi1QLZUoZy2yz5sOvI+9iomaPEZ6nWnEtxqIyiM1RcAy44GNDhBXUjot/VVNweV1ah68FqWRyjKIOqAcyYF6rGcmpYnHzGt3fycNoMw0d3/THFu7hFSJ/8OXO6iTM8/KSg09obAzIHLO250LgQ0txOZSfgrV4Exdw98uGycJ0ErAeExZGhOmFHV9zHO6qVSj0MpLq7xZON56o++MjlsEgfVhbQWWME+xQX7J4V6zfi9A1Ly9rP1BvEXp+BbVJ/M77n+wfOIDVp51pZ4iBxvmj9AGrtvry6emwfKnVkW+ZRKd5ZNMvob36vXP9YPDmQki8QiCFAAAAAASUVORK5CYII=`;
|
||||
OcrApi.api = OCR_API;
|
||||
let code = OcrApi.classification(img_base64);
|
||||
log("测试验证码图片的ocr识别结果为:" + code)
|
||||
}
|
||||
|
||||
function rsa_demo_test() {
|
||||
let t1 = (new Date).getTime();
|
||||
let pkcs1_public = `
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
|
||||
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
`.trim();
|
||||
let pkcs1_public_pem = `
|
||||
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
|
||||
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
|
||||
`.trim();
|
||||
let pkcs8_public = `
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
|
||||
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
|
||||
-----END PUBLIC KEY-----`.trim();
|
||||
let pkcs8_public_pem = `
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
|
||||
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
|
||||
`.trim();
|
||||
let pkcs1_private = `
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7
|
||||
ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt
|
||||
0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ
|
||||
AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA
|
||||
hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+
|
||||
5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS
|
||||
EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
`.trim();
|
||||
let pkcs8_private = `
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf
|
||||
dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v
|
||||
YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8
|
||||
KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8
|
||||
s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl
|
||||
AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3
|
||||
rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6
|
||||
lPxDjezd
|
||||
-----END PRIVATE KEY-----
|
||||
`.trim();
|
||||
let data = `
|
||||
NodeRsa
|
||||
这是node-rsa 现在修改集成在drpy里使用`.trim();
|
||||
let encryptedWithPublic = NODERSA.encryptRSAWithPublicKey(data, pkcs1_public, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("公钥加密");
|
||||
console.log(encryptedWithPublic);
|
||||
let decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic, pkcs1_private, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("私钥解密");
|
||||
console.log(decryptedWithPrivate);
|
||||
let pkcs1_sha256_sign = NODERSA.sign("1", pkcs1_private, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1",
|
||||
signingScheme: "pkcs1-sha256"
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_sha256_sign");
|
||||
console.log(pkcs1_sha256_sign);
|
||||
let pkcs1_sha256_sign_verify = NODERSA.verify("1", "Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==", pkcs1_private, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1",
|
||||
signingScheme: "pkcs1-sha256"
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_sha256_sign_verify");
|
||||
console.log(pkcs1_sha256_sign_verify);
|
||||
let pkcs1_oaep_sha256 = NODERSA.encryptRSAWithPublicKey(data, `-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du
|
||||
SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm
|
||||
kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8
|
||||
PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m
|
||||
PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb
|
||||
Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
`, {
|
||||
outputEncoding: "base64",
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: {
|
||||
scheme: "pkcs1_oaep",
|
||||
hash: "sha256"
|
||||
}
|
||||
}
|
||||
});
|
||||
console.log("pkcs1_oaep_sha256");
|
||||
console.log(pkcs1_oaep_sha256);
|
||||
decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==", `-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is
|
||||
T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S
|
||||
xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy
|
||||
3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+
|
||||
HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA
|
||||
ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/
|
||||
zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31
|
||||
iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l
|
||||
QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu
|
||||
eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ
|
||||
8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9
|
||||
l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC
|
||||
WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J
|
||||
NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0
|
||||
o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3
|
||||
ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ
|
||||
I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i
|
||||
tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P
|
||||
vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p
|
||||
yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC
|
||||
8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87
|
||||
HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN
|
||||
QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51
|
||||
MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw
|
||||
m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA==
|
||||
-----END RSA PRIVATE KEY-----`, {
|
||||
options: {
|
||||
environment: "browser",
|
||||
encryptionScheme: "pkcs1_oaep"
|
||||
}
|
||||
});
|
||||
console.log("decryptedWithPrivate");
|
||||
console.log(decryptedWithPrivate);
|
||||
(() => {
|
||||
let key = new NODERSA.NodeRSA({
|
||||
b: 1024
|
||||
});
|
||||
key.setOptions({
|
||||
encryptionScheme: "pkcs1"
|
||||
});
|
||||
let text = `你好drpy node-ras`;
|
||||
let encrypted = key.encrypt(text, "base64");
|
||||
console.log("encrypted: ", encrypted);
|
||||
const decrypted = key.decrypt(encrypted, "utf8");
|
||||
console.log("decrypted: ", decrypted)
|
||||
})();
|
||||
let t2 = (new Date).getTime();
|
||||
console.log("rsa_demo_test 测试耗时:" + (t2 - t1) + "毫秒")
|
||||
}
|
||||
|
||||
function pre() {
|
||||
if (typeof rule.预处理 === "string" && rule.预处理 && rule.预处理.trim()) {
|
||||
let code = rule.预处理.trim();
|
||||
console.log("执行预处理代码:" + code);
|
||||
if (code.startsWith("js:")) {
|
||||
code = code.replace("js:", "")
|
||||
}
|
||||
try {
|
||||
eval(code)
|
||||
} catch (e) {
|
||||
console.log(`预处理执行失败:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
let rule = {};
|
||||
const MOBILE_UA = "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36";
|
||||
const PC_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36";
|
||||
const UA = "Mozilla/5.0";
|
||||
const UC_UA = "Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";
|
||||
const IOS_UA = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";
|
||||
const RULE_CK = "cookie";
|
||||
const CATE_EXCLUDE = "首页|留言|APP|下载|资讯|新闻|动态";
|
||||
const TAB_EXCLUDE = "猜你|喜欢|下载|剧情|榜|评论";
|
||||
const OCR_RETRY = 3;
|
||||
const OCR_API = "https://api.nn.ci/ocr/b64/text";
|
||||
if (typeof MY_URL === "undefined") {
|
||||
var MY_URL
|
||||
}
|
||||
var HOST;
|
||||
var RKEY;
|
||||
var fetch;
|
||||
var print;
|
||||
var log;
|
||||
var rule_fetch_params;
|
||||
var fetch_params;
|
||||
var oheaders;
|
||||
var _pdfh;
|
||||
var _pdfa;
|
||||
var _pd;
|
||||
const DOM_CHECK_ATTR = /(url|src|href|-original|-src|-play|-url|style)$/;
|
||||
const SPECIAL_URL = /^(ftp|magnet|thunder|ws):/;
|
||||
const NOADD_INDEX = /:eq|:lt|:gt|:first|:last|^body$|^#/;
|
||||
const URLJOIN_ATTR = /(url|src|href|-original|-src|-play|-url|style)$|^(data-|url-|src-)/;
|
||||
const SELECT_REGEX = /:eq|:lt|:gt|#/g;
|
||||
const SELECT_REGEX_A = /:eq|:lt|:gt/g;
|
||||
const $js = {
|
||||
toString(func) {
|
||||
let strfun = func.toString();
|
||||
return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/, "js:").replace(/\}$/, "")
|
||||
}
|
||||
};
|
||||
|
||||
function window_b64() {
|
||||
let b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
let base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
|
||||
|
||||
function btoa(str) {
|
||||
var out, i, len;
|
||||
var c1, c2, c3;
|
||||
len = str.length;
|
||||
i = 0;
|
||||
out = "";
|
||||
while (i < len) {
|
||||
c1 = str.charCodeAt(i++) & 255;
|
||||
if (i == len) {
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4);
|
||||
out += "==";
|
||||
break
|
||||
}
|
||||
c2 = str.charCodeAt(i++);
|
||||
if (i == len) {
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4 | (c2 & 240) >> 4);
|
||||
out += b64map.charAt((c2 & 15) << 2);
|
||||
out += "=";
|
||||
break
|
||||
}
|
||||
c3 = str.charCodeAt(i++);
|
||||
out += b64map.charAt(c1 >> 2);
|
||||
out += b64map.charAt((c1 & 3) << 4 | (c2 & 240) >> 4);
|
||||
out += b64map.charAt((c2 & 15) << 2 | (c3 & 192) >> 6);
|
||||
out += b64map.charAt(c3 & 63)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
function atob(str) {
|
||||
var c1, c2, c3, c4;
|
||||
var i, len, out;
|
||||
len = str.length;
|
||||
i = 0;
|
||||
out = "";
|
||||
while (i < len) {
|
||||
do {
|
||||
c1 = base64DecodeChars[str.charCodeAt(i++) & 255]
|
||||
} while (i < len && c1 == -1);
|
||||
if (c1 == -1) break;
|
||||
do {
|
||||
c2 = base64DecodeChars[str.charCodeAt(i++) & 255]
|
||||
} while (i < len && c2 == -1);
|
||||
if (c2 == -1) break;
|
||||
out += String.fromCharCode(c1 << 2 | (c2 & 48) >> 4);
|
||||
do {
|
||||
c3 = str.charCodeAt(i++) & 255;
|
||||
if (c3 == 61) return out;
|
||||
c3 = base64DecodeChars[c3]
|
||||
} while (i < len && c3 == -1);
|
||||
if (c3 == -1) break;
|
||||
out += String.fromCharCode((c2 & 15) << 4 | (c3 & 60) >> 2);
|
||||
do {
|
||||
c4 = str.charCodeAt(i++) & 255;
|
||||
if (c4 == 61) return out;
|
||||
c4 = base64DecodeChars[c4]
|
||||
} while (i < len && c4 == -1);
|
||||
if (c4 == -1) break;
|
||||
out += String.fromCharCode((c3 & 3) << 6 | c4)
|
||||
}
|
||||
return out
|
||||
}
|
||||
return {
|
||||
atob: atob,
|
||||
btoa: btoa
|
||||
}
|
||||
}
|
||||
if (typeof atob !== "function" || typeof btoa !== "function") {
|
||||
var {
|
||||
atob,
|
||||
btoa
|
||||
} = window_b64()
|
||||
}
|
||||
if (typeof Object.assign !== "function") {
|
||||
Object.assign = function() {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
return target
|
||||
}
|
||||
}
|
||||
if (!String.prototype.includes) {
|
||||
String.prototype.includes = function(search, start) {
|
||||
if (typeof start !== "number") {
|
||||
start = 0
|
||||
}
|
||||
if (start + search.length > this.length) {
|
||||
return false
|
||||
} else {
|
||||
return this.indexOf(search, start) !== -1
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!Array.prototype.includes) {
|
||||
Object.defineProperty(Array.prototype, "includes", {
|
||||
value: function(searchElement, fromIndex) {
|
||||
if (this == null) {
|
||||
throw new TypeError('"this" is null or not defined')
|
||||
}
|
||||
var o = Object(this);
|
||||
var len = o.length >>> 0;
|
||||
if (len === 0) {
|
||||
return false
|
||||
}
|
||||
var n = fromIndex | 0;
|
||||
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
||||
while (k < len) {
|
||||
if (o[k] === searchElement) {
|
||||
return true
|
||||
}
|
||||
k++
|
||||
}
|
||||
return false
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof String.prototype.startsWith !== "function") {
|
||||
String.prototype.startsWith = function(prefix) {
|
||||
return this.slice(0, prefix.length) === prefix
|
||||
}
|
||||
}
|
||||
if (typeof String.prototype.endsWith !== "function") {
|
||||
String.prototype.endsWith = function(suffix) {
|
||||
return this.indexOf(suffix, this.length - suffix.length) !== -1
|
||||
}
|
||||
}
|
||||
Object.defineProperty(Object.prototype, "myValues", {
|
||||
value: function(obj) {
|
||||
if (obj == null) {
|
||||
throw new TypeError("Cannot convert undefined or null to object")
|
||||
}
|
||||
var res = [];
|
||||
for (var k in obj) {
|
||||
if (obj.hasOwnProperty(k)) {
|
||||
res.push(obj[k])
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
enumerable: false
|
||||
});
|
||||
if (typeof Object.prototype.values !== "function") {
|
||||
Object.defineProperty(Object.prototype, "values", {
|
||||
value: function(obj) {
|
||||
if (obj == null) {
|
||||
throw new TypeError("Cannot convert undefined or null to object")
|
||||
}
|
||||
var res = [];
|
||||
for (var k in obj) {
|
||||
if (obj.hasOwnProperty(k)) {
|
||||
res.push(obj[k])
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof Array.prototype.join !== "function") {
|
||||
Object.defineProperty(Array.prototype, "join", {
|
||||
value: function(emoji) {
|
||||
emoji = emoji || "";
|
||||
let self = this;
|
||||
let str = "";
|
||||
let i = 0;
|
||||
if (!Array.isArray(self)) {
|
||||
throw String(self) + "is not Array"
|
||||
}
|
||||
if (self.length === 0) {
|
||||
return ""
|
||||
}
|
||||
if (self.length === 1) {
|
||||
return String(self[0])
|
||||
}
|
||||
i = 1;
|
||||
str = this[0];
|
||||
for (; i < self.length; i++) {
|
||||
str += String(emoji) + String(self[i])
|
||||
}
|
||||
return str
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
if (typeof Array.prototype.toReversed !== "function") {
|
||||
Object.defineProperty(Array.prototype, "toReversed", {
|
||||
value: function() {
|
||||
const clonedList = this.slice();
|
||||
const reversedList = clonedList.reverse();
|
||||
return reversedList
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
Object.defineProperty(Array.prototype, "append", {
|
||||
value: Array.prototype.push,
|
||||
enumerable: false
|
||||
});
|
||||
Object.defineProperty(String.prototype, "strip", {
|
||||
value: String.prototype.trim,
|
||||
enumerable: false
|
||||
});
|
||||
Object.defineProperty(String.prototype, "rstrip", {
|
||||
value: function(chars) {
|
||||
let regex = new RegExp(chars + "$");
|
||||
return this.replace(regex, "")
|
||||
},
|
||||
enumerable: false
|
||||
});
|
||||
|
||||
function 是否正版(vipUrl) {
|
||||
let flag = new RegExp("qq.com|iqiyi.com|youku.com|mgtv.com|bilibili.com|sohu.com|ixigua.com|pptv.com|miguvideo.com|le.com|1905.com|fun.tv");
|
||||
return flag.test(vipUrl)
|
||||
}
|
||||
|
||||
function urlDeal(vipUrl) {
|
||||
if (!vipUrl) {
|
||||
return ""
|
||||
}
|
||||
if (!是否正版(vipUrl)) {
|
||||
return vipUrl
|
||||
}
|
||||
if (!/miguvideo/.test(vipUrl)) {
|
||||
vipUrl = vipUrl.split("#")[0].split("?")[0]
|
||||
}
|
||||
return vipUrl
|
||||
}
|
||||
|
||||
function setResult(d) {
|
||||
if (!Array.isArray(d)) {
|
||||
return []
|
||||
}
|
||||
VODS = [];
|
||||
d.forEach(function(it) {
|
||||
let obj = {
|
||||
vod_id: it.url || "",
|
||||
vod_name: it.title || "",
|
||||
vod_remarks: it.desc || "",
|
||||
vod_content: it.content || "",
|
||||
vod_pic: it.pic_url || it.img || ""
|
||||
};
|
||||
let keys = Object.keys(it);
|
||||
if (keys.includes("tname")) {
|
||||
obj.type_name = it.tname || ""
|
||||
}
|
||||
if (keys.includes("tid")) {
|
||||
obj.type_id = it.tid || ""
|
||||
}
|
||||
if (keys.includes("year")) {
|
||||
obj.vod_year = it.year || ""
|
||||
}
|
||||
if (keys.includes("actor")) {
|
||||
obj.vod_actor = it.actor || ""
|
||||
}
|
||||
if (keys.includes("director")) {
|
||||
obj.vod_director = it.director || ""
|
||||
}
|
||||
if (keys.includes("area")) {
|
||||
obj.vod_area = it.area || ""
|
||||
}
|
||||
VODS.push(obj)
|
||||
});
|
||||
return VODS
|
||||
}
|
||||
|
||||
function setResult2(res) {
|
||||
VODS = res.list || [];
|
||||
return VODS
|
||||
}
|
||||
|
||||
function setHomeResult(res) {
|
||||
if (!res || typeof res !== "object") {
|
||||
return []
|
||||
}
|
||||
return setResult(res.list)
|
||||
}
|
||||
|
||||
function rc(js) {
|
||||
if (js === "maomi_aes.js") {
|
||||
var a = CryptoJS.enc.Utf8.parse("625222f9149e961d");
|
||||
var t = CryptoJS.enc.Utf8.parse("5efdtf6060e2o330");
|
||||
return {
|
||||
De: function(word) {
|
||||
word = CryptoJS.enc.Hex.parse(word);
|
||||
return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(word), a, {
|
||||
iv: t,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
},
|
||||
En: function(word) {
|
||||
var Encrypted = CryptoJS.AES.encrypt(word, a, {
|
||||
iv: t,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return Encrypted.ciphertext.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
function maoss(jxurl, ref, key) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
eval(getCryptoJS());
|
||||
try {
|
||||
var getVideoInfo = function(text) {
|
||||
return CryptoJS.AES.decrypt(text, key, {
|
||||
iv: iv,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
};
|
||||
var token_key = key == undefined ? "dvyYRQlnPRCMdQSe" : key;
|
||||
if (ref) {
|
||||
var html = request(jxurl, {
|
||||
headers: {
|
||||
Referer: ref
|
||||
}
|
||||
})
|
||||
} else {
|
||||
var html = request(jxurl)
|
||||
}
|
||||
if (html.indexOf("&btwaf=") != -1) {
|
||||
html = request(jxurl + "&btwaf" + html.match(/&btwaf(.*?)"/)[1], {
|
||||
headers: {
|
||||
Referer: ref
|
||||
}
|
||||
})
|
||||
}
|
||||
var token_iv = html.split('_token = "')[1].split('"')[0];
|
||||
var key = CryptoJS.enc.Utf8.parse(token_key);
|
||||
var iv = CryptoJS.enc.Utf8.parse(token_iv);
|
||||
eval(html.match(/var config = {[\s\S]*?}/)[0] + "");
|
||||
if (!config.url.startsWith("http")) {
|
||||
config.url = CryptoJS.AES.decrypt(config.url, key, {
|
||||
iv: iv,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8)
|
||||
}
|
||||
return config.url
|
||||
} catch (e) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function urlencode(str) {
|
||||
str = (str + "").toString();
|
||||
return encodeURIComponent(str).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A").replace(/%20/g, "+")
|
||||
}
|
||||
|
||||
function encodeUrl(str) {
|
||||
if (typeof encodeURI == "function") {
|
||||
return encodeURI(str)
|
||||
} else {
|
||||
str = (str + "").toString();
|
||||
return encodeURIComponent(str).replace(/%2F/g, "/").replace(/%3F/g, "?").replace(/%3A/g, ":").replace(/%40/g, "@").replace(/%3D/g, "=").replace(/%3A/g, ":").replace(/%2C/g, ",").replace(/%2B/g, "+").replace(/%24/g, "$")
|
||||
}
|
||||
}
|
||||
|
||||
function base64Encode(text) {
|
||||
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text))
|
||||
}
|
||||
|
||||
function base64Decode(text) {
|
||||
return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text))
|
||||
}
|
||||
|
||||
function md5(text) {
|
||||
return CryptoJS.MD5(text).toString()
|
||||
}
|
||||
|
||||
function uint8ArrayToBase64(uint8Array) {
|
||||
let binaryString = String.fromCharCode.apply(null, Array.from(uint8Array));
|
||||
return btoa(binaryString)
|
||||
}
|
||||
|
||||
function Utf8ArrayToStr(array) {
|
||||
var out, i, len, c;
|
||||
var char2, char3;
|
||||
out = "";
|
||||
len = array.length;
|
||||
i = 0;
|
||||
while (i < len) {
|
||||
c = array[i++];
|
||||
switch (c >> 4) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
out += String.fromCharCode(c);
|
||||
break;
|
||||
case 12:
|
||||
case 13:
|
||||
char2 = array[i++];
|
||||
out += String.fromCharCode((c & 31) << 6 | char2 & 63);
|
||||
break;
|
||||
case 14:
|
||||
char2 = array[i++];
|
||||
char3 = array[i++];
|
||||
out += String.fromCharCode((c & 15) << 12 | (char2 & 63) << 6 | (char3 & 63) << 0);
|
||||
break
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
function gzip(str) {
|
||||
let arr = pako.gzip(str, {});
|
||||
return uint8ArrayToBase64(arr)
|
||||
}
|
||||
|
||||
function ungzip(b64Data) {
|
||||
let strData = atob(b64Data);
|
||||
const charData = strData.split("").map(function(x) {
|
||||
return x.charCodeAt(0)
|
||||
});
|
||||
const binData = new Uint8Array(charData);
|
||||
const data = pako.inflate(binData);
|
||||
return Utf8ArrayToStr(data)
|
||||
}
|
||||
|
||||
function encodeStr(input, encoding) {
|
||||
encoding = encoding || "gbk";
|
||||
if (encoding.startsWith("gb")) {
|
||||
const strTool = gbkTool();
|
||||
input = strTool.encode(input)
|
||||
}
|
||||
return input
|
||||
}
|
||||
|
||||
function decodeStr(input, encoding) {
|
||||
encoding = encoding || "gbk";
|
||||
if (encoding.startsWith("gb")) {
|
||||
const strTool = gbkTool();
|
||||
input = strTool.decode(input)
|
||||
}
|
||||
return input
|
||||
}
|
||||
|
||||
function getCryptoJS() {
|
||||
return 'console.log("CryptoJS已装载");'
|
||||
}
|
||||
const RSA = {
|
||||
decode: function(data, key, option) {
|
||||
option = option || {};
|
||||
if (typeof JSEncrypt === "function") {
|
||||
let chunkSize = option.chunkSize || 117;
|
||||
let privateKey = this.getPrivateKey(key);
|
||||
const decryptor = new JSEncrypt;
|
||||
decryptor.setPrivateKey(privateKey);
|
||||
let uncrypted = "";
|
||||
uncrypted = decryptor.decryptUnicodeLong(data);
|
||||
return uncrypted
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
encode: function(data, key, option) {
|
||||
option = option || {};
|
||||
if (typeof JSEncrypt === "function") {
|
||||
let chunkSize = option.chunkSize || 117;
|
||||
let publicKey = this.getPublicKey(key);
|
||||
const encryptor = new JSEncrypt;
|
||||
encryptor.setPublicKey(publicKey);
|
||||
let encrypted = "";
|
||||
encrypted = encryptor.encryptUnicodeLong(data);
|
||||
return encrypted
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
fixKey(key, prefix, endfix) {
|
||||
if (!key.includes(prefix)) {
|
||||
key = prefix + key
|
||||
}
|
||||
if (!key.includes(endfix)) {
|
||||
key += endfix
|
||||
}
|
||||
return key
|
||||
},
|
||||
getPrivateKey(key) {
|
||||
let prefix = "-----BEGIN RSA PRIVATE KEY-----";
|
||||
let endfix = "-----END RSA PRIVATE KEY-----";
|
||||
return this.fixKey(key, prefix, endfix)
|
||||
},
|
||||
getPublicKey(key) {
|
||||
let prefix = "-----BEGIN PUBLIC KEY-----";
|
||||
let endfix = "-----END PUBLIC KEY-----";
|
||||
return this.fixKey(key, prefix, endfix)
|
||||
}
|
||||
};
|
||||
|
||||
function getProxyUrl() {
|
||||
if (typeof getProxy === "function") {
|
||||
return getProxy(true)
|
||||
} else {
|
||||
return "http://127.0.0.1:9978/proxy?do=js"
|
||||
}
|
||||
}
|
||||
|
||||
function fixAdM3u8(m3u8_text, m3u8_url, ad_remove) {
|
||||
if (!m3u8_text && !m3u8_url || !m3u8_text && m3u8_url && !m3u8_url.startsWith("http")) {
|
||||
return ""
|
||||
}
|
||||
if (!m3u8_text) {
|
||||
log("m3u8_url:" + m3u8_url);
|
||||
m3u8_text = request(m3u8_url)
|
||||
}
|
||||
log("len(m3u8_text):" + m3u8_text.length);
|
||||
if (!ad_remove) {
|
||||
return m3u8_text
|
||||
}
|
||||
if (ad_remove.startsWith("reg:")) {
|
||||
ad_remove = ad_remove.slice(4)
|
||||
} else if (ad_remove.startsWith("js:")) {
|
||||
ad_remove = ad_remove.slice(3)
|
||||
}
|
||||
let m3u8_start = m3u8_text.slice(0, m3u8_text.indexOf("#EXTINF")).trim();
|
||||
let m3u8_body = m3u8_text.slice(m3u8_text.indexOf("#EXTINF"), m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();
|
||||
let m3u8_end = m3u8_text.slice(m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();
|
||||
let murls = [];
|
||||
let m3_body_list = m3u8_body.split("\n");
|
||||
let m3_len = m3_body_list.length;
|
||||
let i = 0;
|
||||
while (i < m3_len) {
|
||||
let mi = m3_body_list[i];
|
||||
let mi_1 = m3_body_list[i + 1];
|
||||
if (mi.startsWith("#EXTINF")) {
|
||||
murls.push([mi, mi_1].join("&"));
|
||||
i += 2
|
||||
} else if (mi.startsWith("#EXT-X-DISCONTINUITY")) {
|
||||
let mi_2 = m3_body_list[i + 2];
|
||||
murls.push([mi, mi_1, mi_2].join("&"));
|
||||
i += 3
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
let new_m3u8_body = [];
|
||||
for (let murl of murls) {
|
||||
if (ad_remove && new RegExp(ad_remove).test(murl)) {} else {
|
||||
let murl_list = murl.split("&");
|
||||
if (!murl_list[murl_list.length - 1].startsWith("http") && m3u8_url.startsWith("http")) {
|
||||
murl_list[murl_list.length - 1] = urljoin(m3u8_url, murl_list[murl_list.length - 1])
|
||||
}
|
||||
murl_list.forEach(it => {
|
||||
new_m3u8_body.push(it)
|
||||
})
|
||||
}
|
||||
}
|
||||
new_m3u8_body = new_m3u8_body.join("\n").trim();
|
||||
m3u8_text = [m3u8_start, new_m3u8_body, m3u8_end].join("\n").trim();
|
||||
return m3u8_text
|
||||
}
|
||||
|
||||
function fixAdM3u8Ai(m3u8_url, headers) {
|
||||
let ts = (new Date).getTime();
|
||||
let option = headers ? {
|
||||
headers: headers
|
||||
} : {};
|
||||
|
||||
function b(s1, s2) {
|
||||
let i = 0;
|
||||
while (i < s1.length) {
|
||||
if (s1[i] !== s2[i]) {
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
function reverseString(str) {
|
||||
return str.split("").reverse().join("")
|
||||
}
|
||||
let m3u8 = request(m3u8_url, option);
|
||||
m3u8 = m3u8.trim().split("\n").map(it => it.startsWith("#") ? it : urljoin(m3u8_url, it)).join("\n");
|
||||
m3u8 = m3u8.replace(/\n\n/gi, "\n");
|
||||
let last_url = m3u8.split("\n").slice(-1)[0];
|
||||
if (last_url.length < 5) {
|
||||
last_url = m3u8.split("\n").slice(-2)[0]
|
||||
}
|
||||
if (last_url.includes(".m3u8") && last_url !== m3u8_url) {
|
||||
m3u8_url = urljoin2(m3u8_url, last_url);
|
||||
log("嵌套的m3u8_url:" + m3u8_url);
|
||||
m3u8 = request(m3u8_url, option)
|
||||
}
|
||||
let s = m3u8.trim().split("\n").filter(it => it.trim()).join("\n");
|
||||
let ss = s.split("\n");
|
||||
if (m3u8_url.indexOf("ffzy") > 0) {
|
||||
let j = 0,
|
||||
k1 = 0,
|
||||
m = 0,
|
||||
n = 0,
|
||||
t = 0;
|
||||
let s2 = "";
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
let s1 = "";
|
||||
if (s.startsWith("#EXTINF")) {
|
||||
s1 = s.slice(8);
|
||||
n++;
|
||||
if (n == 1) k1 = i;
|
||||
if (s2.indexOf(s1) == -1) {
|
||||
s2 = s2 + s1;
|
||||
m++
|
||||
}
|
||||
t = t + parseFloat(s1);
|
||||
i++;
|
||||
s = ss[i]
|
||||
}
|
||||
if (s.startsWith("#EXT-X-DISCONTINUITY")) {
|
||||
if (n == 5) {
|
||||
log("n:" + n);
|
||||
log("m:" + m);
|
||||
for (let j = k1; j < k1 + n * 2; j++) {
|
||||
log(ss[j])
|
||||
}
|
||||
log("广告位置:" + k1);
|
||||
log("数据条数:" + n);
|
||||
log("数据种类:" + m);
|
||||
log("广告时间:" + t.toFixed(5));
|
||||
ss.splice(k1, 2 * n + 1);
|
||||
i = i - 2 * n + 1
|
||||
}
|
||||
t = 0;
|
||||
m = 0;
|
||||
n = 0;
|
||||
s2 = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
let firststr = "";
|
||||
let maxl = 0;
|
||||
let kk = 0;
|
||||
let kkk1 = 1;
|
||||
let kkk2 = 0;
|
||||
let secondstr = "";
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
if (!s.startsWith("#")) {
|
||||
if (kk == 0) firststr = s;
|
||||
if (kk > 0) {
|
||||
if (maxl > b(firststr, s) + 1) {
|
||||
if (secondstr.length < 5) secondstr = s;
|
||||
kkk2++
|
||||
} else {
|
||||
maxl = b(firststr, s);
|
||||
kkk1++
|
||||
}
|
||||
}
|
||||
kk++;
|
||||
if (kk >= 30) break
|
||||
}
|
||||
}
|
||||
if (kkk2 > kkk1) firststr = secondstr;
|
||||
let firststrlen = firststr.length;
|
||||
let ml = Math.round(ss.length / 2).toString().length;
|
||||
let maxc = 0;
|
||||
let laststr = ss.toReversed().find(x => {
|
||||
if (!x.startsWith("#")) {
|
||||
let k = b(reverseString(firststr), reverseString(x));
|
||||
maxl = b(firststr, x);
|
||||
maxc++;
|
||||
if (firststrlen - maxl <= ml + k || maxc > 10) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
});
|
||||
log("最后一条切片:" + laststr);
|
||||
let ad_urls = [];
|
||||
for (let i = 0; i < ss.length; i++) {
|
||||
let s = ss[i];
|
||||
if (!s.startsWith("#")) {
|
||||
if (b(firststr, s) < maxl) {
|
||||
ad_urls.push(s);
|
||||
ss.splice(i - 1, 2);
|
||||
i = i - 2
|
||||
} else {
|
||||
ss[i] = urljoin(m3u8_url, s)
|
||||
}
|
||||
} else {
|
||||
ss[i] = s.replace(/URI=\"(.*)\"/, 'URI="' + urljoin(m3u8_url, "$1") + '"')
|
||||
}
|
||||
}
|
||||
log("处理的m3u8地址:" + m3u8_url);
|
||||
log("----广告地址----");
|
||||
log(ad_urls);
|
||||
m3u8 = ss.join("\n");
|
||||
log("处理耗时:" + ((new Date).getTime() - ts).toString());
|
||||
log(m3u8);
|
||||
return m3u8
|
||||
}
|
||||
|
||||
function forceOrder(lists, key, option) {
|
||||
let start = Math.floor(lists.length / 2);
|
||||
let end = Math.min(lists.length - 1, start + 1);
|
||||
if (start >= end) {
|
||||
return lists
|
||||
}
|
||||
let first = lists[start];
|
||||
let second = lists[end];
|
||||
if (key) {
|
||||
try {
|
||||
first = first[key];
|
||||
second = second[key]
|
||||
} catch (e) {}
|
||||
}
|
||||
if (option && typeof option === "function") {
|
||||
try {
|
||||
first = option(first);
|
||||
second = option(second)
|
||||
} catch (e) {}
|
||||
}
|
||||
first += "";
|
||||
second += "";
|
||||
if (first.match(/(\d+)/) && second.match(/(\d+)/)) {
|
||||
let num1 = Number(first.match(/(\d+)/)[1]);
|
||||
let num2 = Number(second.match(/(\d+)/)[1]);
|
||||
if (num1 > num2) {
|
||||
lists.reverse()
|
||||
}
|
||||
}
|
||||
return lists
|
||||
}
|
||||
let VODS = [];
|
||||
let VOD = {};
|
||||
let TABS = [];
|
||||
let LISTS = [];
|
||||
|
||||
function getQuery(url) {
|
||||
try {
|
||||
if (url.indexOf("?") > -1) {
|
||||
url = url.slice(url.indexOf("?") + 1)
|
||||
}
|
||||
let arr = url.split("#")[0].split("&");
|
||||
const resObj = {};
|
||||
arr.forEach(item => {
|
||||
let arr1 = item.split("=");
|
||||
let key = arr1[0];
|
||||
let value = arr1.slice(1).join("=");
|
||||
resObj[key] = value
|
||||
});
|
||||
return resObj
|
||||
} catch (err) {
|
||||
log(`getQuery发生错误:${e.message}`);
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
function urljoin(fromPath, nowPath) {
|
||||
fromPath = fromPath || "";
|
||||
nowPath = nowPath || "";
|
||||
return joinUrl(fromPath, nowPath)
|
||||
}
|
||||
var urljoin2 = urljoin;
|
||||
const defaultParser = {
|
||||
pdfh: pdfh,
|
||||
pdfa: pdfa,
|
||||
pd: pd
|
||||
};
|
||||
|
||||
function pdfh2(html, parse) {
|
||||
let html2 = html;
|
||||
try {
|
||||
if (typeof html !== "string") {
|
||||
html2 = html.rr(html.ele).toString()
|
||||
}
|
||||
} catch (e) {
|
||||
print(`html对象转文本发生了错误:${e.message}`)
|
||||
}
|
||||
let result = defaultParser.pdfh(html2, parse);
|
||||
let option = parse.includes("&&") ? parse.split("&&").slice(-1)[0] : parse.split(" ").slice(-1)[0];
|
||||
if (/style/.test(option.toLowerCase()) && /url\(/.test(result)) {
|
||||
try {
|
||||
result = result.match(/url\((.*?)\)/)[1];
|
||||
result = result.replace(/^['|"](.*)['|"]$/, "$1")
|
||||
} catch (e) {}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function pdfa2(html, parse) {
|
||||
let html2 = html;
|
||||
try {
|
||||
if (typeof html !== "string") {
|
||||
html2 = html.rr(html.ele).toString()
|
||||
}
|
||||
} catch (e) {
|
||||
print(`html对象转文本发生了错误:${e.message}`)
|
||||
}
|
||||
return defaultParser.pdfa(html2, parse)
|
||||
}
|
||||
|
||||
function pd2(html, parse, uri) {
|
||||
let ret = pdfh2(html, parse);
|
||||
if (typeof uri === "undefined" || !uri) {
|
||||
uri = ""
|
||||
}
|
||||
if (DOM_CHECK_ATTR.test(parse) && !SPECIAL_URL.test(ret)) {
|
||||
if (/http/.test(ret)) {
|
||||
ret = ret.slice(ret.indexOf("http"))
|
||||
} else {
|
||||
ret = urljoin(MY_URL, ret)
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
const parseTags = {
|
||||
jsp: {
|
||||
pdfh: pdfh2,
|
||||
pdfa: pdfa2,
|
||||
pd: pd2
|
||||
},
|
||||
json: {
|
||||
pdfh(html, parse) {
|
||||
if (!parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
if (typeof html === "string") {
|
||||
html = JSON.parse(html)
|
||||
}
|
||||
parse = parse.trim();
|
||||
if (!parse.startsWith("$.")) {
|
||||
parse = "$." + parse
|
||||
}
|
||||
parse = parse.split("||");
|
||||
for (let ps of parse) {
|
||||
let ret = cheerio.jp(ps, html);
|
||||
if (Array.isArray(ret)) {
|
||||
ret = ret[0] || ""
|
||||
} else {
|
||||
ret = ret || ""
|
||||
}
|
||||
if (ret && typeof ret !== "string") {
|
||||
ret = ret.toString()
|
||||
}
|
||||
if (ret) {
|
||||
return ret
|
||||
}
|
||||
}
|
||||
return ""
|
||||
},
|
||||
pdfa(html, parse) {
|
||||
if (!parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
if (typeof html === "string") {
|
||||
html = JSON.parse(html)
|
||||
}
|
||||
parse = parse.trim();
|
||||
if (!parse.startsWith("$.")) {
|
||||
parse = "$." + parse
|
||||
}
|
||||
let ret = cheerio.jp(parse, html);
|
||||
if (Array.isArray(ret) && Array.isArray(ret[0]) && ret.length === 1) {
|
||||
return ret[0] || []
|
||||
}
|
||||
return ret || []
|
||||
},
|
||||
pd(html, parse) {
|
||||
let ret = parseTags.json.pdfh(html, parse);
|
||||
if (ret) {
|
||||
return urljoin(MY_URL, ret)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
},
|
||||
jq: {
|
||||
pdfh(html, parse) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
parse = parse.trim();
|
||||
let result = defaultParser.pdfh(html, parse);
|
||||
return result
|
||||
},
|
||||
pdfa(html, parse) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return []
|
||||
}
|
||||
parse = parse.trim();
|
||||
let result = defaultParser.pdfa(html, parse);
|
||||
print(`pdfa解析${parse}=>${result.length}`);
|
||||
return result
|
||||
},
|
||||
pd(html, parse, base_url) {
|
||||
if (!html || !parse || !parse.trim()) {
|
||||
return ""
|
||||
}
|
||||
parse = parse.trim();
|
||||
base_url = base_url || MY_URL;
|
||||
return defaultParser.pd(html, parse, base_url)
|
||||
}
|
||||
},
|
||||
getParse(p0) {
|
||||
if (p0.startsWith("jsp:")) {
|
||||
return this.jsp
|
||||
} else if (p0.startsWith("json:")) {
|
||||
return this.json
|
||||
} else if (p0.startsWith("jq:")) {
|
||||
return this.jq
|
||||
} else {
|
||||
return this.jq
|
||||
}
|
||||
}
|
||||
};
|
||||
const stringify = JSON.stringify;
|
||||
const jsp = parseTags.jsp;
|
||||
const jq = parseTags.jq;
|
||||
|
||||
function readFile(filePath) {
|
||||
filePath = filePath || "./uri.min.js";
|
||||
var fd = os.open(filePath);
|
||||
var buffer = new ArrayBuffer(1024);
|
||||
var len = os.read(fd, buffer, 0, 1024);
|
||||
console.log(len);
|
||||
let text = String.fromCharCode.apply(null, new Uint8Array(buffer));
|
||||
console.log(text);
|
||||
return text
|
||||
}
|
||||
|
||||
function dealJson(html) {
|
||||
try {
|
||||
html = html.trim();
|
||||
if (!(html.startsWith("{") && html.endsWith("}") || html.startsWith("[") && html.endsWith("]"))) {
|
||||
html = "{" + html.match(/.*?\{(.*)\}/m)[1] + "}"
|
||||
}
|
||||
} catch (e) {}
|
||||
try {
|
||||
html = JSON.parse(html)
|
||||
} catch (e) {}
|
||||
return html
|
||||
}
|
||||
var OcrApi = {
|
||||
api: OCR_API,
|
||||
classification: function(img) {
|
||||
let code = "";
|
||||
try {
|
||||
log("通过drpy_ocr验证码接口过验证...");
|
||||
let html = "";
|
||||
if (this.api.endsWith("drpy/text")) {
|
||||
html = request(this.api, {
|
||||
data: {
|
||||
img: img
|
||||
},
|
||||
headers: {
|
||||
"User-Agent": PC_UA
|
||||
},
|
||||
method: "POST"
|
||||
}, true)
|
||||
} else {
|
||||
html = post(this.api, {
|
||||
body: img
|
||||
})
|
||||
}
|
||||
code = html || ""
|
||||
} catch (e) {
|
||||
log(`OCR识别验证码发生错误:${e.message}`)
|
||||
}
|
||||
return code
|
||||
}
|
||||
};
|
||||
|
||||
function verifyCode(url) {
|
||||
let cnt = 0;
|
||||
let host = getHome(url);
|
||||
let cookie = "";
|
||||
while (cnt < OCR_RETRY) {
|
||||
try {
|
||||
let yzm_url = `${host}/index.php/verify/index.html`;
|
||||
console.log(`验证码链接:${yzm_url}`);
|
||||
let hhtml = request(yzm_url, {
|
||||
withHeaders: true,
|
||||
toBase64: true
|
||||
}, true);
|
||||
let json = JSON.parse(hhtml);
|
||||
if (!cookie) {
|
||||
let setCk = Object.keys(json).find(it => it.toLowerCase() === "set-cookie");
|
||||
cookie = setCk ? json[setCk].split(";")[0] : ""
|
||||
}
|
||||
console.log("cookie:" + cookie);
|
||||
let img = json.body;
|
||||
let code = OcrApi.classification(img);
|
||||
console.log(`第${cnt+1}次验证码识别结果:${code}`);
|
||||
let submit_url = `${host}/index.php/ajax/verify_check?type=search&verify=${code}`;
|
||||
console.log(submit_url);
|
||||
let html = request(submit_url, {
|
||||
headers: {
|
||||
Cookie: cookie
|
||||
},
|
||||
method: "POST"
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
if (html.msg === "ok") {
|
||||
console.log(`第${cnt+1}次验证码提交成功`);
|
||||
return cookie
|
||||
} else if (html.msg !== "ok" && cnt + 1 >= OCR_RETRY) {
|
||||
cookie = ""
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`第${cnt+1}次验证码提交失败:${e.message}`);
|
||||
if (cnt + 1 >= OCR_RETRY) {
|
||||
cookie = ""
|
||||
}
|
||||
}
|
||||
cnt += 1
|
||||
}
|
||||
return cookie
|
||||
}
|
||||
|
||||
function setItem(k, v) {
|
||||
local.set(RKEY, k, v);
|
||||
console.log(`规则${RKEY}设置${k} => ${v}`)
|
||||
}
|
||||
|
||||
function getItem(k, v) {
|
||||
return local.get(RKEY, k) || v
|
||||
}
|
||||
|
||||
function clearItem(k) {
|
||||
local.delete(RKEY, k)
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
function buildUrl(url, obj) {
|
||||
obj = obj || {};
|
||||
if (url.indexOf("?") < 0) {
|
||||
url += "?"
|
||||
}
|
||||
let param_list = [];
|
||||
let keys = Object.keys(obj);
|
||||
keys.forEach(it => {
|
||||
param_list.push(it + "=" + obj[it])
|
||||
});
|
||||
let prs = param_list.join("&");
|
||||
if (keys.length > 0 && !url.endsWith("?")) {
|
||||
url += "&"
|
||||
}
|
||||
url += prs;
|
||||
return url
|
||||
}
|
||||
|
||||
function $require(url) {
|
||||
eval(request(url))
|
||||
}
|
||||
|
||||
function keysToLowerCase(obj) {
|
||||
return Object.keys(obj).reduce((result, key) => {
|
||||
const newKey = key.toLowerCase();
|
||||
result[newKey] = obj[key];
|
||||
return result
|
||||
}, {})
|
||||
}
|
||||
|
||||
function parseQueryString(query) {
|
||||
const params = {};
|
||||
query.split("&").forEach(function(part) {
|
||||
const regex = /^(.*?)=(.*)/;
|
||||
const match = part.match(regex);
|
||||
if (match) {
|
||||
const key = decodeURIComponent(match[1]);
|
||||
const value = decodeURIComponent(match[2]);
|
||||
params[key] = value
|
||||
}
|
||||
});
|
||||
return params
|
||||
}
|
||||
|
||||
function encodeIfContainsSpecialChars(value) {
|
||||
const specialChars = ":/?#[]@!$'()*+,;=%";
|
||||
if (specialChars.split("").some(char => value.includes(char))) {
|
||||
return encodeURIComponent(value)
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
function objectToQueryString(obj) {
|
||||
const encoded = [];
|
||||
for (let key in obj) {
|
||||
if (obj.hasOwnProperty(key)) {
|
||||
encoded.push(encodeURIComponent(key) + "=" + encodeIfContainsSpecialChars(obj[key]))
|
||||
}
|
||||
}
|
||||
return encoded.join("&")
|
||||
}
|
||||
|
||||
function request(url, obj, ocr_flag) {
|
||||
ocr_flag = ocr_flag || false;
|
||||
if (typeof obj === "undefined" || !obj || obj === {}) {
|
||||
if (!fetch_params || !fetch_params.headers) {
|
||||
let headers = {
|
||||
"User-Agent": MOBILE_UA
|
||||
};
|
||||
if (rule.headers) {
|
||||
Object.assign(headers, rule.headers)
|
||||
}
|
||||
if (!fetch_params) {
|
||||
fetch_params = {}
|
||||
}
|
||||
fetch_params.headers = headers
|
||||
}
|
||||
if (!fetch_params.headers.Referer) {
|
||||
fetch_params.headers.Referer = getHome(url)
|
||||
}
|
||||
obj = fetch_params
|
||||
} else {
|
||||
let headers = obj.headers || {};
|
||||
let keys = Object.keys(headers).map(it => it.toLowerCase());
|
||||
if (!keys.includes("user-agent")) {
|
||||
headers["User-Agent"] = MOBILE_UA;
|
||||
if (typeof fetch_params === "object" && fetch_params && fetch_params.headers) {
|
||||
let fetch_headers = keysToLowerCase(fetch_params.headers);
|
||||
if (fetch_headers["user-agent"]) {
|
||||
headers["User-Agent"] = fetch_headers["user-agent"]
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!keys.includes("referer")) {
|
||||
headers["Referer"] = getHome(url)
|
||||
}
|
||||
obj.headers = headers
|
||||
}
|
||||
if (rule.encoding && rule.encoding !== "utf-8" && !ocr_flag) {
|
||||
if (!obj.headers.hasOwnProperty("Content-Type") && !obj.headers.hasOwnProperty("content-type")) {
|
||||
obj.headers["Content-Type"] = "text/html; charset=" + rule.encoding
|
||||
}
|
||||
}
|
||||
if (typeof obj.body != "undefined" && obj.body && typeof obj.body === "string") {
|
||||
if (!obj.headers.hasOwnProperty("Content-Type") && !obj.headers.hasOwnProperty("content-type")) {
|
||||
obj.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=" + rule.encoding
|
||||
}
|
||||
} else if (typeof obj.body != "undefined" && obj.body && typeof obj.body === "object") {
|
||||
obj.data = obj.body;
|
||||
delete obj.body
|
||||
}
|
||||
if (!url) {
|
||||
return obj.withHeaders ? "{}" : ""
|
||||
}
|
||||
if (obj.toBase64) {
|
||||
obj.buffer = 2;
|
||||
delete obj.toBase64
|
||||
}
|
||||
if (obj.redirect === false) {
|
||||
obj.redirect = 0
|
||||
}
|
||||
if (obj.headers.hasOwnProperty("Content-Type") || obj.headers.hasOwnProperty("content-type")) {
|
||||
let _contentType = obj.headers["Content-Type"] || obj.headers["content-type"] || "";
|
||||
if (_contentType.includes("application/x-www-form-urlencoded")) {
|
||||
log("custom body is application/x-www-form-urlencoded");
|
||||
if (typeof obj.body == "string") {
|
||||
let temp_obj = parseQueryString(obj.body);
|
||||
console.log(JSON.stringify(temp_obj))
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(obj.headers));
|
||||
console.log("request:" + url + `|method:${obj.method||"GET"}|body:${obj.body||""}`);
|
||||
let res = req(url, obj);
|
||||
let html = res.content || "";
|
||||
if (obj.withHeaders) {
|
||||
let htmlWithHeaders = res.headers;
|
||||
htmlWithHeaders.body = html;
|
||||
return JSON.stringify(htmlWithHeaders)
|
||||
} else {
|
||||
return html
|
||||
}
|
||||
}
|
||||
|
||||
function post(url, obj) {
|
||||
obj = obj || {};
|
||||
obj.method = "POST";
|
||||
return request(url, obj)
|
||||
}
|
||||
|
||||
function reqCookie(url, obj, all_cookie) {
|
||||
obj = obj || {};
|
||||
obj.withHeaders = true;
|
||||
all_cookie = all_cookie || false;
|
||||
let html = request(url, obj);
|
||||
let json = JSON.parse(html);
|
||||
let setCk = Object.keys(json).find(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(";")
|
||||
}
|
||||
if (!all_cookie) {
|
||||
cookie = cookie.split(";")[0]
|
||||
}
|
||||
html = json.body;
|
||||
return {
|
||||
cookie: cookie,
|
||||
html: html
|
||||
}
|
||||
}
|
||||
fetch = request;
|
||||
print = function(data) {
|
||||
data = data || "";
|
||||
if (typeof data == "object" && Object.keys(data).length > 0) {
|
||||
try {
|
||||
data = JSON.stringify(data);
|
||||
console.log(data)
|
||||
} catch (e) {
|
||||
console.log(typeof data + ":" + data.length);
|
||||
return
|
||||
}
|
||||
} else if (typeof data == "object" && Object.keys(data).length < 1) {
|
||||
console.log("null object")
|
||||
} else {
|
||||
console.log(data)
|
||||
}
|
||||
};
|
||||
log = print;
|
||||
|
||||
function checkHtml(html, url, obj) {
|
||||
if (/\?btwaf=/.test(html)) {
|
||||
let btwaf = html.match(/btwaf(.*?)"/)[1];
|
||||
url = url.split("#")[0] + "?btwaf" + btwaf;
|
||||
print("宝塔验证访问链接:" + url);
|
||||
html = request(url, obj)
|
||||
}
|
||||
return html
|
||||
}
|
||||
|
||||
function getCode(url, obj) {
|
||||
let html = request(url, obj);
|
||||
html = checkHtml(html, url, obj);
|
||||
return html
|
||||
}
|
||||
|
||||
function getHtml(url) {
|
||||
let obj = {};
|
||||
if (rule.headers) {
|
||||
obj.headers = rule.headers
|
||||
}
|
||||
let cookie = getItem(RULE_CK, "");
|
||||
if (cookie) {
|
||||
if (obj.headers && !Object.keys(obj.headers).map(it => it.toLowerCase()).includes("cookie")) {
|
||||
log("历史无cookie,新增过验证后的cookie");
|
||||
obj.headers["Cookie"] = cookie
|
||||
} else if (obj.headers && obj.headers.cookie && obj.headers.cookie !== cookie) {
|
||||
obj.headers["Cookie"] = cookie;
|
||||
log("历史有小写过期的cookie,更新过验证后的cookie")
|
||||
} else if (obj.headers && obj.headers.Cookie && obj.headers.Cookie !== cookie) {
|
||||
obj.headers["Cookie"] = cookie;
|
||||
log("历史有大写过期的cookie,更新过验证后的cookie")
|
||||
} else if (!obj.headers) {
|
||||
obj.headers = {
|
||||
Cookie: cookie
|
||||
};
|
||||
log("历史无headers,更新过验证后的含cookie的headers")
|
||||
}
|
||||
}
|
||||
let html = getCode(url, obj);
|
||||
return html
|
||||
}
|
||||
|
||||
function homeParse(homeObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let classes = [];
|
||||
if (homeObj.class_name && homeObj.class_url) {
|
||||
let names = homeObj.class_name.split("&");
|
||||
let urls = homeObj.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]
|
||||
})
|
||||
}
|
||||
}
|
||||
if (homeObj.class_parse) {
|
||||
if (homeObj.class_parse.startsWith("js:")) {
|
||||
var input = homeObj.MY_URL;
|
||||
try {
|
||||
eval(homeObj.class_parse.replace("js:", ""));
|
||||
if (Array.isArray(input)) {
|
||||
classes = input
|
||||
}
|
||||
} catch (e) {
|
||||
log(`通过js动态获取分类发生了错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
let p = homeObj.class_parse.split(";");
|
||||
let p0 = p[0];
|
||||
let _ps = parseTags.getParse(p0);
|
||||
let is_json = p0.startsWith("json:");
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
MY_URL = rule.url;
|
||||
if (is_json) {
|
||||
try {
|
||||
let cms_cate_url = homeObj.MY_URL.replace("ac=detail", "ac=list");
|
||||
let html = homeObj.home_html || getHtml(cms_cate_url);
|
||||
if (html) {
|
||||
if (cms_cate_url === homeObj.MY_URL) {
|
||||
homeHtmlCache = html
|
||||
}
|
||||
let list = _pdfa(html, p0.replace("json:", ""));
|
||||
if (list && list.length > 0) {
|
||||
classes = list
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
} else if (p.length >= 3 && !is_json) {
|
||||
try {
|
||||
let html = homeObj.home_html || getHtml(homeObj.MY_URL);
|
||||
if (html) {
|
||||
homeHtmlCache = html;
|
||||
let list = _pdfa(html, p0);
|
||||
if (list && list.length > 0) {
|
||||
list.forEach((it, idex) => {
|
||||
try {
|
||||
let name = _pdfh(it, p[1]);
|
||||
if (homeObj.cate_exclude && new RegExp(homeObj.cate_exclude).test(name)) {
|
||||
return
|
||||
}
|
||||
let url = _pd(it, p[2]);
|
||||
if (p.length > 3 && p[3] && !homeObj.home_html) {
|
||||
let exp = new RegExp(p[3]);
|
||||
url = url.match(exp)[1]
|
||||
}
|
||||
classes.push({
|
||||
type_id: url.trim(),
|
||||
type_name: name.trim()
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
classes = classes.filter(it => !homeObj.cate_exclude || !new RegExp(homeObj.cate_exclude).test(it.type_name));
|
||||
let resp = {
|
||||
class: classes
|
||||
};
|
||||
if (homeObj.filter) {
|
||||
resp.filters = homeObj.filter
|
||||
}
|
||||
console.log(JSON.stringify(resp));
|
||||
return JSON.stringify(resp)
|
||||
}
|
||||
|
||||
function getPP(p, pn, pp, ppn) {
|
||||
try {
|
||||
let ps = p[pn] === "*" && pp.length > ppn ? pp[ppn] : p[pn];
|
||||
return ps
|
||||
} catch (e) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function homeVodParse(homeVodObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let d = [];
|
||||
MY_URL = homeVodObj.homeUrl;
|
||||
console.log(MY_URL);
|
||||
let t1 = (new Date).getTime();
|
||||
let p = homeVodObj.推荐;
|
||||
print("p:" + p);
|
||||
if (p === "*" && rule.一级) {
|
||||
p = rule.一级;
|
||||
homeVodObj.double = false
|
||||
}
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
p = p.trim();
|
||||
let pp = rule.一级 ? rule.一级.split(";") : [];
|
||||
if (p.startsWith("js:")) {
|
||||
const TYPE = "home";
|
||||
var input = MY_URL;
|
||||
HOST = rule.host;
|
||||
eval(p.replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (!homeVodObj.double && p.length < 5) {
|
||||
return "{}"
|
||||
} else if (homeVodObj.double && p.length < 6) {
|
||||
return "{}"
|
||||
}
|
||||
let p0 = getPP(p, 0, pp, 0);
|
||||
let _ps = parseTags.getParse(p0);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p0.startsWith("json:");
|
||||
p0 = p0.replace(/^(jsp:|json:|jq:)/, "");
|
||||
let html = homeHtmlCache || getHtml(MY_URL);
|
||||
homeHtmlCache = undefined;
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
try {
|
||||
console.log("double:" + homeVodObj.double);
|
||||
if (homeVodObj.double) {
|
||||
let items = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 0);
|
||||
let p2 = getPP(p, 2, pp, 1);
|
||||
let p3 = getPP(p, 3, pp, 2);
|
||||
let p4 = getPP(p, 4, pp, 3);
|
||||
let p5 = getPP(p, 5, pp, 4);
|
||||
let p6 = getPP(p, 6, pp, 5);
|
||||
for (let item of items) {
|
||||
let items2 = _pdfa(item, p1);
|
||||
for (let item2 of items2) {
|
||||
try {
|
||||
let title = _pdfh(item2, p2);
|
||||
let img = "";
|
||||
try {
|
||||
img = _pd(item2, p3)
|
||||
} catch (e) {}
|
||||
let desc = "";
|
||||
try {
|
||||
desc = _pdfh(item2, p4)
|
||||
} catch (e) {}
|
||||
let links = [];
|
||||
for (let _p5 of p5.split("+")) {
|
||||
let link = !homeVodObj.detailUrl ? _pd(item2, _p5, MY_URL) : _pdfh(item2, _p5);
|
||||
links.push(link)
|
||||
}
|
||||
let content;
|
||||
if (p.length > 6 && p[6]) {
|
||||
content = _pdfh(item2, p6)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vid = links.join("$");
|
||||
if (rule.二级 === "*") {
|
||||
vid = vid + "@@" + title + "@@" + img
|
||||
}
|
||||
let vod = {
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: desc,
|
||||
vod_content: content,
|
||||
vod_id: vid
|
||||
};
|
||||
d.push(vod)
|
||||
} catch (e) {
|
||||
console.log(`首页列表双层定位处理发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let items = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 1);
|
||||
let p2 = getPP(p, 2, pp, 2);
|
||||
let p3 = getPP(p, 3, pp, 3);
|
||||
let p4 = getPP(p, 4, pp, 4);
|
||||
let p5 = getPP(p, 5, pp, 5);
|
||||
for (let item of items) {
|
||||
try {
|
||||
let title = _pdfh(item, p1);
|
||||
let img = "";
|
||||
try {
|
||||
img = _pd(item, p2, MY_URL)
|
||||
} catch (e) {}
|
||||
let desc = "";
|
||||
try {
|
||||
desc = _pdfh(item, p3)
|
||||
} catch (e) {}
|
||||
let links = [];
|
||||
for (let _p5 of p4.split("+")) {
|
||||
let link = !homeVodObj.detailUrl ? _pd(item, _p5, MY_URL) : _pdfh(item, _p5);
|
||||
links.push(link)
|
||||
}
|
||||
let content;
|
||||
if (p.length > 5 && p[5]) {
|
||||
content = _pdfh(item, p5)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vid = links.join("$");
|
||||
if (rule.二级 === "*") {
|
||||
vid = vid + "@@" + title + "@@" + img
|
||||
}
|
||||
let vod = {
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: desc,
|
||||
vod_content: content,
|
||||
vod_id: vid
|
||||
};
|
||||
d.push(vod)
|
||||
} catch (e) {
|
||||
console.log(`首页列表单层定位处理发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
let t2 = (new Date).getTime();
|
||||
console.log("加载首页推荐耗时:" + (t2 - t1) + "毫秒");
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
if (d.length > 0) {
|
||||
print(d.slice(0, 2))
|
||||
}
|
||||
return JSON.stringify({
|
||||
list: d
|
||||
})
|
||||
}
|
||||
|
||||
function categoryParse(cateObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let p = cateObj.一级;
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
let d = [];
|
||||
let url = cateObj.url.replaceAll("fyclass", cateObj.tid);
|
||||
if (cateObj.pg === 1 && url.includes("[") && url.includes("]")) {
|
||||
url = url.split("[")[1].split("]")[0]
|
||||
} else if (cateObj.pg > 1 && url.includes("[") && url.includes("]")) {
|
||||
url = url.split("[")[0]
|
||||
}
|
||||
if (rule.filter_url) {
|
||||
if (!/fyfilter/.test(url)) {
|
||||
if (!url.endsWith("&") && !rule.filter_url.startsWith("&")) {
|
||||
url += "&"
|
||||
}
|
||||
url += rule.filter_url
|
||||
} else {
|
||||
url = url.replace("fyfilter", rule.filter_url)
|
||||
}
|
||||
url = url.replaceAll("fyclass", cateObj.tid);
|
||||
let fl = cateObj.filter ? cateObj.extend : {};
|
||||
if (rule.filter_def && typeof rule.filter_def === "object") {
|
||||
try {
|
||||
if (Object.keys(rule.filter_def).length > 0 && rule.filter_def.hasOwnProperty(cateObj.tid)) {
|
||||
let self_fl_def = rule.filter_def[cateObj.tid];
|
||||
if (self_fl_def && typeof self_fl_def === "object") {
|
||||
let fl_def = JSON.parse(JSON.stringify(self_fl_def));
|
||||
fl = Object.assign(fl_def, fl)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
print(`合并不同分类对应的默认筛选出错:${e.message}`)
|
||||
}
|
||||
}
|
||||
let new_url;
|
||||
new_url = cheerio.jinja2(url, {
|
||||
fl: fl,
|
||||
fyclass: cateObj.tid
|
||||
});
|
||||
url = new_url
|
||||
}
|
||||
if (/fypage/.test(url)) {
|
||||
if (url.includes("(") && url.includes(")")) {
|
||||
let url_rep = url.match(/.*?\((.*)\)/)[1];
|
||||
let cnt_page = url_rep.replaceAll("fypage", cateObj.pg);
|
||||
let cnt_pg = eval(cnt_page);
|
||||
url = url.replaceAll(url_rep, cnt_pg).replaceAll("(", "").replaceAll(")", "")
|
||||
} else {
|
||||
url = url.replaceAll("fypage", cateObj.pg)
|
||||
}
|
||||
}
|
||||
MY_URL = url;
|
||||
console.log(MY_URL);
|
||||
p = p.trim();
|
||||
const MY_CATE = cateObj.tid;
|
||||
if (p.startsWith("js:")) {
|
||||
var MY_FL = cateObj.extend;
|
||||
const TYPE = "cate";
|
||||
var input = MY_URL;
|
||||
const MY_PAGE = cateObj.pg;
|
||||
var desc = "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (p.length < 5) {
|
||||
return "{}"
|
||||
}
|
||||
let _ps = parseTags.getParse(p[0]);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p[0].startsWith("json:");
|
||||
p[0] = p[0].replace(/^(jsp:|json:|jq:)/, "");
|
||||
try {
|
||||
let html = getHtml(MY_URL);
|
||||
if (html) {
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
let list = _pdfa(html, p[0]);
|
||||
list.forEach(it => {
|
||||
let links = p[4].split("+").map(p4 => {
|
||||
return !rule.detailUrl ? _pd(it, p4, MY_URL) : _pdfh(it, p4)
|
||||
});
|
||||
let link = links.join("$");
|
||||
let vod_id = rule.detailUrl ? MY_CATE + "$" + link : link;
|
||||
let vod_name = _pdfh(it, p[1]).replace(/\n|\t/g, "").trim();
|
||||
let vod_pic = _pd(it, p[2], MY_URL);
|
||||
if (rule.二级 === "*") {
|
||||
vod_id = vod_id + "@@" + vod_name + "@@" + vod_pic
|
||||
}
|
||||
d.push({
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
vod_remarks: _pdfh(it, p[3]).replace(/\n|\t/g, "").trim()
|
||||
})
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
}
|
||||
}
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
if (d.length > 0) {
|
||||
print(d.slice(0, 2))
|
||||
}
|
||||
let pagecount = 0;
|
||||
if (rule.pagecount && typeof rule.pagecount === "object" && rule.pagecount.hasOwnProperty(MY_CATE)) {
|
||||
print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);
|
||||
pagecount = parseInt(rule.pagecount[MY_CATE])
|
||||
}
|
||||
let nodata = {
|
||||
list: [{
|
||||
vod_name: "无数据,防无限请求",
|
||||
vod_id: "no_data",
|
||||
vod_remarks: "不要点,会崩的",
|
||||
vod_pic: "https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"
|
||||
}],
|
||||
total: 1,
|
||||
pagecount: 1,
|
||||
page: 1,
|
||||
limit: 1
|
||||
};
|
||||
let vod = d.length < 1 ? JSON.stringify(nodata) : JSON.stringify({
|
||||
page: parseInt(cateObj.pg),
|
||||
pagecount: pagecount || 999,
|
||||
limit: 20,
|
||||
total: 999,
|
||||
list: d
|
||||
});
|
||||
return vod
|
||||
}
|
||||
|
||||
function searchParse(searchObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let d = [];
|
||||
if (!searchObj.searchUrl) {
|
||||
return "{}"
|
||||
}
|
||||
if (rule.searchNoPage && Number(searchObj.pg) > 1) {
|
||||
return "{}"
|
||||
}
|
||||
let p = searchObj.搜索 === "*" && rule.一级 ? rule.一级 : searchObj.搜索;
|
||||
if (!p || typeof p !== "string") {
|
||||
return "{}"
|
||||
}
|
||||
p = p.trim();
|
||||
let pp = rule.一级 ? rule.一级.split(";") : [];
|
||||
let url = searchObj.searchUrl.replaceAll("**", searchObj.wd);
|
||||
if (searchObj.pg === 1 && url.includes("[") && url.includes("]") && !url.includes("#")) {
|
||||
url = url.split("[")[1].split("]")[0]
|
||||
} else if (searchObj.pg > 1 && url.includes("[") && url.includes("]") && !url.includes("#")) {
|
||||
url = url.split("[")[0]
|
||||
}
|
||||
if (/fypage/.test(url)) {
|
||||
if (url.includes("(") && url.includes(")")) {
|
||||
let url_rep = url.match(/.*?\((.*)\)/)[1];
|
||||
let cnt_page = url_rep.replaceAll("fypage", searchObj.pg);
|
||||
let cnt_pg = eval(cnt_page);
|
||||
url = url.replaceAll(url_rep, cnt_pg).replaceAll("(", "").replaceAll(")", "")
|
||||
} else {
|
||||
url = url.replaceAll("fypage", searchObj.pg)
|
||||
}
|
||||
}
|
||||
MY_URL = url;
|
||||
console.log(MY_URL);
|
||||
if (p.startsWith("js:")) {
|
||||
const TYPE = "search";
|
||||
const MY_PAGE = searchObj.pg;
|
||||
const KEY = searchObj.wd;
|
||||
var input = MY_URL;
|
||||
var detailUrl = rule.detailUrl || "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
d = VODS
|
||||
} else {
|
||||
p = p.split(";");
|
||||
if (p.length < 5) {
|
||||
return "{}"
|
||||
}
|
||||
let p0 = getPP(p, 0, pp, 0);
|
||||
let _ps = parseTags.getParse(p0);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
let is_json = p0.startsWith("json:");
|
||||
p0 = p0.replace(/^(jsp:|json:|jq:)/, "");
|
||||
try {
|
||||
let req_method = MY_URL.split(";").length > 1 ? MY_URL.split(";")[1].toLowerCase() : "get";
|
||||
let html;
|
||||
if (req_method === "post") {
|
||||
let rurls = MY_URL.split(";")[0].split("#");
|
||||
let rurl = rurls[0];
|
||||
let params = rurls.length > 1 ? rurls[1] : "";
|
||||
print(`post=》rurl:${rurl},params:${params}`);
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let postData = {
|
||||
body: params
|
||||
};
|
||||
Object.assign(_fetch_params, postData);
|
||||
html = post(rurl, _fetch_params)
|
||||
} else if (req_method === "postjson") {
|
||||
let rurls = MY_URL.split(";")[0].split("#");
|
||||
let rurl = rurls[0];
|
||||
let params = rurls.length > 1 ? rurls[1] : "";
|
||||
print(`postjson-》rurl:${rurl},params:${params}`);
|
||||
try {
|
||||
params = JSON.parse(params)
|
||||
} catch (e) {
|
||||
params = "{}"
|
||||
}
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let postData = {
|
||||
body: params
|
||||
};
|
||||
Object.assign(_fetch_params, postData);
|
||||
html = post(rurl, _fetch_params)
|
||||
} else {
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
if (html) {
|
||||
let search_tag = rule.搜索验证标识 || "系统安全验证|输入验证码";
|
||||
if (new RegExp(search_tag).test(html)) {
|
||||
let cookie = verifyCode(MY_URL);
|
||||
if (cookie) {
|
||||
console.log(`本次成功过验证,cookie:${cookie}`);
|
||||
setItem(RULE_CK, cookie)
|
||||
} else {
|
||||
console.log(`本次自动过搜索验证失败,cookie:${cookie}`)
|
||||
}
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
if (!html.includes(searchObj.wd)) {
|
||||
console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");
|
||||
console.log(html)
|
||||
}
|
||||
if (is_json) {
|
||||
html = dealJson(html)
|
||||
}
|
||||
let list = _pdfa(html, p0);
|
||||
let p1 = getPP(p, 1, pp, 1);
|
||||
let p2 = getPP(p, 2, pp, 2);
|
||||
let p3 = getPP(p, 3, pp, 3);
|
||||
let p4 = getPP(p, 4, pp, 4);
|
||||
let p5 = getPP(p, 5, pp, 5);
|
||||
list.forEach(it => {
|
||||
let links = p4.split("+").map(_p4 => {
|
||||
return !rule.detailUrl ? _pd(it, _p4, MY_URL) : _pdfh(it, _p4)
|
||||
});
|
||||
let link = links.join("$");
|
||||
let content;
|
||||
if (p.length > 5 && p[5]) {
|
||||
content = _pdfh(it, p5)
|
||||
} else {
|
||||
content = ""
|
||||
}
|
||||
let vod_id = link;
|
||||
let vod_name = _pdfh(it, p1).replace(/\n|\t/g, "").trim();
|
||||
let vod_pic = _pd(it, p2, MY_URL);
|
||||
if (rule.二级 === "*") {
|
||||
vod_id = vod_id + "@@" + vod_name + "@@" + vod_pic
|
||||
}
|
||||
let ob = {
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
vod_remarks: _pdfh(it, p3).replace(/\n|\t/g, "").trim(),
|
||||
vod_content: content.replace(/\n|\t/g, "").trim()
|
||||
};
|
||||
d.push(ob)
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
print(`搜索发生错误:${e.message}`);
|
||||
return "{}"
|
||||
}
|
||||
}
|
||||
if (rule.图片替换) {
|
||||
if (rule.图片替换.startsWith("js:")) {
|
||||
d.forEach(it => {
|
||||
try {
|
||||
var input = it.vod_pic;
|
||||
eval(rule.图片替换.trim().replace("js:", ""));
|
||||
it.vod_pic = input
|
||||
} catch (e) {
|
||||
log(`图片:${it.vod_pic}替换错误:${e.message}`)
|
||||
}
|
||||
})
|
||||
} else if (rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (rule.图片来源) {
|
||||
d.forEach(it => {
|
||||
if (it.vod_pic && it.vod_pic.startsWith("http")) {
|
||||
it.vod_pic = it.vod_pic + rule.图片来源
|
||||
}
|
||||
})
|
||||
}
|
||||
return JSON.stringify({
|
||||
page: parseInt(searchObj.pg),
|
||||
pagecount: 10,
|
||||
limit: 20,
|
||||
total: 100,
|
||||
list: d
|
||||
})
|
||||
}
|
||||
|
||||
function detailParse(detailObj) {
|
||||
let t1 = (new Date).getTime();
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let orId = detailObj.orId;
|
||||
let vod_name = "片名";
|
||||
let vod_pic = "";
|
||||
let vod_id = orId;
|
||||
if (rule.二级 === "*") {
|
||||
let extra = orId.split("@@");
|
||||
vod_name = extra.length > 1 ? extra[1] : vod_name;
|
||||
vod_pic = extra.length > 2 ? extra[2] : vod_pic
|
||||
}
|
||||
let vod = {
|
||||
vod_id: vod_id,
|
||||
vod_name: vod_name,
|
||||
vod_pic: vod_pic,
|
||||
type_name: "类型",
|
||||
vod_year: "年份",
|
||||
vod_area: "地区",
|
||||
vod_remarks: "更新信息",
|
||||
vod_actor: "主演",
|
||||
vod_director: "导演",
|
||||
vod_content: "简介"
|
||||
};
|
||||
let p = detailObj.二级;
|
||||
let url = detailObj.url;
|
||||
let detailUrl = detailObj.detailUrl;
|
||||
let fyclass = detailObj.fyclass;
|
||||
let tab_exclude = detailObj.tab_exclude;
|
||||
let html = detailObj.html || "";
|
||||
MY_URL = url;
|
||||
if (detailObj.二级访问前) {
|
||||
try {
|
||||
print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);
|
||||
eval(detailObj.二级访问前.trim().replace("js:", ""))
|
||||
} catch (e) {
|
||||
print(`二级访问前执行代码出现错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (p === "*") {
|
||||
vod.vod_play_from = "在线播放";
|
||||
vod.vod_remarks = detailUrl;
|
||||
vod.vod_actor = "没有二级,只有一级链接直接嗅探播放";
|
||||
vod.vod_content = MY_URL;
|
||||
vod.vod_play_url = "嗅探播放$" + MY_URL.split("@@")[0]
|
||||
} else if (typeof p === "string" && p.trim().startsWith("js:")) {
|
||||
const TYPE = "detail";
|
||||
var input = MY_URL;
|
||||
var play_url = "";
|
||||
eval(p.trim().replace("js:", ""));
|
||||
vod = VOD;
|
||||
console.log(JSON.stringify(vod))
|
||||
} else if (p && typeof p === "object") {
|
||||
let tt1 = (new Date).getTime();
|
||||
if (!html) {
|
||||
html = getHtml(MY_URL)
|
||||
}
|
||||
print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);
|
||||
let _ps;
|
||||
if (p.is_json) {
|
||||
print("二级是json");
|
||||
_ps = parseTags.json;
|
||||
html = dealJson(html)
|
||||
} else if (p.is_jsp) {
|
||||
print("二级是jsp");
|
||||
_ps = parseTags.jsp
|
||||
} else if (p.is_jq) {
|
||||
print("二级是jq");
|
||||
_ps = parseTags.jq
|
||||
} else {
|
||||
print("二级默认jq");
|
||||
_ps = parseTags.jq
|
||||
}
|
||||
let tt2 = (new Date).getTime();
|
||||
print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);
|
||||
_pdfa = _ps.pdfa;
|
||||
_pdfh = _ps.pdfh;
|
||||
_pd = _ps.pd;
|
||||
if (p.title) {
|
||||
let p1 = p.title.split(";");
|
||||
vod.vod_name = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim();
|
||||
let type_name = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g, "").replace(/ /g, "").trim() : "";
|
||||
vod.type_name = type_name || vod.type_name
|
||||
}
|
||||
if (p.desc) {
|
||||
try {
|
||||
let p1 = p.desc.split(";");
|
||||
vod.vod_remarks = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim();
|
||||
vod.vod_year = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_area = p1.length > 2 ? _pdfh(html, p1[2]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_actor = p1.length > 3 ? _pdfh(html, p1[3]).replace(/\n|\t/g, "").trim() : "";
|
||||
vod.vod_director = p1.length > 4 ? _pdfh(html, p1[4]).replace(/\n|\t/g, "").trim() : ""
|
||||
} catch (e) {}
|
||||
}
|
||||
if (p.content) {
|
||||
try {
|
||||
let p1 = p.content.split(";");
|
||||
vod.vod_content = _pdfh(html, p1[0]).replace(/\n|\t/g, "").trim()
|
||||
} catch (e) {}
|
||||
}
|
||||
if (p.img) {
|
||||
try {
|
||||
let p1 = p.img.split(";");
|
||||
vod.vod_pic = _pd(html, p1[0], MY_URL)
|
||||
} catch (e) {}
|
||||
}
|
||||
let vod_play_from = "$$$";
|
||||
let playFrom = [];
|
||||
if (p.重定向 && p.重定向.startsWith("js:")) {
|
||||
print("开始执行重定向代码:" + p.重定向);
|
||||
html = eval(p.重定向.replace("js:", ""))
|
||||
}
|
||||
if (p.tabs) {
|
||||
if (p.tabs.startsWith("js:")) {
|
||||
print("开始执行tabs代码:" + p.tabs);
|
||||
var input = MY_URL;
|
||||
eval(p.tabs.replace("js:", ""));
|
||||
playFrom = TABS
|
||||
} else {
|
||||
let p_tab = p.tabs.split(";")[0];
|
||||
let vHeader = _pdfa(html, p_tab);
|
||||
console.log(vHeader.length);
|
||||
let tab_text = p.tab_text || "body&&Text";
|
||||
let new_map = {};
|
||||
for (let v of vHeader) {
|
||||
let v_title = _pdfh(v, tab_text).trim();
|
||||
if (!v_title) {
|
||||
v_title = "线路空"
|
||||
}
|
||||
console.log(v_title);
|
||||
if (tab_exclude && new RegExp(tab_exclude).test(v_title)) {
|
||||
continue
|
||||
}
|
||||
if (!new_map.hasOwnProperty(v_title)) {
|
||||
new_map[v_title] = 1
|
||||
} else {
|
||||
new_map[v_title] += 1
|
||||
}
|
||||
if (new_map[v_title] > 1) {
|
||||
v_title += Number(new_map[v_title] - 1)
|
||||
}
|
||||
playFrom.push(v_title)
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(playFrom))
|
||||
} else {
|
||||
playFrom = ["在线播放"]
|
||||
}
|
||||
vod.vod_play_from = playFrom.join(vod_play_from);
|
||||
let vod_play_url = "$$$";
|
||||
let vod_tab_list = [];
|
||||
if (p.lists) {
|
||||
if (p.lists.startsWith("js:")) {
|
||||
print("开始执行lists代码:" + p.lists);
|
||||
try {
|
||||
var input = MY_URL;
|
||||
var play_url = "";
|
||||
eval(p.lists.replace("js:", ""));
|
||||
for (let i in LISTS) {
|
||||
if (LISTS.hasOwnProperty(i)) {
|
||||
try {
|
||||
LISTS[i] = LISTS[i].map(it => it.split("$").slice(0, 2).join("$"))
|
||||
} catch (e) {
|
||||
print(`格式化LISTS发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
vod_play_url = LISTS.map(it => it.join("#")).join(vod_play_url)
|
||||
} catch (e) {
|
||||
print(`js执行lists: 发生错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
let list_text = p.list_text || "body&&Text";
|
||||
let list_url = p.list_url || "a&&href";
|
||||
let list_url_prefix = p.list_url_prefix || "";
|
||||
let is_tab_js = p.tabs.trim().startsWith("js:");
|
||||
for (let i = 0; i < playFrom.length; i++) {
|
||||
let tab_name = playFrom[i];
|
||||
let tab_ext = p.tabs.split(";").length > 1 && !is_tab_js ? p.tabs.split(";")[1] : "";
|
||||
let p1 = p.lists.replaceAll("#idv", tab_name).replaceAll("#id", i);
|
||||
tab_ext = tab_ext.replaceAll("#idv", tab_name).replaceAll("#id", i);
|
||||
let tabName = tab_ext ? _pdfh(html, tab_ext) : tab_name;
|
||||
console.log(tabName);
|
||||
let new_vod_list = [];
|
||||
let tt1 = (new Date).getTime();
|
||||
if (typeof pdfl === "function") {
|
||||
new_vod_list = pdfl(html, p1, list_text, list_url, MY_URL);
|
||||
if (list_url_prefix) {
|
||||
new_vod_list = new_vod_list.map(it => it.split("$")[0] + "$" + list_url_prefix + it.split("$").slice(1).join("$"))
|
||||
}
|
||||
} else {
|
||||
let vodList = [];
|
||||
try {
|
||||
vodList = _pdfa(html, p1);
|
||||
console.log("len(vodList):" + vodList.length)
|
||||
} catch (e) {}
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
new_vod_list.push(_pdfh(it, list_text).trim() + "$" + list_url_prefix + _pd(it, list_url, MY_URL))
|
||||
}
|
||||
}
|
||||
if (new_vod_list.length > 0) {
|
||||
new_vod_list = forceOrder(new_vod_list, "", x => x.split("$")[0]);
|
||||
console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)
|
||||
}
|
||||
let vlist = new_vod_list.join("#");
|
||||
vod_tab_list.push(vlist)
|
||||
}
|
||||
vod_play_url = vod_tab_list.join(vod_play_url)
|
||||
}
|
||||
}
|
||||
vod.vod_play_url = vod_play_url
|
||||
}
|
||||
if (rule.图片替换 && rule.图片替换.includes("=>")) {
|
||||
let replace_from = rule.图片替换.split("=>")[0];
|
||||
let replace_to = rule.图片替换.split("=>")[1];
|
||||
vod.vod_pic = vod.vod_pic.replace(replace_from, replace_to)
|
||||
}
|
||||
if (rule.图片来源 && vod.vod_pic && vod.vod_pic.startsWith("http")) {
|
||||
vod.vod_pic = vod.vod_pic + rule.图片来源
|
||||
}
|
||||
if (!vod.vod_id || vod_id.includes("$") && vod.vod_id !== vod_id) {
|
||||
vod.vod_id = vod_id
|
||||
}
|
||||
let t2 = (new Date).getTime();
|
||||
console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);
|
||||
try {
|
||||
vod = vodDeal(vod)
|
||||
} catch (e) {
|
||||
console.log(`vodDeal发生错误:${e.message}`)
|
||||
}
|
||||
return JSON.stringify({
|
||||
list: [vod]
|
||||
})
|
||||
}
|
||||
|
||||
function get_tab_index(vod) {
|
||||
let obj = {};
|
||||
vod.vod_play_from.split("$$$").forEach((it, index) => {
|
||||
obj[it] = index
|
||||
});
|
||||
return obj
|
||||
}
|
||||
|
||||
function vodDeal(vod) {
|
||||
let vod_play_from = vod.vod_play_from.split("$$$");
|
||||
let vod_play_url = vod.vod_play_url.split("$$$");
|
||||
let tab_removed_list = vod_play_from;
|
||||
let tab_ordered_list = vod_play_from;
|
||||
let tab_renamed_list = vod_play_from;
|
||||
let tab_list = vod_play_from;
|
||||
let play_ordered_list = vod_play_url;
|
||||
if (rule.tab_remove && rule.tab_remove.length > 0 || rule.tab_order && rule.tab_order.length > 0) {
|
||||
let tab_index_dict = get_tab_index(vod);
|
||||
if (rule.tab_remove && rule.tab_remove.length > 0) {
|
||||
tab_removed_list = vod_play_from.filter(it => !rule.tab_remove.includes(it));
|
||||
tab_list = tab_removed_list
|
||||
}
|
||||
if (rule.tab_order && rule.tab_order.length > 0) {
|
||||
let tab_order = rule.tab_order;
|
||||
tab_ordered_list = tab_removed_list.sort((a, b) => {
|
||||
return (tab_order.indexOf(a) === -1 ? 9999 : tab_order.indexOf(a)) - (tab_order.indexOf(b) === -1 ? 9999 : tab_order.indexOf(b))
|
||||
});
|
||||
tab_list = tab_ordered_list
|
||||
}
|
||||
play_ordered_list = tab_list.map(it => vod_play_url[tab_index_dict[it]])
|
||||
}
|
||||
if (rule.tab_rename && typeof rule.tab_rename === "object" & Object.keys(rule.tab_rename).length > 0) {
|
||||
tab_renamed_list = tab_list.map(it => rule.tab_rename[it] || it);
|
||||
tab_list = tab_renamed_list
|
||||
}
|
||||
vod.vod_play_from = tab_list.join("$$$");
|
||||
vod.vod_play_url = play_ordered_list.join("$$$");
|
||||
return vod
|
||||
}
|
||||
|
||||
function tellIsJx(url) {
|
||||
try {
|
||||
let is_vip = !/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0]) && 是否正版(url);
|
||||
return is_vip ? 1 : 0
|
||||
} catch (e) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
function playParse(playObj) {
|
||||
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
MY_URL = playObj.url;
|
||||
var MY_FLAG = playObj.flag;
|
||||
if (!/http/.test(MY_URL)) {
|
||||
try {
|
||||
MY_URL = base64Decode(MY_URL)
|
||||
} catch (e) {}
|
||||
}
|
||||
MY_URL = decodeURIComponent(MY_URL);
|
||||
var input = MY_URL;
|
||||
var flag = MY_FLAG;
|
||||
let common_play = {
|
||||
parse: SPECIAL_URL.test(input) || /^(push:)/.test(input) ? 0 : 1,
|
||||
url: input,
|
||||
flag: flag,
|
||||
jx: tellIsJx(input)
|
||||
};
|
||||
let lazy_play;
|
||||
if (!rule.play_parse || !rule.lazy) {
|
||||
lazy_play = common_play
|
||||
} else if (rule.play_parse && rule.lazy && typeof rule.lazy === "string") {
|
||||
try {
|
||||
let lazy_code = rule.lazy.trim();
|
||||
if (lazy_code.startsWith("js:")) {
|
||||
lazy_code = lazy_code.replace("js:", "").trim()
|
||||
}
|
||||
print("开始执行js免嗅=>" + lazy_code);
|
||||
eval(lazy_code);
|
||||
lazy_play = typeof input === "object" ? input : {
|
||||
parse: SPECIAL_URL.test(input) || /^(push:)/.test(input) ? 0 : 1,
|
||||
jx: tellIsJx(input),
|
||||
url: input
|
||||
}
|
||||
} catch (e) {
|
||||
print(`js免嗅错误:${e.message}`);
|
||||
lazy_play = common_play
|
||||
}
|
||||
} else {
|
||||
lazy_play = common_play
|
||||
}
|
||||
if (Array.isArray(rule.play_json) && rule.play_json.length > 0) {
|
||||
let web_url = lazy_play.url;
|
||||
for (let pjson of rule.play_json) {
|
||||
if (pjson.re && (pjson.re === "*" || web_url.match(new RegExp(pjson.re)))) {
|
||||
if (pjson.json && typeof pjson.json === "object") {
|
||||
let base_json = pjson.json;
|
||||
lazy_play = Object.assign(lazy_play, base_json);
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (rule.play_json && !Array.isArray(rule.play_json)) {
|
||||
let base_json = {
|
||||
jx: 1,
|
||||
parse: 1
|
||||
};
|
||||
lazy_play = Object.assign(lazy_play, base_json)
|
||||
} else if (!rule.play_json) {
|
||||
let base_json = {
|
||||
jx: 0,
|
||||
parse: 1
|
||||
};
|
||||
lazy_play = Object.assign(lazy_play, base_json)
|
||||
}
|
||||
console.log(JSON.stringify(lazy_play));
|
||||
return JSON.stringify(lazy_play)
|
||||
}
|
||||
|
||||
function proxyParse(proxyObj) {
|
||||
var input = proxyObj.params;
|
||||
if (proxyObj.proxy_rule) {
|
||||
log("准备执行本地代理规则:\n" + proxyObj.proxy_rule);
|
||||
try {
|
||||
eval(proxyObj.proxy_rule);
|
||||
if (input && input !== proxyObj.params && Array.isArray(input) && input.length >= 3) {
|
||||
return input
|
||||
} else {
|
||||
return [404, "text/plain", "Not Found"]
|
||||
}
|
||||
} catch (e) {
|
||||
return [500, "text/plain", "代理规则错误:" + e.message]
|
||||
}
|
||||
} else {
|
||||
return [404, "text/plain", "Not Found"]
|
||||
}
|
||||
}
|
||||
|
||||
function isVideoParse(isVideoObj) {
|
||||
var input = isVideoObj.url;
|
||||
if (!isVideoObj.t) {
|
||||
let re_matcher = new RegExp(isVideoObj.isVideo, "i");
|
||||
return re_matcher.test(input)
|
||||
} else {
|
||||
try {
|
||||
eval(isVideoObj.isVideo);
|
||||
if (typeof input === "boolean") {
|
||||
return input
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} catch (e) {
|
||||
log(`执行嗅探规则发生错误:${e.message}`);
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getOriginalJs(js_code) {
|
||||
let current_match = /var rule|[\u4E00-\u9FA5]+|function|let |var |const |\(|\)|"|'/;
|
||||
if (current_match.test(js_code)) {
|
||||
return js_code
|
||||
}
|
||||
let rsa_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqin/jUpqM6+fgYP/oMqj9zcdHMM0mEZXLeTyixIJWP53lzJV2N2E3OP6BBpUmq2O1a9aLnTIbADBaTulTNiOnVGoNG58umBnupnbmmF8iARbDp2mTzdMMeEgLdrfXS6Y3VvazKYALP8EhEQykQVarexR78vRq7ltY3quXx7cgI0ROfZz5Sw3UOLQJ+VoWmwIxu9AMEZLVzFDQN93hzuzs3tNyHK6xspBGB7zGbwCg+TKi0JeqPDrXxYUpAz1cQ/MO+Da0WgvkXnvrry8NQROHejdLVOAslgr6vYthH9bKbsGyNY3H+P12kcxo9RAcVveONnZbcMyxjtF5dWblaernAgMBAAECggEAGdEHlSEPFmAr5PKqKrtoi6tYDHXdyHKHC5tZy4YV+Pp+a6gxxAiUJejx1hRqBcWSPYeKne35BM9dgn5JofgjI5SKzVsuGL6bxl3ayAOu+xXRHWM9f0t8NHoM5fdd0zC3g88dX3fb01geY2QSVtcxSJpEOpNH3twgZe6naT2pgiq1S4okpkpldJPo5GYWGKMCHSLnKGyhwS76gF8bTPLoay9Jxk70uv6BDUMlA4ICENjmsYtd3oirWwLwYMEJbSFMlyJvB7hjOjR/4RpT4FPnlSsIpuRtkCYXD4jdhxGlvpXREw97UF2wwnEUnfgiZJ2FT/MWmvGGoaV/CfboLsLZuQKBgQDTNZdJrs8dbijynHZuuRwvXvwC03GDpEJO6c1tbZ1s9wjRyOZjBbQFRjDgFeWs9/T1aNBLUrgsQL9c9nzgUziXjr1Nmu52I0Mwxi13Km/q3mT+aQfdgNdu6ojsI5apQQHnN/9yMhF6sNHg63YOpH+b+1bGRCtr1XubuLlumKKscwKBgQDOtQ2lQjMtwsqJmyiyRLiUOChtvQ5XI7B2mhKCGi8kZ+WEAbNQcmThPesVzW+puER6D4Ar4hgsh9gCeuTaOzbRfZ+RLn3Aksu2WJEzfs6UrGvm6DU1INn0z/tPYRAwPX7sxoZZGxqML/z+/yQdf2DREoPdClcDa2Lmf1KpHdB+vQKBgBXFCVHz7a8n4pqXG/HvrIMJdEpKRwH9lUQS/zSPPtGzaLpOzchZFyQQBwuh1imM6Te+VPHeldMh3VeUpGxux39/m+160adlnRBS7O7CdgSsZZZ/dusS06HAFNraFDZf1/VgJTk9BeYygX+AZYu+0tReBKSs9BjKSVJUqPBIVUQXAoGBAJcZ7J6oVMcXxHxwqoAeEhtvLcaCU9BJK36XQ/5M67ceJ72mjJC6/plUbNukMAMNyyi62gO6I9exearecRpB/OGIhjNXm99Ar59dAM9228X8gGfryLFMkWcO/fNZzb6lxXmJ6b2LPY3KqpMwqRLTAU/zy+ax30eFoWdDHYa4X6e1AoGAfa8asVGOJ8GL9dlWufEeFkDEDKO9ww5GdnpN+wqLwePWqeJhWCHad7bge6SnlylJp5aZXl1+YaBTtOskC4Whq9TP2J+dNIgxsaF5EFZQJr8Xv+lY9lu0CruYOh9nTNF9x3nubxJgaSid/7yRPfAGnsJRiknB5bsrCvgsFQFjJVs=";
|
||||
let decode_content = "";
|
||||
|
||||
function aes_decrypt(data) {
|
||||
let key = CryptoJS.enc.Hex.parse("686A64686E780A0A0A0A0A0A0A0A0A0A");
|
||||
let iv = CryptoJS.enc.Hex.parse("647A797964730A0A0A0A0A0A0A0A0A0A");
|
||||
let encrypted = CryptoJS.AES.decrypt({
|
||||
ciphertext: CryptoJS.enc.Base64.parse(data)
|
||||
}, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8);
|
||||
return encrypted
|
||||
}
|
||||
let error_log = false;
|
||||
|
||||
function logger(text) {
|
||||
if (error_log) {
|
||||
log(text)
|
||||
}
|
||||
}
|
||||
let decode_funcs = [text => {
|
||||
try {
|
||||
return ungzip(text)
|
||||
} catch (e) {
|
||||
logger("非gzip加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return base64Decode(text)
|
||||
} catch (e) {
|
||||
logger("非b64加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return aes_decrypt(text)
|
||||
} catch (e) {
|
||||
logger("非aes加密");
|
||||
return ""
|
||||
}
|
||||
}, text => {
|
||||
try {
|
||||
return RSA.decode(text, rsa_private_key, null)
|
||||
} catch (e) {
|
||||
logger("非rsa加密");
|
||||
return ""
|
||||
}
|
||||
}];
|
||||
let func_index = 0;
|
||||
while (!current_match.test(decode_content)) {
|
||||
decode_content = decode_funcs[func_index](js_code);
|
||||
func_index++;
|
||||
if (func_index >= decode_funcs.length) {
|
||||
break
|
||||
}
|
||||
}
|
||||
return decode_content
|
||||
}
|
||||
|
||||
function runMain(main_func_code, arg) {
|
||||
let mainFunc = function() {
|
||||
return ""
|
||||
};
|
||||
try {
|
||||
eval(main_func_code + "\nmainFunc=main;");
|
||||
return mainFunc(arg)
|
||||
} catch (e) {
|
||||
log(`执行main_funct发生了错误:${e.message}`);
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
function init(ext) {
|
||||
console.log("init");
|
||||
rule = {};
|
||||
rule_fetch_params = {};
|
||||
fetch_params = null;
|
||||
try {
|
||||
let muban = 模板.getMubans();
|
||||
if (typeof ext == "object") {
|
||||
rule = ext
|
||||
} else if (typeof ext == "string") {
|
||||
let is_file = ext.startsWith("file://");
|
||||
if (ext.startsWith("http") || is_file) {
|
||||
let query = getQuery(ext);
|
||||
if (is_file) {
|
||||
ext = ext.split("?")[0]
|
||||
}
|
||||
let js = request(ext, {
|
||||
method: "GET"
|
||||
});
|
||||
if (js) {
|
||||
js = getOriginalJs(js);
|
||||
eval("(function(){" + js.replace("var rule", "rule") + "})()")
|
||||
}
|
||||
if (query.type === "url" && query.params) {
|
||||
if (is_file && /^http/.test(query.params)) {
|
||||
rule.params = query.params
|
||||
} else {
|
||||
rule.params = urljoin(ext, query.params)
|
||||
}
|
||||
} else if (query.params) {
|
||||
rule.params = query.params
|
||||
}
|
||||
} else {
|
||||
ext = getOriginalJs(ext);
|
||||
eval("(function(){" + ext.replace("var rule", "rule") + "})()")
|
||||
}
|
||||
} else {
|
||||
console.log(`规则加载失败,不支持的规则类型:${typeof ext}`);
|
||||
return
|
||||
}
|
||||
rule.host = (rule.host || "").rstrip("/");
|
||||
HOST = rule.host;
|
||||
if (rule.hostJs) {
|
||||
console.log(`检测到hostJs,准备执行...`);
|
||||
try {
|
||||
eval(rule.hostJs);
|
||||
rule.host = HOST.rstrip("/")
|
||||
} catch (e) {
|
||||
console.log(`执行${rule.hostJs}获取host发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (rule["模板"] === "自动") {
|
||||
try {
|
||||
let host_headers = rule["headers"] || {};
|
||||
let host_html = getCode(HOST, {
|
||||
headers: host_headers
|
||||
});
|
||||
let match_muban = "";
|
||||
let muban_keys = Object.keys(muban).filter(it => !/默认|短视2|采集1/.test(it));
|
||||
for (let muban_key of muban_keys) {
|
||||
try {
|
||||
let host_data = JSON.parse(home({}, host_html, muban[muban_key].class_parse));
|
||||
if (host_data.class && host_data.class.length > 0) {
|
||||
match_muban = muban_key;
|
||||
console.log(`自动匹配模板:【${muban_key}】`);
|
||||
break
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`自动匹配模板:【${muban_key}】错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
if (match_muban) {
|
||||
muban["自动"] = muban[match_muban];
|
||||
if (rule["模板修改"] && rule["模板修改"].startsWith("js:")) {
|
||||
eval(rule["模板修改"].replace("js:", "").trim())
|
||||
}
|
||||
} else {
|
||||
delete rule["模板"]
|
||||
}
|
||||
} catch (e) {
|
||||
delete rule["模板"]
|
||||
}
|
||||
}
|
||||
if (rule.模板 && muban.hasOwnProperty(rule.模板)) {
|
||||
print("继承模板:" + rule.模板);
|
||||
rule = Object.assign(muban[rule.模板], rule)
|
||||
}
|
||||
let rule_cate_excludes = (rule.cate_exclude || "").split("|").filter(it => it.trim());
|
||||
let rule_tab_excludes = (rule.tab_exclude || "").split("|").filter(it => it.trim());
|
||||
rule_cate_excludes = rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it => it.trim()));
|
||||
rule_tab_excludes = rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it => it.trim()));
|
||||
rule.cate_exclude = rule_cate_excludes.join("|");
|
||||
rule.tab_exclude = rule_tab_excludes.join("|");
|
||||
rule.类型 = rule.类型 || "影视";
|
||||
rule.url = rule.url || "";
|
||||
rule.double = rule.double || false;
|
||||
rule.homeUrl = rule.homeUrl || "";
|
||||
rule.detailUrl = rule.detailUrl || "";
|
||||
rule.searchUrl = rule.searchUrl || "";
|
||||
rule.homeUrl = rule.host && rule.homeUrl ? urljoin(rule.host, rule.homeUrl) : rule.homeUrl || rule.host;
|
||||
rule.homeUrl = cheerio.jinja2(rule.homeUrl, {
|
||||
rule: rule
|
||||
});
|
||||
rule.detailUrl = rule.host && rule.detailUrl ? urljoin(rule.host, rule.detailUrl) : rule.detailUrl;
|
||||
rule.二级访问前 = rule.二级访问前 || "";
|
||||
if (rule.url.includes("[") && rule.url.includes("]")) {
|
||||
let u1 = rule.url.split("[")[0];
|
||||
let u2 = rule.url.split("[")[1].split("]")[0];
|
||||
rule.url = rule.host && rule.url ? urljoin(rule.host, u1) + "[" + urljoin(rule.host, u2) + "]" : rule.url
|
||||
} else {
|
||||
rule.url = rule.host && rule.url ? urljoin(rule.host, rule.url) : rule.url
|
||||
}
|
||||
if (rule.searchUrl.includes("[") && rule.searchUrl.includes("]") && !rule.searchUrl.includes("#")) {
|
||||
let u1 = rule.searchUrl.split("[")[0];
|
||||
let u2 = rule.searchUrl.split("[")[1].split("]")[0];
|
||||
rule.searchUrl = rule.host && rule.searchUrl ? urljoin(rule.host, u1) + "[" + urljoin(rule.host, u2) + "]" : rule.searchUrl
|
||||
} else {
|
||||
rule.searchUrl = rule.host && rule.searchUrl ? urljoin(rule.host, rule.searchUrl) : rule.searchUrl
|
||||
}
|
||||
rule.timeout = rule.timeout || 5e3;
|
||||
rule.encoding = rule.编码 || rule.encoding || "utf-8";
|
||||
rule.search_encoding = rule.搜索编码 || rule.search_encoding || "";
|
||||
rule.图片来源 = rule.图片来源 || "";
|
||||
rule.图片替换 = rule.图片替换 || "";
|
||||
rule.play_json = rule.hasOwnProperty("play_json") ? rule.play_json : [];
|
||||
rule.pagecount = rule.hasOwnProperty("pagecount") ? rule.pagecount : {};
|
||||
rule.proxy_rule = rule.hasOwnProperty("proxy_rule") ? rule.proxy_rule : "";
|
||||
if (!rule.hasOwnProperty("sniffer")) {
|
||||
rule.sniffer = false
|
||||
}
|
||||
rule.sniffer = rule.hasOwnProperty("sniffer") ? rule.sniffer : "";
|
||||
rule.sniffer = !!(rule.sniffer && rule.sniffer !== "0" && rule.sniffer !== "false");
|
||||
rule.isVideo = rule.hasOwnProperty("isVideo") ? rule.isVideo : "";
|
||||
if (rule.sniffer && !rule.isVideo) {
|
||||
rule.isVideo = "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*|http((?!http).)*?obj/tos*"
|
||||
}
|
||||
rule.tab_remove = rule.hasOwnProperty("tab_remove") ? rule.tab_remove : [];
|
||||
rule.tab_order = rule.hasOwnProperty("tab_order") ? rule.tab_order : [];
|
||||
rule.tab_rename = rule.hasOwnProperty("tab_rename") ? rule.tab_rename : {};
|
||||
if (rule.headers && typeof rule.headers === "object") {
|
||||
try {
|
||||
let header_keys = Object.keys(rule.headers);
|
||||
for (let k of header_keys) {
|
||||
if (k.toLowerCase() === "user-agent") {
|
||||
let v = rule.headers[k];
|
||||
console.log(v);
|
||||
if (["MOBILE_UA", "PC_UA", "UC_UA", "IOS_UA", "UA"].includes(v)) {
|
||||
rule.headers[k] = eval(v)
|
||||
}
|
||||
} else if (k.toLowerCase() === "cookie") {
|
||||
let v = rule.headers[k];
|
||||
if (v && v.startsWith("http")) {
|
||||
console.log(v);
|
||||
try {
|
||||
v = fetch(v);
|
||||
console.log(v);
|
||||
rule.headers[k] = v
|
||||
} catch (e) {
|
||||
console.log(`从${v}获取cookie发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`处理headers发生错误:${e.message}`)
|
||||
}
|
||||
} else {
|
||||
rule.headers = {}
|
||||
}
|
||||
oheaders = deepCopy(rule.headers);
|
||||
rule_fetch_params = {
|
||||
headers: rule.headers,
|
||||
timeout: rule.timeout,
|
||||
encoding: rule.encoding
|
||||
};
|
||||
RKEY = typeof key !== "undefined" && key ? key : "drpy_" + (rule.title || rule.host);
|
||||
pre();
|
||||
init_test()
|
||||
} catch (e) {
|
||||
console.log(`init_test发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
let homeHtmlCache = undefined;
|
||||
|
||||
function home(filter, home_html, class_parse) {
|
||||
console.log("home");
|
||||
home_html = home_html || "";
|
||||
class_parse = class_parse || "";
|
||||
if (typeof rule.filter === "string" && rule.filter.trim().length > 0) {
|
||||
try {
|
||||
let filter_json = ungzip(rule.filter.trim());
|
||||
rule.filter = JSON.parse(filter_json)
|
||||
} catch (e) {
|
||||
rule.filter = {}
|
||||
}
|
||||
}
|
||||
let homeObj = {
|
||||
filter: rule.filter || false,
|
||||
MY_URL: rule.homeUrl,
|
||||
class_name: rule.class_name || "",
|
||||
class_url: rule.class_url || "",
|
||||
class_parse: class_parse || rule.class_parse || "",
|
||||
cate_exclude: rule.cate_exclude,
|
||||
home_html: home_html
|
||||
};
|
||||
return homeParse(homeObj)
|
||||
}
|
||||
|
||||
function homeVod(params) {
|
||||
console.log("homeVod");
|
||||
let homeVodObj = {
|
||||
"推荐": rule.推荐,
|
||||
double: rule.double,
|
||||
homeUrl: rule.homeUrl,
|
||||
detailUrl: rule.detailUrl
|
||||
};
|
||||
return homeVodParse(homeVodObj)
|
||||
}
|
||||
|
||||
function category(tid, pg, filter, extend) {
|
||||
let cateObj = {
|
||||
url: rule.url,
|
||||
"一级": rule.一级,
|
||||
tid: tid,
|
||||
pg: parseInt(pg),
|
||||
filter: filter,
|
||||
extend: extend
|
||||
};
|
||||
return categoryParse(cateObj)
|
||||
}
|
||||
|
||||
function detail(vod_url) {
|
||||
let orId = vod_url;
|
||||
let fyclass = "";
|
||||
log("orId:" + orId);
|
||||
if (vod_url.indexOf("$") > -1) {
|
||||
let tmp = vod_url.split("$");
|
||||
fyclass = tmp[0];
|
||||
vod_url = tmp[1]
|
||||
}
|
||||
let detailUrl = vod_url.split("@@")[0];
|
||||
let url;
|
||||
if (!detailUrl.startsWith("http") && !detailUrl.includes("/")) {
|
||||
url = rule.detailUrl.replaceAll("fyid", detailUrl).replaceAll("fyclass", fyclass)
|
||||
} else if (detailUrl.includes("/")) {
|
||||
url = urljoin(rule.homeUrl, detailUrl)
|
||||
} else {
|
||||
url = detailUrl
|
||||
}
|
||||
let detailObj = {
|
||||
orId: orId,
|
||||
url: url,
|
||||
"二级": rule.二级,
|
||||
"二级访问前": rule.二级访问前,
|
||||
detailUrl: detailUrl,
|
||||
fyclass: fyclass,
|
||||
tab_exclude: rule.tab_exclude
|
||||
};
|
||||
return detailParse(detailObj)
|
||||
}
|
||||
|
||||
function play(flag, id, flags) {
|
||||
let playObj = {
|
||||
url: id,
|
||||
flag: flag,
|
||||
flags: flags
|
||||
};
|
||||
return playParse(playObj)
|
||||
}
|
||||
|
||||
function search(wd, quick, pg) {
|
||||
if (rule.search_encoding) {
|
||||
if (rule.search_encoding.toLowerCase() !== "utf-8") {
|
||||
wd = encodeStr(wd, rule.search_encoding)
|
||||
}
|
||||
} else if (rule.encoding && rule.encoding.toLowerCase() !== "utf-8") {
|
||||
wd = encodeStr(wd, rule.encoding)
|
||||
}
|
||||
let searchObj = {
|
||||
searchUrl: rule.searchUrl,
|
||||
"搜索": rule.搜索,
|
||||
wd: wd,
|
||||
pg: pg || 1,
|
||||
quick: quick
|
||||
};
|
||||
return searchParse(searchObj)
|
||||
}
|
||||
|
||||
function proxy(params) {
|
||||
if (rule.proxy_rule && rule.proxy_rule.trim()) {
|
||||
rule.proxy_rule = rule.proxy_rule.trim()
|
||||
}
|
||||
if (rule.proxy_rule.startsWith("js:")) {
|
||||
rule.proxy_rule = rule.proxy_rule.replace("js:", "")
|
||||
}
|
||||
let proxyObj = {
|
||||
params: params,
|
||||
proxy_rule: rule.proxy_rule
|
||||
};
|
||||
return proxyParse(proxyObj)
|
||||
}
|
||||
|
||||
function sniffer() {
|
||||
let enable_sniffer = rule.sniffer || false;
|
||||
if (enable_sniffer) {
|
||||
log("开始执行辅助嗅探代理规则...")
|
||||
}
|
||||
return enable_sniffer
|
||||
}
|
||||
|
||||
function isVideo(url) {
|
||||
let t = 0;
|
||||
let is_video;
|
||||
if (rule.isVideo && rule.isVideo.trim()) {
|
||||
is_video = rule.isVideo.trim()
|
||||
}
|
||||
if (is_video.startsWith("js:")) {
|
||||
is_video = is_video.replace("js:", "");
|
||||
t = 1
|
||||
}
|
||||
let isVideoObj = {
|
||||
url: url,
|
||||
isVideo: is_video,
|
||||
t: t
|
||||
};
|
||||
let result = isVideoParse(isVideoObj);
|
||||
if (result) {
|
||||
log("成功执行辅助嗅探规则并检测到视频地址:\n" + rule.isVideo)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function getRule(key) {
|
||||
return key ? rule[key] || "" : rule
|
||||
}
|
||||
|
||||
function deepCopy(_obj) {
|
||||
return JSON.parse(JSON.stringify(_obj))
|
||||
}
|
||||
|
||||
function matchesAll(str, pattern, flatten) {
|
||||
if (!pattern.global) {
|
||||
pattern = new RegExp(pattern.source, "g" + (pattern.ignoreCase ? "i" : "") + (pattern.multiline ? "m" : ""))
|
||||
}
|
||||
var matches = [];
|
||||
var match;
|
||||
while ((match = pattern.exec(str)) !== null) {
|
||||
matches.push(match)
|
||||
}
|
||||
return flatten ? matches.flat() : matches
|
||||
}
|
||||
|
||||
function stringUtils() {
|
||||
Object.defineProperties(String.prototype, {
|
||||
replaceX: {
|
||||
value: function(regex, replacement) {
|
||||
let matches = matchesAll(this, regex, true);
|
||||
if (matches && matches.length > 1) {
|
||||
const hasCaptureGroup = /\$\d/.test(replacement);
|
||||
if (hasCaptureGroup) {
|
||||
return this.replace(regex, m => m.replace(regex, replacement))
|
||||
} else {
|
||||
return this.replace(regex, (m, p1) => m.replace(p1, replacement))
|
||||
}
|
||||
}
|
||||
return this.replace(regex, replacement)
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
},
|
||||
parseX: {
|
||||
get: function() {
|
||||
try {
|
||||
return JSON.parse(this)
|
||||
} catch (e) {
|
||||
console.log(e.message);
|
||||
return this.startsWith("[") ? [] : {}
|
||||
}
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function cut(text, start, end, method, All) {
|
||||
let result = "";
|
||||
let c = (t, s, e) => {
|
||||
let result = "";
|
||||
let rs = [];
|
||||
let results = [];
|
||||
try {
|
||||
let lr = new RegExp(String.raw`${s}`.toString());
|
||||
let rr = new RegExp(String.raw`${e}`.toString());
|
||||
const segments = t.split(lr);
|
||||
if (segments.length < 2) return "";
|
||||
let cutSegments = segments.slice(1).map(segment => {
|
||||
let splitSegment = segment.split(rr);
|
||||
return splitSegment.length < 2 ? undefined : splitSegment[0] + e
|
||||
}).filter(f => f);
|
||||
if (All) {
|
||||
return `[${cutSegments.join(",")}]`
|
||||
} else {
|
||||
return cutSegments[0]
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`Error cutting text:${e.message}`)
|
||||
}
|
||||
return result
|
||||
};
|
||||
result = c(text, start, end);
|
||||
stringUtils();
|
||||
if (method && typeof method === "function") {
|
||||
result = method(result)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function DRPY() {
|
||||
return {
|
||||
runMain: runMain,
|
||||
getRule: getRule,
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
proxy: proxy,
|
||||
sniffer: sniffer,
|
||||
isVideo: isVideo,
|
||||
fixAdM3u8Ai: fixAdM3u8Ai
|
||||
}
|
||||
}
|
||||
export default {
|
||||
runMain: runMain,
|
||||
getRule: getRule,
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
proxy: proxy,
|
||||
sniffer: sniffer,
|
||||
isVideo: isVideo,
|
||||
fixAdM3u8Ai: fixAdM3u8Ai,
|
||||
DRPY: DRPY
|
||||
};
|
||||
@@ -0,0 +1,935 @@
|
||||
globalThis.vod1 = function(ids) {
|
||||
let html1 = request('https://pbaccess.video.qq.com/trpc.videosearch.mobile_search.MultiTerminalSearch/MbSearch?vplatform=2', {
|
||||
body: {
|
||||
"version": "25042201",
|
||||
"clientType": 1,
|
||||
"filterValue": "",
|
||||
"uuid": "B1E50847-D25F-4C4B-BBA0-36F0093487F6",
|
||||
"retry": 0,
|
||||
"query": ids,
|
||||
"pagenum": 0,
|
||||
"isPrefetch": true,
|
||||
"pagesize": 30,
|
||||
"queryFrom": 0,
|
||||
"searchDatakey": "",
|
||||
"transInfo": "",
|
||||
"isneedQc": true,
|
||||
"preQid": "",
|
||||
"adClientInfo": "",
|
||||
"extraInfo": {
|
||||
"isNewMarkLabel": "1",
|
||||
"multi_terminal_pc": "1",
|
||||
"themeType": "1",
|
||||
"sugRelatedIds": "{}",
|
||||
"appVersion": ""
|
||||
}
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.139 Safari/537.36',
|
||||
'Content-Type': 'application/json',
|
||||
'origin': 'https://v.qq.com',
|
||||
'referer': 'https://v.qq.com/'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return html1;
|
||||
}
|
||||
var rule = {
|
||||
title: '腾云驾雾[官]',
|
||||
host: 'https://v.%71%71.com',
|
||||
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
|
||||
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
|
||||
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
|
||||
searchUrl: '/x/search/?q=**&stag=fypage',
|
||||
searchUrl: 'https://pbaccess.video.%71%71.com/trpc.videosearch.smartboxServer.HttpRountRecall/Smartbox?query=**&appID=3172&appKey=lGhFIPeD3HsO9xEp&pageNum=(fypage-1)&pageSize=10',
|
||||
searchUrl: '**',
|
||||
searchable: 2,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
|
||||
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
|
||||
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
|
||||
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
|
||||
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
|
||||
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
|
||||
filter: {
|
||||
"choice": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}]
|
||||
}],
|
||||
"tv": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "79"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "16"
|
||||
}]
|
||||
}, {
|
||||
"key": "feature",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "都市",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "5"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "传奇",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "8"
|
||||
}, {
|
||||
"n": "军旅",
|
||||
"v": "9"
|
||||
}, {
|
||||
"n": "权谋",
|
||||
"v": "10"
|
||||
}, {
|
||||
"n": "革命",
|
||||
"v": "11"
|
||||
}, {
|
||||
"n": "现实",
|
||||
"v": "13"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "16"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "17"
|
||||
}, {
|
||||
"n": "玄幻",
|
||||
"v": "18"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}]
|
||||
}],
|
||||
"movie": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "100004"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "100061"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "100009"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "100005"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "100012"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "100010"
|
||||
}, {
|
||||
"n": "动画",
|
||||
"v": "100015"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "100006"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "100017"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "100022"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "100016"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "100011"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "100021"
|
||||
}, {
|
||||
"n": "老片",
|
||||
"v": "100013"
|
||||
}, {
|
||||
"n": "西部",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "记录片",
|
||||
"v": "100020"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}]
|
||||
}],
|
||||
"variety": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "23"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}]
|
||||
}],
|
||||
"cartoon": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "4"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "玄幻",
|
||||
"v": "9"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "13"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "5"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "魔幻",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "20"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "17"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "16"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "18"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "19"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "12"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}]
|
||||
}],
|
||||
"child": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "76"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "20"
|
||||
}]
|
||||
}, {
|
||||
"key": "sex",
|
||||
"name": "性别",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "女孩",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "男孩",
|
||||
"v": "2"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "1"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年龄段",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "0-3岁",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "4-6岁",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "7-9岁",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "10岁以上",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "全年龄段",
|
||||
"v": "7"
|
||||
}]
|
||||
}],
|
||||
"doco": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "74"
|
||||
}]
|
||||
}, {
|
||||
"key": "itrailer",
|
||||
"name": "出品方",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "BBC",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "国家地理",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "HBO",
|
||||
"v": "3175"
|
||||
}, {
|
||||
"n": "NHK",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "历史频道",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "ITV",
|
||||
"v": "3530"
|
||||
}, {
|
||||
"n": "探索频道",
|
||||
"v": "3174"
|
||||
}, {
|
||||
"n": "ZDF",
|
||||
"v": "3176"
|
||||
}, {
|
||||
"n": "腾讯自制",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "合作机构",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "5"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "自然",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "美食",
|
||||
"v": "10"
|
||||
}, {
|
||||
"n": "社会",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "人文",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "军事",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "科技",
|
||||
"v": "8"
|
||||
}, {
|
||||
"n": "财经",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "探险",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "罪案",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "12"
|
||||
}, {
|
||||
"n": "旅游",
|
||||
"v": "11"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
|
||||
cate_exclude: '会员|游戏|全部',
|
||||
// class_name: '电视剧&电影&综艺&动漫&少儿&纪录片',
|
||||
// class_url: 'tv&movie&variety&cartoon&child&doco',
|
||||
class_name: '自用4K✳️电影&自用4K✳️电视剧&自用4K✳️综艺&自用4K✳️动漫&自用4K✳️少儿&自用4K✳️纪录片',
|
||||
class_url: 'movie&tv&variety&cartoon&child&doco',
|
||||
limit: 20,
|
||||
// play_parse:true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
try {
|
||||
let api = "http://sspa8.top:8100/api/?key=%E6%99%93%E5%AE%87&url=" + input.split("?")[0];
|
||||
console.log(api);
|
||||
let response = fetch(api, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
|
||||
let bata = JSON.parse(response);
|
||||
log(bata)
|
||||
if (bata.url.includes("http")) {
|
||||
input = {
|
||||
header: {
|
||||
'User-Agent': ""
|
||||
},
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: 'https://jx.ariesc.cn/api/?key=8ab733bc3e1240b72ea608a8faaa47b2&url=' + input.split("?")[0]
|
||||
};
|
||||
} else {
|
||||
|
||||
input = {
|
||||
header: {
|
||||
'User-Agent': ""
|
||||
},
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: 'http://127.0.0.1:9978/proxy?do=danmu&site=js&url=http://dm.qxq6.com/zy/api.php?url=' + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
header: {
|
||||
'User-Agent': ""
|
||||
},
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: 'http://127.0.0.1:9978/proxy?do=danmu&site=js&url=http://dm.qxq6.com/zy/api.php?url=' + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
}),
|
||||
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
let d = [];
|
||||
let video_list = [];
|
||||
let video_lists = [];
|
||||
let list = [];
|
||||
let QZOutputJson;
|
||||
let html = fetch(input, fetch_params);
|
||||
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
|
||||
let cid = sourceId;
|
||||
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
|
||||
log("详情页:" + detailUrl);
|
||||
pdfh = jsp.pdfh;
|
||||
pd = jsp.pd;
|
||||
try {
|
||||
let json = JSON.parse(html);
|
||||
VOD = {
|
||||
vod_url: input,
|
||||
vod_name: json.c.title,
|
||||
type_name: json.typ.join(","),
|
||||
vod_actor: json.nam.join(","),
|
||||
vod_year: json.c.year,
|
||||
vod_content: json.c.description,
|
||||
vod_remarks: json.rec,
|
||||
vod_pic: urljoin2(input, json.c.pic)
|
||||
}
|
||||
} catch (e) {
|
||||
log("解析片名海报等基础信息发生错误:" + e.message)
|
||||
}
|
||||
if (/get_playsource/.test(input)) {
|
||||
eval(html);
|
||||
let indexList = QZOutputJson.PlaylistItem.indexList;
|
||||
indexList.forEach(function(it) {
|
||||
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
|
||||
eval(fetch(dataUrl, fetch_params));
|
||||
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
|
||||
vdata.forEach(function(item) {
|
||||
d.push({
|
||||
title: item.title,
|
||||
pic_url: item.pic,
|
||||
desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
|
||||
url: item.playUrl
|
||||
})
|
||||
});
|
||||
video_lists = video_lists.concat(vdata)
|
||||
})
|
||||
} else {
|
||||
let json = JSON.parse(html);
|
||||
video_lists = json.c.video_ids;
|
||||
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
|
||||
if (video_lists.length === 1) {
|
||||
let vid = video_lists[0];
|
||||
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
|
||||
d.push({
|
||||
title: "在线播放",
|
||||
url: url
|
||||
})
|
||||
} else if (video_lists.length > 1) {
|
||||
for (let i = 0; i < video_lists.length; i += 30) {
|
||||
video_list.push(video_lists.slice(i, i + 30))
|
||||
}
|
||||
video_list.forEach(function(it, idex) {
|
||||
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
|
||||
let o_html = fetch(o_url, fetch_params);
|
||||
eval(o_html);
|
||||
QZOutputJson.results.forEach(function(it1) {
|
||||
it1 = it1.fields;
|
||||
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
|
||||
d.push({
|
||||
title: it1.title,
|
||||
pic_url: it1.pic160x90.replace("/160", ""),
|
||||
desc: it1.video_checkup_time,
|
||||
url: url,
|
||||
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
let yg = d.filter(function(it) {
|
||||
return it.type && it.type !== "正片"
|
||||
});
|
||||
let zp = d.filter(function(it) {
|
||||
return !(it.type && it.type !== "正片")
|
||||
});
|
||||
VOD.vod_play_from = yg.length < 1 ? "qq" : "自用$$$qq 预告及花絮";
|
||||
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
|
||||
return it.title + "$" + it.url
|
||||
}).join("#") : [zp, yg].map(function(it) {
|
||||
return it.map(function(its) {
|
||||
return its.title + "$" + its.url
|
||||
}).join("#")
|
||||
}).join("$$$");
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
pdfa = jsp.pdfa;
|
||||
pdfh = jsp.pdfh;
|
||||
pd = jsp.pd;
|
||||
let html = request(input);
|
||||
let baseList = pdfa(html, "body&&.result_item_v");
|
||||
log(baseList.length);
|
||||
baseList.forEach(function(it) {
|
||||
let longText = pdfh(it, ".result_title&&a&&Text");
|
||||
let shortText = pdfh(it, ".type&&Text");
|
||||
let fromTag = pdfh(it, ".result_source&&Text");
|
||||
let score = pdfh(it, ".figure_info&&Text");
|
||||
let content = pdfh(it, ".desc_text&&Text");
|
||||
// let url = pdfh(it, ".result_title&&a&&href");
|
||||
let url = pdfh(it, "div&&r-data");
|
||||
// log(longText);
|
||||
// log(shortText);
|
||||
// log('url:'+url);
|
||||
let img = pd(it, ".figure_pic&&src");
|
||||
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
|
||||
log(shortText + "|" + url);
|
||||
if (fromTag.match(/腾讯/)) {
|
||||
d.push({
|
||||
title: longText.split(shortText)[0],
|
||||
img: img,
|
||||
url: url,
|
||||
content: content,
|
||||
desc: shortText + " " + score
|
||||
})
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let json = JSON.parse(html);
|
||||
if (json.data.smartboxItemList.length > 0) {
|
||||
let cid = json.data.smartboxItemList[0].basicDoc.id;
|
||||
let url = 'https://node.video.qq.com/x/api/float_vinfo2?cid=' + cid;
|
||||
let html1 = request(url);
|
||||
let data = JSON.parse(html1);
|
||||
|
||||
d.push({
|
||||
title: data.c.title,
|
||||
img: data.c.pic,
|
||||
url: url,
|
||||
content: data.c.description,
|
||||
desc: data.rec
|
||||
});
|
||||
}
|
||||
setResult(d);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
let mame = (input.split("/")[3]);
|
||||
let html = vod1(input.split("/")[3]);
|
||||
let json = JSON.parse(html);
|
||||
|
||||
let list = json.data.normalList.itemList;
|
||||
console.log(json);
|
||||
log(list[0].videoInfo.title);
|
||||
list.forEach(function(it) {
|
||||
try {
|
||||
if (it.doc.id.length > 11) {
|
||||
d.push({
|
||||
title: it.videoInfo.title,
|
||||
img: it.videoInfo.imgUrl,
|
||||
url: it.doc.id,
|
||||
// content: "",
|
||||
//desc: "data.rec"
|
||||
});
|
||||
}
|
||||
} catch {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
let list2 = json.data.areaBoxList[0].itemList;
|
||||
list2.forEach(function(it) {
|
||||
try {
|
||||
if (it.doc.id.length > 11 && it.videoInfo.title.match(mame)) {
|
||||
d.push({
|
||||
title: it.videoInfo.title,
|
||||
img: it.videoInfo.imgUrl,
|
||||
url: it.doc.id,
|
||||
// content: "",
|
||||
//desc: "data.rec"
|
||||
});
|
||||
}
|
||||
} catch {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
setResult(d);
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user