From 8f1ff4d3d2e34ff7f921dbe46878632d4da50ace Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Sun, 23 Oct 2022 20:05:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/custom.conf | 5 +-- base/files/base.jar | Bin 0 -> 22660 bytes base/rules.db | Bin 90112 -> 90112 bytes controllers/cms.py | 22 +++++++++++-- "js/if101[\351\243\236].js" | 8 ++--- js/version.txt | 2 +- ...\345\220\274\345\220\274[\351\243\236].js" | 26 ++++++++++++++++ ...\345\275\261\351\231\242[\351\243\236].js" | 26 ++++++++++++++++ ...\345\275\261\351\231\242[\351\243\236].js" | 12 ++++++++ "js/\350\215\220\347\211\207.js" | 1 + "js/\351\245\255\345\233\242.js" | 23 +++----------- libs/drpy.js | 29 +++++++++++++++++- libs/drpy.min.js | 2 +- readme.md | 5 +++ 14 files changed, 130 insertions(+), 31 deletions(-) create mode 100644 base/files/base.jar create mode 100644 "js/\345\220\274\345\220\274[\351\243\236].js" create mode 100644 "js/\345\260\217\345\256\235\345\275\261\351\231\242[\351\243\236].js" create mode 100644 "js/\346\254\247\344\271\220\345\275\261\351\231\242[\351\243\236].js" diff --git a/base/custom.conf b/base/custom.conf index 0ed20a0..f90f9ef 100644 --- a/base/custom.conf +++ b/base/custom.conf @@ -53,7 +53,8 @@ {"key":"mjxq_spider","name":"🌏美剧星球(SP)","type":3,"api":"csp_Mjxq","searchable":1,"quickSearch":1,"filterable":1}, {"key":"csp_Nbys","name":"📺泥巴(SP需翻墙)","type":3,"api":"csp_Nbys","searchable":1,"quickSearch":1,"filterable":1}, {"key":"csp_Cokemv","name":"🚗Cokemv(SP)","type":3,"api":"csp_Cokemv","searchable":1,"quickSearch":1,"filterable":1}, -{"key":"if101资源","name":"✈️if101(海外推荐)","type":0,"api":"https://demo.if101.tv/api.php/provide/vod/at/xml","searchable":1,"quickSearch":0,"filterable":0}, +# {"key":"if101资源","name":"✈️if101(海外推荐)","type":0,"api":"https://demo.if101.tv/api.php/provide/vod/at/xml","searchable":1,"quickSearch":0,"filterable":0}, +{"key":"海外看资源","name":"海外看(海外推荐)","type":0,"api":"https://haiwaikan.com/api.php/provide/vod/at/xml","searchable":1,"quickSearch":0,"filterable":0}, # {"key":"push_agent","name":"🍭推送(阿里)","type":3,"api":"csp_PushAgent","searchable":0,"quickSearch":0,"filterable":0,"ext":"{{ali_token}}"}, {"key": "push_agent","name": "推送(爱优腾/阿里云盘/磁力链接)","type": 3,"api": "csp_PushAgent","searchable":0,"quickSearch": 0,"filterable":0,"ext": "{{ali_token}}","plugin":"{{host}}/txt/jar/0906.jar"}, {"key":"csp_GitCafe","name":"小纸条","type":3,"api":"csp_Gitcafe","searchable":1,"quickSearch":1,"filterable":0,"ext":"{{ali_token}}"}, @@ -129,7 +130,7 @@ #优质资源 {"key":"U酷资源","name":"U酷资源(优)","type":1,"api":"https://api.ukuapi.com/api.php/provide/vod/","searchable":1,"quickSearch":1}, {"key":"看看资源","name":"看看资源(优)","type":1,"api":"https://zy.hikan.xyz/api.php/provide/vod/","searchable":1,"quickSearch":1}, -{"key":"一帆资源(VPN)","name":"一帆资源(VPN)(优)","type":1,"api":"http://api.if101.tv/v1/vod?ac=list","searchable":0,"quickSearch":0}, +# {"key":"一帆资源(VPN)","name":"一帆资源(VPN)(优)","type":1,"api":"http://api.if101.tv/v1/vod?ac=list","searchable":0,"quickSearch":0}, {"key":"789盘","name":"789盘(优)","type":1,"api":"https://www.rrvipw.com/api.php/provide/vod/","searchable":1,"quickSearch":1}, {"key":"多多资源2","name":"多多资源2(优)","type":1,"api":"https://a.7dyu.cn/api.php/provide/vod/","searchable":1,"quickSearch":1}, {"key":"土剧TV","name":"土剧TV(优)","type":1,"api":"http://tujutv.top/api.php/provide/vod/","searchable":1,"quickSearch":1}, diff --git a/base/files/base.jar b/base/files/base.jar new file mode 100644 index 0000000000000000000000000000000000000000..00a53493e32412b524fd9d6082c526a64342e376 GIT binary patch literal 22660 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 0 else 0 result['list'] = videos @@ -1135,6 +1144,9 @@ class CMS: vod = self.二级渲染(p,detailUrl=detailUrl,orId=orId,url=url,vod=vod,show_name=show_name,jsp=jsp,fyclass=fyclass) except Exception as e: logger.info(f'{self.getName()}获取单个详情页{detailUrl}出错{e}') + if self.图片来源: + if vod.get('vod_pic','') and str(vod['vod_pic']).startswith('http'): + vod['vod_pic'] = f"{vod['vod_pic']}{self.图片来源}" if not vod.get('vod_id'): vod['vod_id'] = orId # print(vod) @@ -1300,6 +1312,10 @@ class CMS: # print(videos) except Exception as e: logger.info(f'搜索{self.getName()}发生错误:{e}') + if self.图片来源: + for video in videos: + if video.get('vod_pic','') and str(video['vod_pic']).startswith('http'): + video['vod_pic'] = f"{video['vod_pic']}{self.图片来源}" if show_name and len(videos) > 0: for video in videos: video['vod_name'] = self.id + ' '+video['vod_name'] diff --git "a/js/if101[\351\243\236].js" "b/js/if101[\351\243\236].js" index 21bff1d..8f4abba 100644 --- "a/js/if101[\351\243\236].js" +++ "b/js/if101[\351\243\236].js" @@ -5,7 +5,7 @@ var rule={ url:'/index.php/vod/show/id/fyclass/page/fypage.html', searchUrl:'/index.php/vod/search.html?wd=**', searchable:2,//是否启用全局搜索, - quickSearch:0,//是否启用快速搜索, + quickSearch:1,//是否启用快速搜索, filterable:0,//是否启用分类筛选, headers:{//网站的请求头,完整支持所有的,常带ua和cookies 'User-Agent':'MOBILE_UA', @@ -16,9 +16,9 @@ var rule={ play_parse:true, lazy:'', limit:6, - 推荐:'body&&.hl-list-wrap;ul&&li;a&&title;.hl-lazy&&data-original;.hl-pic-text&&Text;a&&href', + 推荐:'body&&.hl-list-wrap;ul&&li;*;*;*;*', double:true, // 推荐内容是否双层定位 一级:'.hl-vod-list&&li;a&&title;.hl-lazy&&data-original;.hl-pic-text&&Text;a&&href', - 二级:{"title":".hl-dc-title&&Text;.hl-col-xs-12&&em&&.hl-text-muted:eq(0)&&Text","img":".hl-lazy&&data-original","desc":".hl-col-xs-12&&em&&.hl-text-muted:eq(-2)&&Text;.hl-col-xs-12&&em&&.hl-text-muted:eq(1)&&Text;.hl-col-xs-12&&em&&.hl-text-muted:eq(2)&&Text","content":".hl-content-text&&Text","tabs":".hl-plays-wrap","lists":".hl-plays-list:eq(#id) li"}, - 搜索:'.hl-list-wrap&&ul&&li;h3&&Text;.hl-lazy&&data-original;.hl-item-title:eq(0)&&Text;a&&href', + 二级:{"title":"h2.hl-dc-title&&Text;.hl-full-box&&ul&&li:eq(6) a&&Text","img":".hl-lazy&&data-original","desc":";;;.hl-full-box&&ul&&li:eq(2) a&&Text;.hl-full-box&&ul&&li:eq(3) a&&Text","content":".hl-content-text&&Text","tabs":".hl-from-list&&li","lists":".hl-plays-list:eq(#id) li"}, + 搜索:'.hl-list-wrap&&.hl-item-pic;*;*;*;*', } \ No newline at end of file diff --git a/js/version.txt b/js/version.txt index 3a73073..fd15561 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.15beta5 \ No newline at end of file +3.9.16 \ No newline at end of file diff --git "a/js/\345\220\274\345\220\274[\351\243\236].js" "b/js/\345\220\274\345\220\274[\351\243\236].js" new file mode 100644 index 0000000..a928c75 --- /dev/null +++ "b/js/\345\220\274\345\220\274[\351\243\236].js" @@ -0,0 +1,26 @@ +var rule={ +title:'吼吼', +host:'https://www.hoho.tv', +// homeUrl:'/', +url:'/vod/show/fyclass/page/fypage.html', + searchUrl:'/vod/search/wd/**.html', + searchable:2,//是否启用全局搜索, + quickSearch:1,//是否启用快速搜索, + filterable:0,//是否启用分类筛选, + headers:{//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent':'MOBILE_UA', + // "Cookie": "searchneed=ok" + }, + class_name:'电影&连续剧&综艺&动漫&纪录片', + class_url:'1&2&3&4&20', + //class_parse:'ul.nav-menu-items&&li;a&&Text;a&&href;./(\\d+).html', + //cate_exclude:'', + play_parse:true, + lazy:'', + limit:6, + 推荐:'.module-list;.module-items&&.module-item;a&&title;.lazyloaded&&data-src;.module-item-caption&&span&&Text;a&&href', + double:true, // 推荐内容是否双层定位 + 一级:'.module-items&&.module-item;a&&title;.lazyloaded&&data-src;.module-item-caption&&span&&Text;a&&href', + 二级:{"title":"h1.page-title&&Text;.video-info-aux&&a&&Text","img":".lazyload&&data-src","desc":";;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text","content":".vod_content&&Text","tabs":".module-tab-content&&span","lists":".module-blocklist:eq(#id) a"}, + 搜索:'body&&.module-search-item;h3&&a&&title;.lazyload&&data-src;*;*', +} \ No newline at end of file diff --git "a/js/\345\260\217\345\256\235\345\275\261\351\231\242[\351\243\236].js" "b/js/\345\260\217\345\256\235\345\275\261\351\231\242[\351\243\236].js" new file mode 100644 index 0000000..da8b80b --- /dev/null +++ "b/js/\345\260\217\345\256\235\345\275\261\351\231\242[\351\243\236].js" @@ -0,0 +1,26 @@ +var rule={ +title:'小宝影院', +host:'https://xiaoheimi.net', +// homeUrl:'/', +url:'/index.php/vod/type/id/fyclass/page/fypage.html', +searchUrl:'/index.php/vod/search.html?wd=**', +searchable:2,//是否启用全局搜索, +quickSearch:1,//是否启用快速搜索, +filterable:0,//是否启用分类筛选, +headers:{//网站的请求头,完整支持所有的,常带ua和cookies +'User-Agent':'MOBILE_UA', + // "Cookie": "searchneed=ok" +}, +class_name:'电影&连续剧&综艺&动漫&纪录片', +class_url:'1&2&3&4&21', +//class_parse:'ul.nav-menu-items&&li;a&&Text;a&&href;./(\\d+).html', +//cate_exclude:'', +play_parse:true, +lazy:'', +limit:6, +推荐:'body ul.myui-vodlist;li;a&&title;a&&data-original;.text-right&&Text;a&&href', +double:true, // 推荐内容是否双层定位 +一级:'ul.myui-vodlist&&li;a&&title;a&&data-original;.text-right&&Text;a&&href', +二级:{"title":"h1.title&&Text;p.data&&Text","img":"img.lazyload&&data-original","desc":";;;p.data:eq(2) a&&Text;p.data:eq(3) a&&Text","content":"span.sketch&&Text","tabs":".nav-tabs.active","lists":".myui-content__list:eq(#id) li"}, +搜索:'.myui-vodlist__media.clearfix&&li;*;*;*;*', +} \ No newline at end of file diff --git "a/js/\346\254\247\344\271\220\345\275\261\351\231\242[\351\243\236].js" "b/js/\346\254\247\344\271\220\345\275\261\351\231\242[\351\243\236].js" new file mode 100644 index 0000000..720d194 --- /dev/null +++ "b/js/\346\254\247\344\271\220\345\275\261\351\231\242[\351\243\236].js" @@ -0,0 +1,12 @@ +var rule = Object.assign(muban.vfed,{ +title:'欧乐影院', +host:'https://www.olevod.com', +'User-Agent':'MOBILE_UA', +class_parse:'ul.top_nav&&li;a&&Text;a&&href;./(\\d+).html', +cate_exclude:'午夜影院|VIP蓝光影院|电视直播', +推荐:'.cbox_list;ul&&li;a&&title;.lazyload&&data-original;.text_dy&&Text;a&&href', +double:true, // 推荐内容是否双层定位 +一级:'.vodlist&&li;a&&title;.lazyload&&data-original;.text_dy&&Text;a&&href', +二级:{"title":".hd_tit&&Text;.content_min&&ul&&li&&Text","img":".lazyload&&data-original","desc":";;;.content_min&&ul&&li:eq(2) a&&Text;.content_min&&ul&&li:eq(3) a&&Text","content":".context&&span&&Text","tabs":".play_source_tab&&.active","lists":".content_playlist:eq(#id) li"}, +搜索:'.vodlist&&li;*;*;*;*', +}); \ No newline at end of file diff --git "a/js/\350\215\220\347\211\207.js" "b/js/\350\215\220\347\211\207.js" index 3ea86a5..a693797 100644 --- "a/js/\350\215\220\347\211\207.js" +++ "b/js/\350\215\220\347\211\207.js" @@ -33,6 +33,7 @@ var rule = { }], lazy:'', double:true, + 图片来源:'@Referer=http://www.jianpianapp.com@User-Agent=jianpian-version350', 推荐:'json:data;room;*;cover;*;*', 一级:'json:data;title;path;playlist.title;id', 二级:{ diff --git "a/js/\351\245\255\345\233\242.js" "b/js/\351\245\255\345\233\242.js" index 0138265..5492ad4 100644 --- "a/js/\351\245\255\345\233\242.js" +++ "b/js/\351\245\255\345\233\242.js" @@ -1,23 +1,8 @@ var rule={ title:'饭团', + 模板:'首图', host:'https://fositv.com', - // homeUrl:'/', - url:'/vodtype/fyclass-fypage.html', - searchUrl:'/vodsearch/-------------.html?wd=**', - searchable:2,//是否启用全局搜索, - quickSearch:0,//是否启用快速搜索, - filterable:0,//是否启用分类筛选, - headers:{//网站的请求头,完整支持所有的,常带ua和cookies - 'User-Agent':'MOBILE_UA', - // "Cookie": "searchneed=ok" - }, - class_parse:'.dropdown-box&&ul&&li;a&&Text;a&&href;.*/(.*?).html', - play_parse:true, - lazy:'', - limit:6, - 推荐:'.myui-panel_bd;&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', - double:true, // 推荐内容是否双层定位 - 一级:'.myui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', - 二级:{"title":".text-fff&&Text","img":".lazyload&&data-original","desc":".col-pd.text-collapse&&p:eq(1)&&Text; .col-pd.text-collapse&&p:eq(2)&&Text; .col-pd.text-collapse&&p:eq(0)&&Text","content":".sketch&&Text","tabs":".nav&&li","lists":".myui-content__list:eq(#id) li"}, -搜索:'.myui-panel_bd&&ul&&li;h4&&Text;lazyload&&data-original;a&&href', + url:'/vod____type/fyclass-fypage.html', + 二级:{"title":".text-fff&&Text;.myui-player__data p&&Text","img":"","desc":".myui-player__data p&&Text;;;.text-collapse p:eq(1)&&Text;.text-collapse p:eq(0)&&Text","content":".data&&Text","tabs":".nav-tabs:eq(0) li","lists":".myui-content__list:eq(#id) li"}, + searchUrl:'/vod_search/-------------.html?wd=**', } \ No newline at end of file diff --git a/libs/drpy.js b/libs/drpy.js index a2de6af..7f1e40b 100644 --- a/libs/drpy.js +++ b/libs/drpy.js @@ -33,7 +33,7 @@ function init_test(){ } let rule = {}; -const VERSION = '3.9.15beta1'; +const VERSION = '3.9.16'; /** 已知问题记录 * 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了] * Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下) @@ -976,6 +976,7 @@ 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 @@ -1270,6 +1271,13 @@ function homeVodParse(homeVodObj){ let t2 = (new Date()).getTime(); console.log('加载首页推荐耗时:'+(t2-t1)+'毫秒'); // console.log(JSON.stringify(d)); + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } return JSON.stringify({ list:d }) @@ -1397,6 +1405,13 @@ function categoryParse(cateObj) { console.log(e.message); } } + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } // print(d); return d.length<1?'{}':JSON.stringify({ 'page': parseInt(cateObj.pg), @@ -1515,6 +1530,14 @@ function searchParse(searchObj) { return '{}' } } + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } + // print(d); return JSON.stringify({ 'page': parseInt(searchObj.pg), 'pagecount': 10, @@ -1737,6 +1760,9 @@ function detailParse(detailObj){ } vod.vod_play_url = vod_play_url; } + if(rule.图片来源 && vod.vod_pic && vod.vod_pic.startsWith('http')){ + vod.vod_pic = vod.vod_pic + rule.图片来源; + } if(!vod.vod_id){ vod.vod_id = vod_id; } @@ -1889,6 +1915,7 @@ function playParse(playObj){ rule.timeout = rule.timeout||5000; rule.encoding = rule.编码||rule.encoding||'utf-8'; + rule.图片来源 = rule.图片来源||''; rule.play_json = rule.hasOwnProperty('play_json')?rule.play_json:[]; if(rule.headers && typeof(rule.headers) === 'object'){ try { diff --git a/libs/drpy.min.js b/libs/drpy.min.js index 2f30c7c..8a14669 100644 --- a/libs/drpy.min.js +++ b/libs/drpy.min.js @@ -1 +1 @@ -import cheerio from"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/cheerio.min.js";import"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/crypto-js.js";import"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/drT.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}let rule={};const VERSION="3.9.15beta1";const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36";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="猜你|喜欢|APP|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://cms.nokia.press:5706/parse/ocr";if(typeof MY_URL==="undefined"){var MY_URL}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)$/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.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-1){let sp=parse.split("&&");option=sp[sp.length-1];sp.splice(sp.length-1);if(sp.length>1){for(let i in sp){if(!SELECT_REGEX.test(sp[i])){sp[i]=sp[i]+":eq(0)"}}}else{if(!SELECT_REGEX.test(sp[0])){sp[0]=sp[0]+":eq(0)"}}parse=sp.join(" ")}let result="";const $=eleFind?html.rr:cheerio.load(html);let ret=eleFind?parse==="*=*"||$(html.ele).is(parse)?html.ele:$(html.ele).find(parse):$(parse);if(option){if(option==="Text"){result=$(ret).text()}else if(option==="Html"){result=$(ret).html()}else{result=$(ret).attr(option);if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1]}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)){if(/http/.test(result)){result=result.substr(result.indexOf("http"))}else{result=urljoin(base_url,result)}}}else{result=$(ret).toString()}return result},pdfa(html,parse){if(!parse||!parse.trim()){print("!parse");return[]}let eleFind=typeof html==="object";if(parse.indexOf("&&")>-1){let sp=parse.split("&&");for(let i in sp){if(!SELECT_REGEX_A.test(sp[i])&&iit.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,"User-Agent":MOBILE_UA},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 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)}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(!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["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){let data={};obj.body.split("&").forEach(it=>{data[it.split("=")[0]]=it.split("=")[1]});obj.data=data;delete obj.body}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}console.log(JSON.stringify(obj.headers));console.log("request:"+url);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.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data!=="string"){try{data=JSON.stringify(data)}catch(e){console.log("print:"+e.message)}}if(typeof data!=="string"){console.log(typeof data+":"+data.length)}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;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")){obj.headers["Cookie"]=cookie}else if(!obj.headers){obj.headers={Cookie:cookie}}}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=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);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]){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){let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}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.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;const 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);for(let item of items){let items2=_pdfa(item,p[1]);for(let item2 of items2){try{let p2=getPP(p,2,pp,1);let title=_pdfh(item2,p2);let img="";try{let p3=getPP(p,3,pp,2);img=_pd(item2,p3)}catch(e){}let desc="";try{let p4=getPP(p,4,pp,3);desc=_pdfh(item2,p4)}catch(e){}let p5=getPP(p,5,pp,4);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]){let p6=getPP(p,6,pp,5);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);for(let item of items){try{let p1=getPP(p,1,pp,1);let title=_pdfh(item,p1);let img="";try{let p2=getPP(p,2,pp,2);img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{let p3=getPP(p,3,pp,3);desc=_pdfh(item,p3)}catch(e){}let p4=getPP(p,4,pp,4);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]){let p5=getPP(p,5,pp,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){}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");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(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)}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});if(/object Object/.test(new_url)){new_url=drT.renderText(url,fl)}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)}}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]}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)}}return d.length<1?"{}":JSON.stringify({page:parseInt(cateObj.pg),pagecount:999,limit:20,total:999,list:d})}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).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 html=getHtml(MY_URL);if(html){if(/系统安全验证|输入验证码/.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)}console.log(JSON.stringify(html));console.log(html);let list=_pdfa(html,p0);list.forEach(it=>{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 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]){let p5=getPP(p,5,pp,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"{}"}}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){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;console.log(MY_URL);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"){if(!html){html=getHtml(MY_URL)}let _impJQP=true;let _ps;if(p.is_json){_ps=parseTags.json;html=dealJson(html);_impJQP=false}else if(p.is_jsp){_ps=parseTags.jsp}else if(p.is_jq){_ps=parseTags.jq}else{_ps=parseTags.jq}if(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}_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(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);if(html&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}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";for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}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);if(html&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!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);console.log(p1);let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}let new_vod_list=[];let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);vodList.forEach(it=>{new_vod_list.push(_pdfh(it,list_text).trim()+"$"+_pd(it,list_url,MY_URL))});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(!vod.vod_id){vod.vod_id=vod_id}return JSON.stringify({list:[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;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,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.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse: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 init(ext){console.log("init");try{if(typeof globalThis.mubanJs==="undefined"){let mubanJs=request("https://gitcode.net/qq_32394351/dr_py/-/raw/master/js/模板.js",{"User-Agent":MOBILE_UA});mubanJs=mubanJs.replace("export default","(function() {return muban;}()) // export default");globalThis.mubanJs=mubanJs}let muban=eval(globalThis.mubanJs);if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}}else{eval(ext.replace("var rule","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.host=(rule.host||"").rstrip("/");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.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];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)}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};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="";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.二级,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){let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:1,quick:quick};return searchParse(searchObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,DRPY:DRPY}; \ No newline at end of file +import cheerio from"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/cheerio.min.js";import"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/crypto-js.js";import"https://gitcode.net/qq_32394351/dr_py/-/raw/master/libs/drT.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}let rule={};const VERSION="3.9.16";const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36";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="猜你|喜欢|APP|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://cms.nokia.press:5706/parse/ocr";if(typeof MY_URL==="undefined"){var MY_URL}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)$/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.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-1){let sp=parse.split("&&");option=sp[sp.length-1];sp.splice(sp.length-1);if(sp.length>1){for(let i in sp){if(!SELECT_REGEX.test(sp[i])){sp[i]=sp[i]+":eq(0)"}}}else{if(!SELECT_REGEX.test(sp[0])){sp[0]=sp[0]+":eq(0)"}}parse=sp.join(" ")}let result="";const $=eleFind?html.rr:cheerio.load(html);let ret=eleFind?parse==="*=*"||$(html.ele).is(parse)?html.ele:$(html.ele).find(parse):$(parse);if(option){if(option==="Text"){result=$(ret).text()}else if(option==="Html"){result=$(ret).html()}else{result=$(ret).attr(option);if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1]}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)){if(/http/.test(result)){result=result.substr(result.indexOf("http"))}else{result=urljoin(base_url,result)}}}else{result=$(ret).toString()}return result},pdfa(html,parse){if(!parse||!parse.trim()){print("!parse");return[]}let eleFind=typeof html==="object";if(parse.indexOf("&&")>-1){let sp=parse.split("&&");for(let i in sp){if(!SELECT_REGEX_A.test(sp[i])&&iit.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,"User-Agent":MOBILE_UA},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 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)}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(!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["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){let data={};obj.body.split("&").forEach(it=>{data[it.split("=")[0]]=it.split("=")[1]});obj.data=data;delete obj.body}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}console.log(JSON.stringify(obj.headers));console.log("request:"+url);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.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data!=="string"){try{data=JSON.stringify(data)}catch(e){console.log("print:"+e.message)}}if(typeof data!=="string"){console.log(typeof data+":"+data.length)}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")){obj.headers["Cookie"]=cookie}else if(!obj.headers){obj.headers={Cookie:cookie}}}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=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);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]){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){let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}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.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;const 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);for(let item of items){let items2=_pdfa(item,p[1]);for(let item2 of items2){try{let p2=getPP(p,2,pp,1);let title=_pdfh(item2,p2);let img="";try{let p3=getPP(p,3,pp,2);img=_pd(item2,p3)}catch(e){}let desc="";try{let p4=getPP(p,4,pp,3);desc=_pdfh(item2,p4)}catch(e){}let p5=getPP(p,5,pp,4);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]){let p6=getPP(p,6,pp,5);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);for(let item of items){try{let p1=getPP(p,1,pp,1);let title=_pdfh(item,p1);let img="";try{let p2=getPP(p,2,pp,2);img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{let p3=getPP(p,3,pp,3);desc=_pdfh(item,p3)}catch(e){}let p4=getPP(p,4,pp,4);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]){let p5=getPP(p,5,pp,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){}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}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(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)}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});if(/object Object/.test(new_url)){new_url=drT.renderText(url,fl)}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)}}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]}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.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return d.length<1?"{}":JSON.stringify({page:parseInt(cateObj.pg),pagecount:999,limit:20,total:999,list:d})}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).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 html=getHtml(MY_URL);if(html){if(/系统安全验证|输入验证码/.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)}console.log(JSON.stringify(html));console.log(html);let list=_pdfa(html,p0);list.forEach(it=>{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 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]){let p5=getPP(p,5,pp,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.图片来源){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){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;console.log(MY_URL);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"){if(!html){html=getHtml(MY_URL)}let _impJQP=true;let _ps;if(p.is_json){_ps=parseTags.json;html=dealJson(html);_impJQP=false}else if(p.is_jsp){_ps=parseTags.jsp}else if(p.is_jq){_ps=parseTags.jq}else{_ps=parseTags.jq}if(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}_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(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);if(html&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}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";for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}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);if(html&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!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);console.log(p1);let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}let new_vod_list=[];let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);vodList.forEach(it=>{new_vod_list.push(_pdfh(it,list_text).trim()+"$"+_pd(it,list_url,MY_URL))});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.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id){vod.vod_id=vod_id}return JSON.stringify({list:[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;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,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.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse: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 init(ext){console.log("init");try{if(typeof globalThis.mubanJs==="undefined"){let mubanJs=request("https://gitcode.net/qq_32394351/dr_py/-/raw/master/js/模板.js",{"User-Agent":MOBILE_UA});mubanJs=mubanJs.replace("export default","(function() {return muban;}()) // export default");globalThis.mubanJs=mubanJs}let muban=eval(globalThis.mubanJs);if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}}else{eval(ext.replace("var rule","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.host=(rule.host||"").rstrip("/");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.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;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}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.图片来源=rule.图片来源||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];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)}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};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="";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.二级,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){let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:1,quick:quick};return searchParse(searchObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,DRPY:DRPY}; \ No newline at end of file diff --git a/readme.md b/readme.md index f24d2c3..cfb867c 100644 --- a/readme.md +++ b/readme.md @@ -51,6 +51,8 @@ - [X] 新增几个源 包括虎牙直播 - [X] 设置中心增加仙人模式开关(自动识别不同设备返回不同的drpy接口,关闭的话只会走drpy.min.js) - [X] 3.9.15beta5 修复后台管理无法进入的bug,规定js源必须包含 var rule字符,不然不识别。中间仅有一个空格 +- [X] 3.9.16 增加源属性:图片来源 荐片源图片带上图片来源(目前仅爱佬版tvb可用) +- [X] 优化饭团源,增加其他几个飞机源 ###### 2022/10/22 - [X] 新增几个直播源 - [X] 优化没有二级的情况自动带入一级图片和标题 @@分割 @@ -393,6 +395,9 @@ var rule = { // 首页推荐显示数量 limit:6, double:true,//是否双层列表定位,默认false + // 对图片加了referer验证的有效,海阔专用,普通规则请勿填写此键值 + 图片来源:'@Referer=http://www.jianpianapp.com@User-Agent=jianpian-version350', + // 类似海阔一级 列表;标题;图片;描述;链接;详情 其中最后一个参数选填 // 如果是双层定位的话,推荐的第2段分号代码也是第2层定位列表代码 推荐:'.col-sm-6;h3&&Text;img&&data-src;.date&&Text;a&&href', -- GitLab