diff --git a/js/js/乐动影视.js b/js/js/乐动影视.js new file mode 100644 index 0000000..2451402 --- /dev/null +++ b/js/js/乐动影视.js @@ -0,0 +1,24 @@ +var rule = { + title:'乐动影视', + host:'https://www.ledongtv.com', + // homeUrl:'/', + url:'/lds/fyclass/page/fypage.html', + searchUrl:'/ldso/page/fypage/wd/**.html', + searchable:2,//是否启用全局搜索, + quickSearch:0,//是否启用快速搜索, + filterable:0,//是否启用分类筛选, + headers:{//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent':'MOBILE_UA', + // "Cookie": "searchneed=ok" + }, + class_name:'电影&电视剧&综艺&动漫', + class_url:'ldMovie&ldTv&ldVariety&ldCartoon', + play_parse:true, + lazy:'', + limit:6, + 推荐:'.module-items;.module-poster-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + double:true, // 推荐内容是否双层定位 + 一级:'.module-poster-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + 二级:{"title":"h1&&Text;.module-info-tag-link:eq(2)&&Text","img":".ls-is-cached.lazy.lazyload&&data-original","desc":".module-info-content&&.module-info-item:eq(-2)&&Text;.module-info-content&&.module-info-item:eq(-2)&&Text;.module-info-content&&.module-info-item:eq(-2)&&Text;.module-info-content&&.module-info-item:eq(3)&&.module-info-item-content&&Text;.module-info-content&&.module-info-item:eq(2)&&.module-info-item-content&&Text","content":".module-info-introduction-content&&Text","tabs":".module-tab-items-box:eq(0)&&.module-tab-item","lists":".module-list:eq(#id)&&.module-play-list-content a"}, + 搜索:'.module-card-item.module-item;.module-card-item-title&&Text;img&&data-original;.module-item-note&&Text;a.play-btn-o&&href', +} diff --git a/js/js/快云影院.js b/js/js/快云影院.js new file mode 100644 index 0000000..8f479c8 --- /dev/null +++ b/js/js/快云影院.js @@ -0,0 +1,24 @@ +var rule = { + title:'快云', + host:'https://kuaiyunyy.com', + // homeUrl:'/', + url:'/index.php/vod/show/id/fyclass/page/fypage.html', + //searchUrl:'/vodsearch/**----------fypage---.html', + searchable:0,//是否启用全局搜索, + quickSearch:0,//是否启用快速搜索, + filterable:0,//是否启用分类筛选, + headers:{//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent':'MOBILE_UA', + // "Cookie": "searchneed=ok" + }, + class_parse:'.nav-menu-items&&li;a&&title;a&&href;/(\\d+).html', + cate_exclude:'直播|足球', + play_parse:true, + lazy:'', + limit:8, + 推荐:'.module-items;.module-item-cover&&.module-item-pic;a&&title;.lazyloaded&&data-src;.item-text&&Text;a&&href', + double:true, // 推荐内容是否双层定位 + 一级:'.module-list&&.module-item-pic;a&&title;.lazyloaded&&data-src;.module-item-text&&Text;a&&href', + 二级:{"title":"h1.page-title&&Text;.video-info-aux&&Text","img":".lazyload&&data-src","content":".content.vod_content&&Text","tabs":".module-tab-item.tab-item","lists":".module-blocklist.scroll-box:eq(#id) a"}, + +} diff --git a/js/js/酷云77.js b/js/js/酷云77.js new file mode 100644 index 0000000..3e006fd --- /dev/null +++ b/js/js/酷云77.js @@ -0,0 +1,37 @@ +var rule = { + title:'酷云77', + host:'http://api.kunyu77.com', + homeUrl:'/api.php/provide/homeBlock?type_id=0', + searchUrl:'/api.php/provide/searchVideo?searchName=**', + searchable:2, + quickSearch:0, + filterable:1, + multi:1, + // 分类链接fypage参数支持1个()表达式 + url:'/api.php/provide/searchFilter?type_id=fyclass&pagesize=24&pagenum=fypage', + detailUrl:'/api.php/provide/videoDetail?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&version=1.8.7&ids=fyid', + filter_url:'year={{fl.y}}&category={{fl.scat}}&area={{fl.a}}', + filter:{0: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 1: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 2: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 3: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 4: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}]}, + headers:{ + "User-Agent":"okhttp/3.12.0" + }, + timeout:5000, + class_name:'全部&电影&电视剧&综艺&动漫', + class_url:'0&1&2&3&4', + limit:20, + play_parse:true, + play_json:0, + // 手动调用解析请求json的url,此lazy不方便 + // lazy:'js:input={parse:1,url:input};', + lazy:'', + lazy:'js:function GetPlayUrl(playUrl){let realPlay={parse:0,url:playUrl};if(/mgtv|sohu/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0"}}else if(/bili/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0",Referer:"https://www.bilibili.com"}}else if(/ixigua/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0",Referer:"https://www.ixigua.com"}}return realPlay}if(/\\.m3u8|\\.mp4/.test(input)){input={parse:0,url:input}}else{try{let jxUrl="http://api.kunyu77.com/api.php/provide/parserUrl?url=";var t=Math.floor((new Date).getTime()/1e3).toString();let jxExt="&retryNum=0&pcode=010110002&version=2.1&devid=f9c9ce5bb5827a266829383718e6131a&package=com.sevenVideo.app.android&sys=android&sysver=12&brand=Xiaomi&model=Mi_10_Pro&sj="+t;let url=jxUrl+input+jxExt;let TK="/api.php/provide/parserUrl"+"Xiaomif9c9ce5bb5827a266829383718e6131aMi_10_Procom.sevenVideo.app.android010110002"+0+t+"android12"+encodeURIComponent(vipUrl)+"2.1"+t+"XSpeUFjJ";let html=request(url,{headers:{Referer:jxUrl,"User-Agent":"okhttp/3.12.0",TK:md5(TK)}});let urll=JSON.parse(html).data.url;let playhtml=request(urll);let playurl=JSON.parse(playhtml).url;input=GetPlayUrl(playurl)}catch(e){input={parse:1,jx:1,url:input}}}', + 推荐:'json:data.blocks;contents;title;videoCover;msg;id', + double:true, + // 一级:'json:data.filterData.listData;title;img;subTitle;videoLink;summary', + 一级:'', + 一级:'json:data.result;title;videoCover;msg;id', + 二级:'', + 二级:'js:var d=[];VOD={vod_id:input};try{let html=request(input);print(html);html=JSON.parse(html);let node=html.data;VOD={vod_id:node["id"],vod_name:node["videoName"],vod_pic:node["videoCover"],type_name:node["subCategory"],vod_year:node["year"],vod_area:node["area"],vod_remarks:node["msg"],vod_actor:node["actor"],vod_director:node["director"],vod_content:node["brief"].strip()};let tid=input.split("ids=")[1];let listUrl="http://api.kunyu77.com/api.php/provide/videoPlaylist?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&version=1.8.7&ids="+tid;html=request(listUrl);html=JSON.parse(html);let episodes=html.data.episodes;let playMap={};if(typeof play_url==="undefined"){var play_url=""}play_url=play_url.replace("&play_url=","&type=json&play_url=");episodes.forEach(function(ep){let playurls=ep["playurls"];playurls.forEach(function(playurl){let source=playurl["playfrom"];if(!playMap.hasOwnProperty(source)){playMap[source]=[]}playMap[source].append(playurl["title"].strip()+"$"+play_url+urlencode(playurl["playurl"]))})});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)}', + 搜索:'', + 搜索:'json:data;videoName;videoCover;msg;id', +} \ No newline at end of file diff --git a/js/js/酷客影院.js b/js/js/酷客影院.js new file mode 100644 index 0000000..4f8ae36 --- /dev/null +++ b/js/js/酷客影院.js @@ -0,0 +1,34 @@ +// 网址发布页 http://www.ikuke.vip/ +var rule = { + title:'酷客影院', + 模板:'首图2', + host:'http://www.2kuke.com', + // host:'http://www.3kuke.com', + // url:'/list/fyclass_fypage.html', + url:'/list/fyfilter', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}_fypage.html?order={{fl.by}}', + filter:{ + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"喜剧片","v":"7"},{"n":"动作片","v":"8"},{"n":"科幻片","v":"9"},{"n":"奇幻片","v":"10"},{"n":"恐怖片","v":"11"},{"n":"灾难片","v":"12"},{"n":"战争片","v":"13"},{"n":"爱情片","v":"14"},{"n":"剧情片","v":"15"},{"n":"其他片","v":"16"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"言情剧","v":"28"},{"n":"古装剧","v":"30"},{"n":"都市剧","v":"29"},{"n":"警匪剧","v":"31"},{"n":"爱情剧","v":"32"},{"n":"家庭剧","v":"33"},{"n":"战争剧","v":"34"},{"n":"悬疑剧","v":"35"},{"n":"穿越剧","v":"36"},{"n":"其他剧","v":"37"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"}]}], + "4":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"}]}], + "3":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"3"},{"n":"热血","v":"38"},{"n":"冒险","v":"39"},{"n":"搞笑","v":"40"},{"n":"玄幻","v":"41"},{"n":"武侠","v":"42"},{"n":"推理","v":"43"},{"n":"推理","v":"44"},{"n":"经典","v":"45"},{"n":"其他动漫","v":"46"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"}]}] + }, + filter_def:{ + 1:{cateId:'1',by:'time'}, + 2:{cateId:'2',by:'time'}, + 4:{cateId:'4',by:'time'}, + 3:{cateId:'3',by:'time'} + }, + searchUrl:'/search.php#searchword=**;post', + class_parse: '.stui-header__menu li:gt(0):lt(5);a&&title;a&&href;.*/(.*?).html', + // lazy:'js:pdfh=jsp.pdfh;var url=pdfh(request(input),"iframe&&src");try{try{try{var url=pdfh(request(url,{}),"body&&script,1&&Html").match(/else[\s\S]*?src="(.*?)"/)[1];if(/m3u8|mp4/.test(url)){input=url}}catch(e){var url=pdfh(request(url),"iframe&&src");var url=request(url,{headers:{"Referer":MY_URL}}).match(/Source\\("(.*?)"/)[1];input=url}}catch(e){var url=pdfh(request(input),"iframe&&src");var url=request(url,{headers:{"Referer":MY_URL}}).match(/Source\\("(.*?)"/)[1];input=url}}catch(e){input}', + 二级: { + "title": "h1&&Text;.data--span:eq(0)&&Text", + "img": ".lazyload&&data-original", + "desc": ".data:eq(1)&&Text;;;p.line1--span:eq(0)&&Text;p.line1--span:eq(1)&&Text", + "content": ".desc--span&&Text", + "tabs": ".nav-tabs li", + "lists": ".stui-content__playlist:eq(#id) li" + }, +} \ No newline at end of file diff --git a/js/js/酷狗MV.js b/js/js/酷狗MV.js new file mode 100644 index 0000000..66cf93e --- /dev/null +++ b/js/js/酷狗MV.js @@ -0,0 +1,21 @@ +var rule = { + title:'酷狗MV', + host:'https://www.kugou.com', + homeUrl:'/mvweb/html/', + url:'/mvweb/html/index_fyclass_fypage.html', + searchUrl:'https://api.linhun.vip/api/kgmv?apiKey=e7e165ab27316db14467c07e00f3820d&name=**&n=', + searchable:2, + quickSearch:0, + class_parse:'#radioList&ⅆa&&Text;a&&href;.*/index_(\\d+)_1.html', + headers:{ + 'User-Agent':'PC_UA' + }, + timeout:5000, + play_parse:true, + lazy:'js:if(/mp4/.test(input)){input}else{var mv_name=request(input).match(/mv_name = "(.*?)"/)[1];input=JSON.parse(request("https://api.linhun.vip/api/kgmv?apiKey=e7e165ab27316db14467c07e00f3820d&name="+mv_name+"&n=1")).video}', + limit:6, + 推荐:'*', + 一级:'.mvlist li;a&&title;img&&_src;;a&&href', + 二级:'*', + 搜索:'js:let d=[];let html=request(input);let list=JSON.parse(html).sun;for(let j=1;j<=list;j++){let t=JSON.parse(request(MY_URL+j));d.push({title:t.name,desc:t.author,img:t.img,url:t.video})}setResult(d)', +} \ No newline at end of file