diff --git a/tvboxqq/动漫频道/api/drpy.min.js b/tvboxqq/动漫频道/api/drpy.min.js
index 3679a5b..1816b17 100644
--- a/tvboxqq/动漫频道/api/drpy.min.js
+++ b/tvboxqq/动漫频道/api/drpy.min.js
@@ -1 +1 @@
-import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.47beta15 20230728";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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:"";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.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)}}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);pre();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="";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){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: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("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith(":js")){rule.isVideo=rule.isVideo.replace(":js","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.47beta15 20230728";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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:"";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.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)}}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);pre();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="";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){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: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("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith(":js")){rule.isVideo=rule.isVideo.replace(":js","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/动漫频道/api/drpy2.min.js b/tvboxqq/动漫频道/api/drpy2.min.js
index 22c5034..3cb6838 100644
--- a/tvboxqq/动漫频道/api/drpy2.min.js
+++ b/tvboxqq/动漫频道/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./cheerio.min.js";import"./cheerio.min.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.41beta1 20230328";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://drpy.nokia.press:8028/ocr/drpy/text";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 NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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);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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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);pre();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="";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){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: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"./cheerio.min.js";import"./cheerio.min.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.41beta1 20230328";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://drpy.nokia.press:8028/ocr/drpy/text";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 NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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);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.图片来源){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)}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});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.图片来源){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.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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);pre();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="";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){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: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/tvboxqq/南风/api.json b/tvboxqq/南风/api.json
index 2c35f2a..2ca719e 100644
--- a/tvboxqq/南风/api.json
+++ b/tvboxqq/南风/api.json
@@ -21,7 +21,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 0,
- "ext": "https://www.czzy88.com/"
+ "ext": "https://www.czzy33.com/"
},
{
"key": "csp_Kunyu77",
@@ -119,17 +119,6 @@
"changeable": 1,
"ext": "FbjDcUxPqpfNr0QF4QvE6sExbd4UXJxJXzdL462ywU1XScGa5G6Hj0/c+Ou1GW6rdX6N2XIhnD46QzIsRoZ8bk4fG4OYi0iCaWwRj2ddkacwFqHtLjQhalHqIy0+kpiTv2eOfJYxTshgrxcJ+g3lEHx7ZLC9kB1TCfZUSHwqHB3tt6V/1OhRENIOZNRFfXVBEFd7jQg+J06kjCAF7z1Bt8hRvMjC2VcbQXsEz8MCZDgu06C9/wirWcTa/wWJsfT+Z7fXaDs+dIWMYiwf6td5CWTx6LfL6eTuiMhs2KU5Byw9F+4Y/AHBg4r+LEe+Hm4EM2d8X3ca5zHSj+kjmpXOiGDo4TalFqgTq67eggmthCbV2d131SKc03V+5gruudQQk/Tb9e4lg6SQhA9/5kWOOM/LRmkqIxSt6d0wpu7yKKh65enwKbgasc93/HnGr6W4LuZjf6eYnS2GgRzWRE0fT5lYNmxnWeRnYuLhoZbDqslAfJzg"
},
- {
- "key": "极光",
- "name": "🦄️极光",
- "type": 3,
- "api": "csp_AppSK",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "changeable": 1,
- "ext": "FbjPcVZY48PN/RIZ5UWFrp15cspJGpZFEy1L9qCt0RcDCdqQ/iHaxETP6Le1Hyasa2eX33lg2zI+TmNzCMM4OldJXt6Q2B7ULz5M1CsK3w=="
- },
{
"key": "csp_DiDuan",
"name": "📺低端",
@@ -1003,14 +992,6 @@
}
}
],
- "lives": [
- {
- "name": "live",
- "type": 0,
- "url": "./lives/live.txt",
- "epg": "http://diyp.112114.xyz/?ch={name}&date={date}"
- }
- ],
"doh": [
{
"name": "Google",
diff --git a/tvboxqq/南风/api/drpy.min.js b/tvboxqq/南风/api/drpy.min.js
index b91676b..253feda 100644
--- a/tvboxqq/南风/api/drpy.min.js
+++ b/tvboxqq/南风/api/drpy.min.js
@@ -1 +1 @@
-import cheerio from"./60dc4a51b0ea1c92a083e414819ffaf7.js";import"./193847dcaee77002fb0c82db601af11b.js";import"./9a1e9efac05fb6a68320a14b6e15f5df.js";import 模板 from"./335b5396efcb560db738fdd4277c6f58.js";import{gbkTool}from"./bda7361c12ba263a656119ecce2acf3a.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")}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 VERSION="drpy1 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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 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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd(html,parse,uri){let ret=this.pdfh(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}};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.substr(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,base_url){if(!parse||!parse.trim()){return""}let eleFind=typeof html==="object";let option=undefined;if(eleFind&&parse.startsWith("body&&")){parse=parse.substr(6);if(parse.indexOf("&&")<0){option=parse.trim();parse="*=*"}}if(parse.indexOf("&&")>-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(sp.hasOwnProperty(i)){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];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)&&!SPECIAL_URL.test(result)){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(sp.hasOwnProperty(i)){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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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){}}}}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.图片来源}})}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)}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)}}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.图片来源}})}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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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 _impJQP=false;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}if(_ps===parseTags.jq){_impJQP=true}if(_impJQP){let ttt1=(new Date).getTime();let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]};print(`二级${MY_URL}仅cheerio.load源码耗时:${(new Date).getTime()-ttt1}毫秒`)}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(_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&&_impJQP&&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";let new_map={};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}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{if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}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 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);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);let tt1=(new Date).getTime();if(vodList.length>0){for(let i=0;ix.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${vodList.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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}}}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);pre();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.二级,"二级访问前":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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./60dc4a51b0ea1c92a083e414819ffaf7.js";import"./193847dcaee77002fb0c82db601af11b.js";import"./9a1e9efac05fb6a68320a14b6e15f5df.js";import 模板 from"./335b5396efcb560db738fdd4277c6f58.js";import{gbkTool}from"./bda7361c12ba263a656119ecce2acf3a.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")}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 VERSION="drpy1 3.9.49beta2 20231122";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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 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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd(html,parse,uri){let ret=this.pdfh(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}};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.substr(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,base_url){if(!parse||!parse.trim()){return""}let eleFind=typeof html==="object";let option=undefined;if(eleFind&&parse.startsWith("body&&")){parse=parse.substr(6);if(parse.indexOf("&&")<0){option=parse.trim();parse="*=*"}}if(parse.indexOf("&&")>-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(sp.hasOwnProperty(i)){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];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)&&!SPECIAL_URL.test(result)){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(sp.hasOwnProperty(i)){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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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){}}}}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.图片来源}})}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)}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)}}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.图片来源}})}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"{}"}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);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){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)}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.图片来源){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 _impJQP=false;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}if(_ps===parseTags.jq){_impJQP=true}if(_impJQP){let ttt1=(new Date).getTime();let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]};print(`二级${MY_URL}仅cheerio.load源码耗时:${(new Date).getTime()-ttt1}毫秒`)}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(_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&&_impJQP&&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";let new_map={};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}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{if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}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 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);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);let tt1=(new Date).getTime();if(vodList.length>0){for(let i=0;ix.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${vodList.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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}}}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);pre();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.二级,"二级访问前":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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/南风/api/drpy2.min.js b/tvboxqq/南风/api/drpy2.min.js
index d2f132e..8b8a3ed 100644
--- a/tvboxqq/南风/api/drpy2.min.js
+++ b/tvboxqq/南风/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./60dc4a51b0ea1c92a083e414819ffaf7.js";import"./193847dcaee77002fb0c82db601af11b.js";import 模板 from"./335b5396efcb560db738fdd4277c6f58.js";import{gbkTool}from"./bda7361c12ba263a656119ecce2acf3a.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./60dc4a51b0ea1c92a083e414819ffaf7.js";import"./193847dcaee77002fb0c82db601af11b.js";import 模板 from"./335b5396efcb560db738fdd4277c6f58.js";import{gbkTool}from"./bda7361c12ba263a656119ecce2acf3a.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.49beta2 20231122";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/南风/spider.jar b/tvboxqq/南风/spider.jar
index 39d1473..c552a10 100644
Binary files a/tvboxqq/南风/spider.jar and b/tvboxqq/南风/spider.jar differ
diff --git a/tvboxqq/多多/1/3.json b/tvboxqq/多多/1/3.json
index 4b8875d..ff4f595 100644
--- a/tvboxqq/多多/1/3.json
+++ b/tvboxqq/多多/1/3.json
@@ -2,7 +2,7 @@
{
"storeHouse":
[
-{"sourceName":"大神网络","sourceUrl":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/chendi0207/my-TVBOX/main/tvboxqq/多多/1/cs.txt"},
+{"sourceName":"大神网络(主)","sourceUrl":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/chendi0207/my-TVBOX/main/tvboxqq/多多/1/cs.txt"},
{"sourceName":"优选网络","sourceUrl":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/chendi0207/my-TVBOX/main/tvboxqq/多多/1/wl.txt"},
diff --git a/tvboxqq/多多/api.json b/tvboxqq/多多/api.json
index cd91fe8..c423f5d 100644
--- a/tvboxqq/多多/api.json
+++ b/tvboxqq/多多/api.json
@@ -113,13 +113,13 @@
"ext": "./json/蜗牛.json"
},
{
- "key": "XBPQ_一只蜗",
- "name": "🐮┃牛牛┃影视",
+ "key": "XBPQ_黑狐",
+ "name": "🦝┃黑狐┃影视",
"type": 3,
"api": "csp_XBPQ",
"playerType": 1,
"jar": "./jars/蜗牛有广告.jar",
- "ext": "./json/一只蜗.json"
+ "ext": "./json/黑狐.json"
},
{
"key": "49zy",
@@ -267,6 +267,16 @@
"filterable": 1,
"ext": "./js/侦探.js"
},
+ {
+ "key": "js_007",
+ "name": "🕵┃特工┃影视",
+ "type": 3,
+ "api": "./api/drpy2.min.js",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "./js/007.js"
+ },
{
"key": "csp_beijihu",
"name": "🎪┃极狐┃影视",
@@ -545,6 +555,16 @@
"filterable": 1,
"ext": "./js/hoho.js"
},
+ {
+ "key": "益达影视",
+ "name": "🌝┃益达┃影视",
+ "type": 3,
+ "api": "csp_AppYsV2",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "https://myd666.tv/lvdou_api.php/v1.vod"
+ },
{
"key": "csp_Bili短剧",
"name": "🎦┃短剧┃BiL",
@@ -771,15 +791,15 @@
"ext": "./js/bzys.js"
},
{
- "key": "csp_jbb",
- "name": "🦢┃剧白┃影视",
+ "key": "csp_rbzj",
+ "name": "⏱️┃热播┃之家",
"type": 3,
"api": "csp_XBPQ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"jar": "./jars/蜗牛有广告.jar",
- "ext": "./json/剧白白.json"
+ "ext": "./json/热播之家.json"
},
{
"key": "XBPQ_石榴",
@@ -1198,28 +1218,30 @@
"searchable": 1,
"quickSearch": 0,
"filterable": 1,
- "jar": "./jars/XYQH_JOJO.jar",
+ "jar": "./jars/蜗牛有广告.jar",
"ext": "./json/bili.json"
},
{
- "key": "py_dashan",
+ "key": "csp_Bili_dashan",
"name": "💋┃搭讪┃教程",
"type": 3,
- "api": "py_dashan",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/搭讪.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/搭讪.json"
},
{
- "key": "py_dapei",
+ "key": "csp_Bili__dapei",
"name": "💃┃搭配┃教程",
"type": 3,
- "api": "py_dapei",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/搭配.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/搭配.json"
},
{
"key": "js_B站精简",
@@ -1232,134 +1254,147 @@
"ext": "./js/B站精简.js"
},
{
- "key": "py_meishi",
+ "key": "csp_Bili_meishi",
"name": "🅱️┃美食┃合集",
"type": 3,
- "api": "py_meishi",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/美食合集.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/美食合集.json"
},
{
- "key": "py_youer",
+ "key": "csp_Bili_youer",
"name": "🅱️┃幼儿┃教育",
"type": 3,
- "api": "py_youer",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/youer.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/youer.json"
},
{
- "key": "py_xiaoxue",
+ "key": "csp_Bili_xiaoxue",
"name": "🅱️┃小学┃教育",
"type": 3,
- "api": "py_xiaoxue",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/xiaoxue.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/xiaoxue.json"
},
{
- "key": "py_czxx",
+ "key": "csp_Bili_czxx",
"name": "🅱️┃初中┃教育",
"type": 3,
- "api": "py_czxx",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/chuzhong.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/chuzhong.json"
},
{
- "key": "py_gaozxx",
+ "key": "csp_Bili_gaozxx",
"name": "🅱️┃高中┃教育",
"type": 3,
- "api": "py_gaozxx",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/gaozhong.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/gaozhong.json"
},
{
- "key": "py_zyy",
+ "key": "csp_Bili_zyy",
"name": "🅱️┃中医┃药区",
"type": 3,
- "api": "py_zyy",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/zyy.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/zyy.json"
},
{
- "key": "py_xuqu1",
+ "key": "csp_Bili_xuqu1",
"name": "🅱️┃戏曲┃合集",
"type": 3,
- "api": "py_xuqu1",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/xiqu.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/xiqu.json"
},
{
- "key": "py_TYjs",
+ "key": "csp_Bili_TYjs",
"name": "🅱️┃体育┃健身",
"type": 3,
- "api": "py_TYjs",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/tiyu.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/tiyu.json"
},
{
- "key": "py_xiangsh",
+ "key": "csp_Bili_xiangsh",
"name": "🅱️┃相声┃小品",
"type": 3,
- "api": "py_xiangsh",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/xiaopin.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/xiaopin.json"
},
{
- "key": "py_FBqx",
+ "key": "csp_Bili_FBqx",
"name": "🅱️┃球队┃球星",
"type": 3,
- "api": "py_FBqx",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/qiudui.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/qiudui.json"
},
{
- "key": "py_Meinvw",
+ "key": "csp_Bili_Meinvw",
"name": "🅱️┃美女┃舞蹈",
"type": 3,
- "api": "py_Meinvw",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/meinv.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/meinv.json"
},
{
- "key": "py_yanchh",
+ "key": "csp_Bili_yanchh",
"name": "🅱️┃歌手┃合集",
"type": 3,
- "api": "py_yanchh",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/geshou.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/geshou.json"
},
{
- "key": "py_Nvtuan",
+ "key": "csp_Bili_Nvtuan",
"name": "🅱️┃女团┃热舞",
"type": 3,
- "api": "py_Nvtuan",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/nvtuan.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/nvtuan.json"
},
{
"key": "MV_vod",
@@ -1371,24 +1406,26 @@
"filterable": 1
},
{
- "key": "py_MTV",
- "name": "🅱️┃歌曲┃视频",
+ "key": "csp_Bili_MTV",
+ "name": "🅱️┃歌曲┃演唱",
"type": 3,
- "api": "py_MTV",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/mtv.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/mtv.json"
},
{
- "key": "py_Yinl2",
+ "key": "csp_Bili_Yinl2",
"name": "🅱️┃音悦┃合集",
"type": 3,
- "api": "py_Yinl2",
+ "api": "csp_Bili",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
- "ext": "./py/yinyue.py"
+ "jar": "./jars/蜗牛有广告.jar",
+ "ext": "./json/yinyue.json"
},
{
"key": "js_哔哩直播",
@@ -1615,27 +1652,40 @@
]
},
{
- "name": "CL",
+ "name": "hwk",
"hosts": [
- "magnet"
+ "haiwaikan"
],
"regex": [
- "最 新",
- "直 播",
- "更 新"
+ "10.0099",
+ "10.3333",
+ "16.0599",
+ "8.1748",
+ "10.85"
]
},
{
- "name": "锁你",
+ "name": "yqk",
"hosts": [
- "suonizy"
+ "yqk88"
],
"regex": [
+ "18.4",
"15.1666"
]
},
{
- "name": "抱疯",
+ "name": "sn",
+ "hosts": [
+ "suonizy"
+ ],
+ "regex": [
+ "15.1666",
+ "15.2666"
+ ]
+ },
+ {
+ "name": "bf",
"hosts": [
"bfzy"
],
@@ -1644,30 +1694,38 @@
]
},
{
- "name": "亮子",
+ "name": "xx",
"hosts": [
- "vip.lz",
- "hd.lz",
- "v.cdnlz"
+ "aws.ulivetv.net"
],
"regex": [
- "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY",
- "#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"
+ "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY"
]
},
{
- "name": "飞幡",
+ "name": "lz",
+ "hosts": [
+ "vip.lz",
+ "hd.lz",
+ "v.cdnlz1",
+ "v.cdnlz"
+ ],
+ "regex": [
+ "18.5333"
+ ]
+ },
+ {
+ "name": "非凡",
"hosts": [
"vip.ffzy",
"hd.ffzy"
],
"regex": [
- "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY",
- "#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"
+ "25.0666"
]
},
{
- "name": "伙散",
+ "name": "hs",
"hosts": [
"huoshan.com"
],
@@ -1676,7 +1734,7 @@
]
},
{
- "name": "痘印",
+ "name": "dy",
"hosts": [
"douyin.com"
],
@@ -1685,13 +1743,24 @@
]
},
{
- "name": "农民",
+ "name": "nm",
"hosts": [
"toutiaovod.com"
],
"regex": [
"video/tos/cn"
]
+ },
+ {
+ "name": "cl",
+ "hosts": [
+ "magnet"
+ ],
+ "regex": [
+ "最 新",
+ "直 播",
+ "更 新"
+ ]
}
],
"parses": [
diff --git a/tvboxqq/多多/api/drpy2.min.js b/tvboxqq/多多/api/drpy2.min.js
index c8cfb7d..29bb001 100644
--- a/tvboxqq/多多/api/drpy2.min.js
+++ b/tvboxqq/多多/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/多多/js/007.js b/tvboxqq/多多/js/007.js
new file mode 100644
index 0000000..9f5e96b
--- /dev/null
+++ b/tvboxqq/多多/js/007.js
@@ -0,0 +1,48 @@
+// 搜索数字验证
+muban.首图2.二级.desc = '.data:eq(1)&&Text;;;.data:eq(6)&&Text;.data:eq(5)&&Text';
+muban.首图2.二级.tabs = '.nav-tabs.dpplay&&li';
+var rule = {
+ title:'007影视',
+ 搜索编码:'utf-8',
+ // 搜索编码:'gbk',
+ 模板:'首图2',
+ ali_token:'{{ali_token}}',
+ bili_cookie:'{{bili_cookie}}',
+ host:'https://www.007ts.me',
+ // url:'/show/fyclass--------fypage---.html',
+ url:'/show/fyclassfyfilter.html',
+ filterable:1,//是否启用分类筛选,
+ filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}----fypage---{{fl.year}}',
+ filter:{
+ "1":[{"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":"其它"}]},{"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":"英国"},{"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":"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"}]},{"key":"lang","name":"语言","value":[{"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":"hits"},{"n":"评分","v":"score"}]}],
+ "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":"其他"}]},{"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":"英国"},{"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":"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"}]},{"key":"lang","name":"语言","value":[{"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":"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":"少女"},{"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":"英国"},{"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":"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"}]},{"key":"lang","name":"语言","value":[{"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":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"剧情","value":[{"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":"韩国"},{"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":"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"}]},{"key":"lang","name":"语言","value":[{"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":"hits"},{"n":"评分","v":"score"}]}],
+ "7":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "18":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "19":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "20":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+ },
+ class_parse: '.stui-header__menu li:gt(0):lt(9);a&&Text;a&&href;.*/(.*?).html',
+ lazy:`js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?))[1]);
+ log(html);
+ 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 if(/qq|iqiyi/.test(url)){
+ input={jx:0,url:'https://jx.m3u8.tv/jiexi/?url='+url,parse:1,header:JSON.stringify({'user-agent':'Mozilla/5.0'})}
+ }else{
+ input
+ }`,
+
+ // searchUrl:'/search/**----------fypage---.html',
+ searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50',
+ // searchUrl:'/VSP/V3/SearchContent#{"contentTypes":["VOD"],"searchScopes":["CONTENT_NAME","ACTOR"],"sortType":["RELEVANCE"],"count":8,"offset":0,"SearchKey":"**","subjectID":"10000100000000090000000000001323"};postjson',
+ detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
+ 搜索:'json:list;name;pic;;id',
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/js/B站精简.js b/tvboxqq/多多/js/B站精简.js
index 1566d84..2b3af89 100644
--- a/tvboxqq/多多/js/B站精简.js
+++ b/tvboxqq/多多/js/B站精简.js
@@ -113,7 +113,7 @@ var rule = {
lazy:"js:let ids=input.split('_');let result={};let iurl='https://api.bilibili.com:443/x/player/playurl?avid='+ids[0]+'&cid='+ids[1]+'&qn=116';let html=request(iurl);let jRoot=JSON.parse(html);let jo=jRoot['data'];let ja=jo['durl'];let maxSize=-1;let position=-1;ja.forEach(function(tmpJo,i){if(maxSize0){if(position===-1){position=0}purl=ja[position]['url']}result['parse']=0;result['playUrl']='';result['url']=unescape(purl);result['header']={Referer:'https://live.bilibili.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'};result['contentType']='video/x-flv';input=result",
double:false,
推荐:'*',
- // 一级:'js:let html=request(input);let msg=JSON.parse(html).message;function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","").replace(""","\'");log("名称替换👉"+title)};return title}if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim();title=title_rep(title);title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=vod["duration"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ // 一级:'js:let html=request(input);let msg=JSON.parse(html).message;function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","").replace(""","\'");log("名称替换👉"+title)};return title}if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim();title=title_rep(title);title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=vod["duration"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
一级:'js:let html=request(input);function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","");log("名称替换👉"+title)};return title}function turnDHM(duration){let min=duration.split(":")[0];let sec=duration.split(":")[1];if(min==0){return sec+"秒"}else if(0=1440){let d=min/60/24;d=(d+"").split(".")[0];let h=min/60%24;h=(h+"").split(".")[0];let m=min%60;let dhm="";if(d>0){dhm=d+"天"}if(h>=1){dhm=dhm+h+"小时"}if(m>0){dhm=dhm+m+"分"}return dhm}return null}let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim().replace(""","\'");title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=turnDHM(vod["duration"]);videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos',
二级:'js:let html=request(input);let jo=JSON.parse(html).data;let aid=jo["aid"];let title=jo["title"].replace(\'\',"").replace("","");let pic=jo["pic"];let desc=jo["desc"];let year=jo["pubdate"];let dire=jo["owner"]["name"];let typeName=jo["tname"];let remark=jo["duration"];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:year,vod_area:"bilidanmu",vod_remarks:remark,vod_tags:"mv",vod_director:dire,vod_content:desc};let ja=jo["pages"];let playurls=[];ja.forEach(function(tmpJo){let cid=tmpJo["cid"];let part=tmpJo["part"].replace("#","﹟").replace("$","﹩");playurls.push(part+"$"+aid+"_"+cid)});let playUrl=playurls.join("#");vod["vod_play_from"]="B站";vod["vod_play_url"]=playUrl;VOD=vod;',
搜索:'*',
diff --git a/tvboxqq/多多/js/哔哩直播.js b/tvboxqq/多多/js/哔哩直播.js
index 7f612bc..ccdfc48 100644
--- a/tvboxqq/多多/js/哔哩直播.js
+++ b/tvboxqq/多多/js/哔哩直播.js
@@ -7,7 +7,7 @@
* https://t.me/pipixiawerun
* vod_area:'bililivedanmu'
* Cookie设置
- * Cookie获取方法 https://mirror.ghproxy.com/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
+ * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
@@ -58,7 +58,7 @@ var rule = {
"User-Agent":"PC_UA",
"Referer": "https://www.bilibili.com",
// "Cookie":"$bili_cookie"
- "Cookie":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
+ "Cookie":"https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
},
timeout:5000,
limit:8,
@@ -101,6 +101,6 @@ var rule = {
// 二级:'*',
二级:"js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;",
// 搜索:'json:data.result.live_room;title;cover;uname;roomid',
- 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
// 预处理:'if(rule_fetch_params.headers.Cookie.startsWith("http")){rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);setItem(RULE_CK,cookie)};log(rule_fetch_params.headers.Cookie)',
}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/chuzhong.json b/tvboxqq/多多/json/chuzhong.json
new file mode 100644
index 0000000..e29e90d
--- /dev/null
+++ b/tvboxqq/多多/json/chuzhong.json
@@ -0,0 +1,1944 @@
+{
+ "classes": [{
+ "type_name": "7年级语文",
+ "type_id": "7年级语文"
+ }, {
+ "type_name": "7年级数学",
+ "type_id": "7年级数学"
+ }, {
+ "type_name": "7年级英语",
+ "type_id": "7年级英语"
+ }, {
+ "type_name": "7年级历史",
+ "type_id": "7年级历史"
+ }, {
+ "type_name": "7年级地理",
+ "type_id": "7年级地理"
+ }, {
+ "type_name": "7年级生物",
+ "type_id": "7年级生物"
+ }, {
+ "type_name": "8年级语文",
+ "type_id": "8年级语文"
+ }, {
+ "type_name": "8年级数学",
+ "type_id": "8年级数学"
+ }, {
+ "type_name": "8年级英语",
+ "type_id": "8年级英语"
+ }, {
+ "type_name": "8年级历史",
+ "type_id": "8年级历史"
+ }, {
+ "type_name": "8年级地理",
+ "type_id": "8年级地理"
+ }, {
+ "type_name": "8年级生物",
+ "type_id": "8年级生物"
+ }, {
+ "type_name": "8年级物理",
+ "type_id": "8年级物理"
+ }, {
+ "type_name": "9年级语文",
+ "type_id": "9年级语文"
+ }, {
+ "type_name": "9年级数学",
+ "type_id": "9年级数学"
+ }, {
+ "type_name": "9年级英语",
+ "type_id": "9年级英语"
+ }, {
+ "type_name": "9年级历史",
+ "type_id": "9年级历史"
+ }, {
+ "type_name": "9年级物理",
+ "type_id": "9年级物理"
+ }, {
+ "type_name": "9年级化学",
+ "type_id": "9年级化学"
+ } ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+ "7年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级物理"
+ },{
+ "n": "教科版",
+ "v": "教科版7年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级物理"
+ },{
+ "n": "教科版",
+ "v": "教科版8年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级物理"
+ },{
+ "n": "教科版",
+ "v": "教科版9年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/gaozhong.json b/tvboxqq/多多/json/gaozhong.json
new file mode 100644
index 0000000..316329f
--- /dev/null
+++ b/tvboxqq/多多/json/gaozhong.json
@@ -0,0 +1,2682 @@
+{
+ "classes": [{
+ "type_name": "高一语文",
+ "type_id": "高一语文"
+ }, {
+ "type_name": "高一数学",
+ "type_id": "高一数学"
+ }, {
+ "type_name": "高一英语",
+ "type_id": "高一英语"
+ }, {
+ "type_name": "高一历史",
+ "type_id": "高一历史"
+ }, {
+ "type_name": "高一地理",
+ "type_id": "高一地理"
+ }, {
+ "type_name": "高一生物",
+ "type_id": "高一生物"
+ }, {
+ "type_name": "高一思想政治",
+ "type_id": "高一思想政治"
+ }, {
+ "type_name": "高一物理",
+ "type_id": "高一物理"
+ }, {
+ "type_name": "高一化学",
+ "type_id": "高一化学"
+ }, {
+ "type_name": "高二语文",
+ "type_id": "高二语文"
+ }, {
+ "type_name": "高二数学",
+ "type_id": "高二数学"
+ }, {
+ "type_name": "高二英语",
+ "type_id": "高二英语"
+ }, {
+ "type_name": "高二历史",
+ "type_id": "高二历史"
+ }, {
+ "type_name": "高二地理",
+ "type_id": "高二地理"
+ }, {
+ "type_name": "高二生物",
+ "type_id": "高二生物"
+ }, {
+ "type_name": "高二思想政治",
+ "type_id": "高二思想政治"
+ }, {
+ "type_name": "高二物理",
+ "type_id": "高二物理"
+ }, {
+ "type_name": "高二化学",
+ "type_id": "高二化学"
+ }, {
+ "type_name": "高三语文",
+ "type_id": "高三语文"
+ }, {
+ "type_name": "高三数学",
+ "type_id": "高三数学"
+ }, {
+ "type_name": "高三英语",
+ "type_id": "高三英语"
+ }, {
+ "type_name": "高三历史",
+ "type_id": "高三历史"
+ }, {
+ "type_name": "高三地理",
+ "type_id": "高三地理"
+ }, {
+ "type_name": "高三生物",
+ "type_id": "高三生物"
+ }, {
+ "type_name": "高三思想政治",
+ "type_id": "高三思想政治"
+ }, {
+ "type_name": "高三物理",
+ "type_id": "高三物理"
+ }, {
+ "type_name": "高三化学",
+ "type_id": "高三化学"
+ }, {
+ "type_name": "高中信息技术",
+ "type_id": "高中信息技术"
+ }, {
+ "type_name": "高中信息技术",
+ "type_id": "高中信息技术"
+ }],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+ "1年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "1年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "1年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "7年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版7年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版7年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版7年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版7年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "8年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版8年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版8年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版8年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版8年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "9年级历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版9年级历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版9年级历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版9年级历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版9年级历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一英语"
+ }, {
+ "n": "外研版",
+ "v": "外研版高一英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一物理"
+ }, {
+ "n": "教科版",
+ "v": "教科版高一物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高一地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高一地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高一地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高一地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高一地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二物理"
+ }, {
+ "n": "教科版",
+ "v": "教科版高二物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高二地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高二地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高二地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高二地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高二地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三物理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三物理"
+ }, {
+ "n": "教科版",
+ "v": "教科版高三物理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三物理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三物理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三物理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三化学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三化学"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三化学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三化学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三化学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三历史": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三历史"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三历史"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三历史"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三历史"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三生物": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三生物"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三生物"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三生物"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三生物"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三思想政治": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三思想政治"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三思想政治"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三思想政治"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三思想政治"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "高三地理": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版高三地理"
+ }, {
+ "n": "人教版",
+ "v": "人教版高三地理"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版高三地理"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版高三地理"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/geshou.json b/tvboxqq/多多/json/geshou.json
new file mode 100644
index 0000000..cd61c74
--- /dev/null
+++ b/tvboxqq/多多/json/geshou.json
@@ -0,0 +1,1111 @@
+{
+ "classes": [
+{"type_name":"A阿杜","type_id":"阿杜MV"},
+ {
+ "type_name": "A阿黛尔",
+ "type_id": "阿黛尔MV"
+ },
+ {
+ "type_name": "Blackpink",
+ "type_id": "blackpinkMV"
+ },
+ {
+ "type_name": "Beyond",
+ "type_id": "beyondMV"
+ },
+ {
+ "type_name": "B坂井泉水",
+ "type_id": "坂井泉水MV"
+ },
+ {
+ "type_name": "B宝丽金",
+ "type_id": "宝丽金MV"
+ },
+ {
+ "type_name": "B布兰妮",
+ "type_id": "布兰妮MV"
+ },
+ {
+ "type_name": "C崔健",
+ "type_id": "催件MV"
+ },
+ {
+ "type_name": "C蔡依林",
+ "type_id": "蔡依林MV"
+ },
+ {
+ "type_name": "C草蜢",
+ "type_id": "草蜢MV"
+ },
+ {
+ "type_name": "Coldplay",
+ "type_id": "coldplayMV"
+ },
+ {
+ "type_name": "C陈慧娴",
+ "type_id": "陈慧娴MV"
+ },
+ {
+ "type_name": "C陈百强",
+ "type_id": "陈百强MV"
+ },
+ {
+ "type_name": "C陈淑桦",
+ "type_id": "陈淑桦MV"
+ },
+ {
+ "type_name": "C陈瑞",
+ "type_id": "陈瑞MV"
+ },
+
+ {
+ "type_name": "C陈慧琳",
+ "type_id": "陈慧琳MV"
+ },
+ {
+ "type_name": "D邓丽君",
+ "type_id": "邓丽君MV"
+ },
+ {
+ "type_name": "D邓紫棋",
+ "type_id": "邓紫棋MV"
+ },
+ {
+ "type_name": "D刀郎",
+ "type_id": "刀郎MV"
+ },
+ {
+ "type_name": "D达明一派",
+ "type_id": "刘以达MV"
+ },
+ {
+ "type_name": "F费玉清",
+ "type_id": "费玉清MV"
+ },
+ {
+ "type_name": "F飞图",
+ "type_id": "飞图MV"
+ },
+ {
+ "type_name": "G谷村新司",
+ "type_id": "谷村新司MV"
+ },
+ {
+ "type_name": "G郭富城",
+ "type_id": "郭富城MV"
+ },
+ {
+ "type_name": "G关淑怡",
+ "type_id": "关淑怡MV"
+ },
+ {
+ "type_name": "H黄凯芹",
+ "type_id": "黄凯芹MV"
+ },
+ {
+ "type_name": "J降央卓玛",
+ "type_id": "降央卓玛MV"
+ },
+
+ {
+ "type_name": "J江慧",
+ "type_id": "江慧MV"
+ },
+ {
+ "type_name": "J吉永小百合",
+ "type_id": "吉永小百合MV"
+ },
+ {
+ "type_name": "J金庸",
+ "type_id": "金庸影视MV"
+ },
+ {
+ "type_name": "K柯以敏",
+ "type_id": "柯以敏MV"
+ },
+ {
+ "type_name": "K邝美云",
+ "type_id": "邝美云MV"
+ },
+ {
+ "type_name": "L刘德华",
+ "type_id": "刘德华MV"
+ },
+ {
+ "type_name": "Lady Gaga",
+ "type_id": "Lady GagaMV"
+ },
+ {
+ "type_name": "L龙飘飘",
+ "type_id": "龙飘飘MV"
+ },
+ {
+ "type_name": "L李贞贤",
+ "type_id": "李贞贤MV"
+ },
+ {
+ "type_name": "L李秀英",
+ "type_id": "李秀英MV"
+ },
+ {
+ "type_name": "L罗大佑",
+ "type_id": "罗大佑MV"
+ },
+ {
+ "type_name": "L林志炫",
+ "type_id": "林志炫MV"
+ },
+ {
+ "type_name": "L林忆莲",
+ "type_id": "林忆莲MV"
+ },
+ {
+ "type_name": "L李知恩",
+ "type_id": "李知恩MV"
+ },
+ {
+ "type_name": "L梁静茹",
+ "type_id": "梁静茹MV"
+ },
+ {
+ "type_name": "L冷漠",
+ "type_id": "冷漠MV"
+ },
+ {
+ "type_name": "L李克勤",
+ "type_id": "李克勤MV"
+ },
+ {
+ "type_name": "L林子祥",
+ "type_id": "林子祥MV"
+ },
+ {
+ "type_name": "L黎明",
+ "type_id": "黎明MV"
+ },
+ {
+ "type_name": "L刘若英",
+ "type_id": "刘若英MV"
+ },
+ {
+ "type_name": "M莫文蔚",
+ "type_id": "莫文蔚MV"
+ },
+ {
+ "type_name": "M孟庭苇",
+ "type_id": "孟庭苇MV"
+ },
+ {
+ "type_name": "M麦当娜",
+ "type_id": "麦当娜MV"
+ },
+
+ {
+ "type_name": "M迈克杰克逊",
+ "type_id": "迈克杰克逊MV"
+ },
+ {
+ "type_name": "N雅尼紫禁城",
+ "type_id": "雅尼紫禁城MV"
+ },
+ {
+ "type_name": "P潘越云",
+ "type_id": "潘越云MV"
+ },
+ {
+ "type_name": "P潘美辰",
+ "type_id": "潘美辰MV"
+ },
+ {
+ "type_name": "Q齐秦",
+ "type_id": "齐秦MV"
+ },
+
+ {
+ "type_name": "R任贤齐",
+ "type_id": "任贤齐MV"
+ },
+ {
+ "type_name": "S苏慧伦",
+ "type_id": "苏慧伦MV"
+ },
+ {
+ "type_name": "T童安格",
+ "type_id": "童安格MV"
+ },
+ {
+ "type_name": "TFBOYS",
+ "type_id": "TFBOYSMV"
+ },
+ {
+ "type_name": "T太极乐队",
+ "type_id": "太极乐队MV"
+ },
+ {
+ "type_name": "T唐朝摇滚",
+ "type_id": "唐朝摇滚MV"
+ },
+
+ {
+ "type_name": "T谭咏麟",
+ "type_id": "谭咏麟MV"
+ },
+
+ {
+ "type_name": "W王琪",
+ "type_id": "王琪MV"
+ },
+ {
+ "type_name": "W伍珂玥",
+ "type_id": "伍珂玥MV"
+ },
+ {
+ "type_name": "W王杰",
+ "type_id": "王杰MV"
+ },
+ {
+ "type_name": "W伍佰",
+ "type_id": "伍佰MV"
+ },
+ {
+ "type_name": "W温兆伦",
+ "type_id": "温兆伦MV"
+ },
+ {
+ "type_name": "W王菲",
+ "type_id": "王菲MV"
+ },
+ {
+ "type_name": "X徐小凤",
+ "type_id": "徐小凤MV"
+ },
+ {
+ "type_name": "X谢琳",
+ "type_id": "谢琳MV"
+ },
+ {
+ "type_name": "X席琳迪翁",
+ "type_id": "席琳迪翁MV"
+ },
+ {
+ "type_name": "X许嵩",
+ "type_id": "黄许嵩MV"
+ },
+ {
+ "type_name": "X许美静",
+ "type_id": "许美静MV"
+ },
+ {
+ "type_name": "X许冠杰",
+ "type_id": "许冠杰MV"
+ },
+ {
+ "type_name": "X熊天平",
+ "type_id": "熊天平MV"
+ },
+ {
+ "type_name": "X小虎队",
+ "type_id": "小虎队MV"
+ },
+ {
+ "type_name": "X许巍",
+ "type_id": "许巍MV"
+ },
+ {
+ "type_name": "Y叶启田",
+ "type_id": "叶启田MV"
+ },
+ {
+ "type_name": "Y杨钰莹",
+ "type_id": "杨钰莹MV"
+ },
+ {
+ "type_name": "Y叶玉卿",
+ "type_id": "叶玉卿MV"
+ },
+ {
+ "type_name": "Y杨千嬅",
+ "type_id": "杨千嬅MV"
+ },
+ {
+ "type_name": "Y怡正宵",
+ "type_id": "怡正宵MV"
+ },
+ {
+ "type_name": "Z左麟右李",
+ "type_id": "左麟右李MV"
+ },
+ {
+ "type_name": "Z张楚",
+ "type_id": "张楚MV"
+ },
+ {
+ "type_name": "Z张真",
+ "type_id": "张真MV"
+ },
+ {
+ "type_name": "Z张震岳",
+ "type_id": "张震岳MV"
+ },
+ {
+ "type_name": "Z赵传",
+ "type_id": "赵传MV"
+ },
+ {
+ "type_name": "Z周华健",
+ "type_id": "周华健MV"
+ },
+ {
+ "type_name": "Z周启生",
+ "type_id": "周启生MV"
+ },
+ {
+ "type_name": "Z张信哲",
+ "type_id": "张信哲MV"
+ },
+ {
+ "type_name": "Z张也",
+ "type_id": "张也MV"
+ },
+
+ {
+ "type_name": "Z周慧敏",
+ "type_id": "周慧敏MV"
+ },
+
+ {
+ "type_name": "Z张碧晨",
+ "type_id": "张碧晨MV"
+ },
+ {
+ "type_name": "Z中岛美雪",
+ "type_id": "中岛美雪MV"
+ },
+ {
+ "type_name": "Z张学友",
+ "type_id": "张学友MV"
+ },
+ {
+ "type_name": "Z猪哥亮",
+ "type_id": "猪哥亮MV"
+ },
+ {
+ "type_name": "Z周杰伦",
+ "type_id": "周杰伦MV"
+ },
+ {
+ "type_name": "Z周深",
+ "type_id": "周深MV"
+ },
+ {
+ "type_name": "Z卓依婷",
+ "type_id": "卓依婷MV"
+ },
+ {
+ "type_name": "Z张蔷",
+ "type_id": "张蔷MV"
+ },
+ {
+ "type_name": "Z张帝",
+ "type_id": "张帝MV"
+ },
+ {
+ "type_name": "Z张国荣",
+ "type_id": "张国荣MV"
+ },
+ {
+ "type_name": "Z周传雄",
+ "type_id": "周传雄MV"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+
+ "MV": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "MV"
+ },
+ {
+ "n": "周杰伦",
+ "v": "周杰伦"
+ },
+ {
+ "n": "陈奕迅",
+ "v": "陈奕迅"
+ },
+ {
+ "n": "Beyond",
+ "v": "Beyond"
+ },
+ {
+ "n": "刘德华",
+ "v": "刘德华"
+ },
+ {
+ "n": "郭富城",
+ "v": "郭富城"
+ },
+ {
+ "n": "张学友",
+ "v": "张学友"
+ },
+ {
+ "n": "黎明",
+ "v": "黎明"
+ },
+ {
+ "n": "李宗盛",
+ "v": "李宗盛"
+ },
+ {
+ "n": "邓丽君",
+ "v": "邓丽君"
+ },
+ {
+ "n": "朴树",
+ "v": "朴树"
+ },
+ {
+ "n": "林子祥",
+ "v": "林子祥"
+ },
+ {
+ "n": "任贤齐",
+ "v": "任贤齐"
+ },
+ {
+ "n": "张信哲",
+ "v": "张信哲"
+ },
+ {
+ "n": "孙楠",
+ "v": "孙楠"
+ },
+ {
+ "n": "张宇",
+ "v": "张宇"
+ },
+ {
+ "n": "周华健",
+ "v": "周华健"
+ },
+ {
+ "n": "蔡依林",
+ "v": "蔡依林"
+ },
+ {
+ "n": "薛之谦",
+ "v": "薛之谦"
+ },
+ {
+ "n": "洛天依",
+ "v": "洛天依"
+ },
+ {
+ "n": "初音未来",
+ "v": "初音未来"
+ },
+ {
+ "n": "许嵩",
+ "v": "许嵩"
+ },
+ {
+ "n": "戴佩妮",
+ "v": "戴佩妮"
+ },
+ {
+ "n": "邓紫棋",
+ "v": "邓紫棋"
+ },
+ {
+ "n": "张韶涵",
+ "v": "张韶涵"
+ },
+ {
+ "n": "蔡健雅",
+ "v": "蔡健雅"
+ },
+ {
+ "n": "莫文蔚",
+ "v": "莫文蔚"
+ },
+ {
+ "n": "刘若英",
+ "v": "刘若英"
+ },
+ {
+ "n": "周深",
+ "v": "周深"
+ },
+ {
+ "n": "毛不易",
+ "v": "毛不易"
+ },
+ {
+ "n": "汪苏泷",
+ "v": "汪苏泷"
+ },
+ {
+ "n": "李宇春",
+ "v": "李宇春"
+ },
+ {
+ "n": "徐佳莹",
+ "v": "徐佳莹"
+ },
+ {
+ "n": "杨宗纬",
+ "v": "杨宗纬"
+ },
+ {
+ "n": "胡彦斌",
+ "v": "胡彦斌"
+ },
+ {
+ "n": "杨千嬅",
+ "v": "杨千嬅"
+ },
+ {
+ "n": "张靓颖",
+ "v": "张靓颖"
+ },
+ {
+ "n": "李荣浩",
+ "v": "李荣浩"
+ },
+ {
+ "n": "杨丞琳",
+ "v": "杨丞琳"
+ },
+ {
+ "n": "林志炫",
+ "v": "林志炫"
+ },
+ {
+ "n": "陶喆",
+ "v": "陶喆"
+ },
+ {
+ "n": "胡夏",
+ "v": "胡夏"
+ },
+ {
+ "n": "李玉刚",
+ "v": "李玉刚"
+ },
+ {
+ "n": "弦子",
+ "v": "弦子"
+ },
+ {
+ "n": "陈小春",
+ "v": "陈小春"
+ },
+ {
+ "n": "萧亚轩",
+ "v": "萧亚轩"
+ },
+ {
+ "n": "鹿晗",
+ "v": "鹿晗"
+ },
+ {
+ "n": "纵贯线",
+ "v": "纵贯线"
+ },
+ {
+ "n": "许巍",
+ "v": "许巍"
+ },
+ {
+ "n": "林俊杰",
+ "v": "林俊杰"
+ },
+ {
+ "n": "赵雷",
+ "v": "赵雷"
+ },
+ {
+ "n": "谭咏麟",
+ "v": "谭咏麟"
+ },
+ {
+ "n": "凤凰传奇",
+ "v": "凤凰传奇"
+ },
+ {
+ "n": "容祖儿",
+ "v": "容祖儿"
+ },
+ {
+ "n": "周传雄",
+ "v": "周传雄"
+ },
+ {
+ "n": "SHE",
+ "v": "SHE"
+ },
+ {
+ "n": "苏打绿",
+ "v": "苏打绿"
+ },
+ {
+ "n": "五月天",
+ "v": "五月天"
+ },
+ {
+ "n": "张国荣",
+ "v": "张国荣"
+ },
+ {
+ "n": "梅艳芳",
+ "v": "梅艳芳"
+ },
+ {
+ "n": "孙燕姿",
+ "v": "孙燕姿"
+ },
+ {
+ "n": "李健",
+ "v": "李健"
+ },
+ {
+ "n": "华晨宇",
+ "v": "华晨宇"
+ },
+ {
+ "n": "袁娅维",
+ "v": "袁娅维"
+ },
+ {
+ "n": "大张伟",
+ "v": "大张伟"
+ },
+ {
+ "n": "TFBOYS",
+ "v": "TFBOYS"
+ },
+ {
+ "n": "王俊凯",
+ "v": "王俊凯"
+ },
+ {
+ "n": "易烊千玺",
+ "v": "易烊千玺"
+ },
+ {
+ "n": "王源",
+ "v": "王源"
+ },
+ {
+ "n": "田馥甄",
+ "v": "田馥甄"
+ },
+ {
+ "n": "小虎队",
+ "v": "小虎队"
+ },
+ {
+ "n": "张杰",
+ "v": "张杰"
+ },
+ {
+ "n": "王菲",
+ "v": "王菲"
+ },
+ {
+ "n": "伍佰",
+ "v": "伍佰"
+ },
+ {
+ "n": "刀郎",
+ "v": "刀郎"
+ },
+ {
+ "n": "草蜢",
+ "v": "草蜢"
+ },
+ {
+ "n": "潘玮柏",
+ "v": "潘玮柏"
+ },
+ {
+ "n": "梁静茹",
+ "v": "梁静茹"
+ },
+ {
+ "n": "林宥嘉",
+ "v": "林宥嘉"
+ },
+ {
+ "n": "蔡徐坤",
+ "v": "蔡徐坤"
+ },
+ {
+ "n": "周慧敏",
+ "v": "周慧敏"
+ },
+ {
+ "n": "李圣杰",
+ "v": "李圣杰"
+ },
+ {
+ "n": "张惠妹",
+ "v": "张惠妹"
+ },
+ {
+ "n": "萧敬腾",
+ "v": "萧敬腾"
+ },
+ {
+ "n": "周笔畅",
+ "v": "周笔畅"
+ },
+ {
+ "n": "焦迈奇",
+ "v": "焦迈奇"
+ },
+ {
+ "n": "尤长靖",
+ "v": "尤长靖"
+ },
+ {
+ "n": "郑中基",
+ "v": "郑中基"
+ },
+ {
+ "n": "谭维维",
+ "v": "谭维维"
+ },
+ {
+ "n": "陈慧娴",
+ "v": "陈慧娴"
+ },
+ {
+ "n": "张艺兴",
+ "v": "张艺兴"
+ },
+ {
+ "n": "王嘉尔",
+ "v": "王嘉尔"
+ },
+ {
+ "n": "刘宪华",
+ "v": "刘宪华"
+ },
+ {
+ "n": "张敬轩",
+ "v": "张敬轩"
+ },
+ {
+ "n": "李克勤",
+ "v": "李克勤"
+ },
+ {
+ "n": "阿杜",
+ "v": "阿杜"
+ },
+ {
+ "n": "郭静",
+ "v": "郭静"
+ },
+ {
+ "n": "崔健",
+ "v": "崔健"
+ },
+ {
+ "n": "庾澄庆",
+ "v": "庾澄庆"
+ },
+ {
+ "n": "汪峰",
+ "v": "汪峰"
+ },
+ {
+ "n": "那英",
+ "v": "那英"
+ },
+ {
+ "n": "杨坤",
+ "v": "杨坤"
+ },
+ {
+ "n": "叶倩文",
+ "v": "叶倩文"
+ },
+ {
+ "n": "王心凌",
+ "v": "王心凌"
+ },
+ {
+ "n": "张震岳",
+ "v": "张震岳"
+ },
+ {
+ "n": "韩红",
+ "v": "韩红"
+ },
+ {
+ "n": "齐秦",
+ "v": "齐秦"
+ },
+ {
+ "n": "张雨生",
+ "v": "张雨生"
+ },
+ {
+ "n": "黄品源",
+ "v": "黄品源"
+ },
+ {
+ "n": "林忆莲",
+ "v": "林忆莲"
+ },
+ {
+ "n": "丁当",
+ "v": "丁当"
+ },
+ {
+ "n": "郑智化",
+ "v": "郑智化"
+ },
+ {
+ "n": "李玟",
+ "v": "李玟"
+ },
+ {
+ "n": "谢霆锋",
+ "v": "谢霆锋"
+ },
+ {
+ "n": "黄小琥",
+ "v": "黄小琥"
+ },
+ {
+ "n": "徐小凤",
+ "v": "徐小凤"
+ },
+ {
+ "n": "任嘉伦",
+ "v": "任嘉伦"
+ },
+ {
+ "n": "卓依婷",
+ "v": "卓依婷"
+ },
+ {
+ "n": "逃跑计划",
+ "v": "逃跑计划"
+ },
+ {
+ "n": "青鸟飞鱼",
+ "v": "青鸟飞鱼"
+ },
+ {
+ "n": "飞儿乐队",
+ "v": "飞儿乐队"
+ },
+ {
+ "n": "花儿乐队",
+ "v": "花儿乐队"
+ },
+ {
+ "n": "南拳妈妈",
+ "v": "南拳妈妈"
+ },
+ {
+ "n": "水木年华",
+ "v": "水木年华"
+ },
+ {
+ "n": "动力火车",
+ "v": "动力火车"
+ },
+ {
+ "n": "筷子兄弟",
+ "v": "筷子兄弟"
+ },
+ {
+ "n": "鹿先森乐队",
+ "v": "鹿先森乐队"
+ },
+ {
+ "n": "信乐队",
+ "v": "信乐队"
+ },
+ {
+ "n": "旅行团乐队",
+ "v": "旅行团乐队"
+ },
+ {
+ "n": "By2",
+ "v": "By2"
+ },
+ {
+ "n": "郁可唯",
+ "v": "郁可唯"
+ },
+ {
+ "n": "宋亚森",
+ "v": "宋亚森"
+ },
+ {
+ "n": "费玉清",
+ "v": "费玉清"
+ },
+ {
+ "n": "费翔",
+ "v": "费翔"
+ },
+ {
+ "n": "金志文",
+ "v": "金志文"
+ },
+ {
+ "n": "黄家强",
+ "v": "黄家强"
+ },
+ {
+ "n": "方大同",
+ "v": "方大同"
+ },
+ {
+ "n": "吴克群",
+ "v": "吴克群"
+ },
+ {
+ "n": "罗大佑",
+ "v": "罗大佑"
+ },
+ {
+ "n": "光良",
+ "v": "光良"
+ },
+ {
+ "n": "田震",
+ "v": "田震"
+ },
+ {
+ "n": "凤飞飞",
+ "v": "凤飞飞"
+ },
+ {
+ "n": "谭晶",
+ "v": "谭晶"
+ },
+ {
+ "n": "王杰",
+ "v": "王杰"
+ },
+ {
+ "n": "羽泉",
+ "v": "羽泉"
+ },
+ {
+ "n": "金池",
+ "v": "金池"
+ },
+ {
+ "n": "屠洪刚",
+ "v": "屠洪刚"
+ },
+ {
+ "n": "戴荃",
+ "v": "戴荃"
+ },
+ {
+ "n": "郭采洁",
+ "v": "郭采洁"
+ },
+ {
+ "n": "罗志祥",
+ "v": "罗志祥"
+ },
+ {
+ "n": "王力宏",
+ "v": "王力宏"
+ },
+ {
+ "n": "林肯公园",
+ "v": "林肯公园"
+ },
+ {
+ "n": "迈克尔杰克逊",
+ "v": "迈克尔杰克逊"
+ },
+ {
+ "n": "泰勒·斯威夫特",
+ "v": "泰勒·斯威夫特"
+ },
+ {
+ "n": "阿黛尔",
+ "v": "阿黛尔"
+ },
+ {
+ "n": "BIGBANG",
+ "v": "BIGBANG"
+ },
+ {
+ "n": "LadyGaga",
+ "v": "LadyGaga"
+ },
+ {
+ "n": "贾斯丁比伯",
+ "v": "贾斯丁比伯"
+ },
+ {
+ "n": "中岛美雪",
+ "v": "中岛美雪"
+ },
+ {
+ "n": "仓木麻衣",
+ "v": "仓木麻衣"
+ },
+ {
+ "n": "后街男孩",
+ "v": "后街男孩"
+ },
+ {
+ "n": "布兰妮",
+ "v": "布兰妮"
+ },
+ {
+ "n": "夜愿乐队",
+ "v": "夜愿乐队"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/meinv.json b/tvboxqq/多多/json/meinv.json
new file mode 100644
index 0000000..ff3332a
--- /dev/null
+++ b/tvboxqq/多多/json/meinv.json
@@ -0,0 +1,47 @@
+{
+ "classes": [
+{"type_name": "抖音合集","type_id":"抖音合集"},
+{"type_name": "快手美女合集","type_id":"快手美女合集"},
+{"type_name": "4K小姐姐","type_id": "4K小姐姐"},
+{"type_name": "小姐姐","type_id":"小姐姐超清"},
+{"type_name": "黑丝","type_id":"黑丝"},
+{"type_name": "超短裤","type_id":"超短裤"},
+{"type_name": "超短裙","type_id":"超短裙"},
+{"type_name": "牛仔裤","type_id":"牛仔裤"},
+{"type_name": "选美","type_id":"选美"},
+{"type_name": "模特","type_id":"模特"},
+{"type_name": "泳装秀","type_id":"泳装秀"},
+{"type_name": "内衣秀","type_id":"内衣秀"},
+{"type_name": "练习室","type_id":"练习室"},
+{"type_name": "美女舞蹈","type_id":"美女舞蹈"},
+{"type_name": "舞蹈综合","type_id":"舞蹈综合"},
+{"type_name": "舞蹈教程","type_id":"舞蹈教程"},
+{"type_name": "古风舞蹈","type_id":"古风舞蹈"},
+{"type_name": "印度歌舞","type_id":"印度歌舞"},
+{"type_name": "明星舞蹈","type_id":"明星舞蹈"},
+{"type_name": "韩舞","type_id":"韩舞"},
+{"type_name": "古典舞","type_id":"古典舞"},
+{"type_name": "翻跳","type_id":"翻跳"},
+{"type_name": "中国舞","type_id":"中国舞"},
+{"type_name": "古风舞","type_id":"古风舞"},
+{"type_name": "现代舞","type_id":"现代舞"},
+{"type_name": "爵士舞","type_id":"爵士舞"},
+{"type_name": "芭蕾","type_id":"芭蕾"},
+{"type_name": "宅舞","type_id": "宅舞"},
+{"type_name": "街舞","type_id": "街舞"},
+{"type_name": "编舞","type_id":"编舞"},
+{"type_name": "POPPING","type_id":"POPPING"},
+{"type_name": "桃源恋歌","type_id":"桃源恋歌"},
+{"type_name": "新宝岛","type_id":"新宝岛"},
+{"type_name": "拉丁舞","type_id":"拉丁舞"},
+{"type_name": "蹦迪","type_id":"蹦迪"},
+{"type_name": "民族舞","type_id":"民族舞"},
+{"type_name": "抖肩舞","type_id":"抖肩舞"},
+{"type_name": "齐舞","type_id":"齐舞"},
+{"type_name": "机械舞","type_id":"机械舞"},
+{"type_name": "广场舞","type_id":"广场舞"},
+{"type_name": "极乐净土","type_id":"极乐净土"},
+{"type_name": "BDF","type_id":"BDF"}
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/mtv.json b/tvboxqq/多多/json/mtv.json
new file mode 100644
index 0000000..3b63b93
--- /dev/null
+++ b/tvboxqq/多多/json/mtv.json
@@ -0,0 +1,925 @@
+{
+ "classes": [
+ {
+ "type_name": "演唱会",
+ "type_id": "演唱会"
+ },
+{"type_name":"A阿杜","type_id":"阿杜演唱会4K"},
+ {
+ "type_name": "A阿黛尔",
+ "type_id": "阿黛尔演唱会"
+ },
+ {
+ "type_name": "Blackpink",
+ "type_id": "blackpink演唱会"
+ },
+ {
+ "type_name": "Beyond",
+ "type_id": "beyond演唱会"
+ },
+ {
+ "type_name": "B坂井泉水",
+ "type_id": "坂井泉水演唱会"
+ },
+ {
+ "type_name": "B宝丽金",
+ "type_id": "宝丽金演唱会"
+ },
+ {
+ "type_name": "B布兰妮",
+ "type_id": "布兰妮演唱会"
+ },
+ {
+ "type_name": "C陈瑞",
+ "type_id": "陈瑞歌曲"
+ },
+ {
+ "type_name": "C崔健",
+ "type_id": "崔健演唱会"
+ },
+ {
+ "type_name": "C陈意文",
+ "type_id": "陈意文歌曲"
+ },
+ {
+ "type_name": "C蔡依林",
+ "type_id": "蔡依林演唱会"
+ },
+ {
+ "type_name": "C草蜢",
+ "type_id": "草蜢演唱会"
+ },
+ {
+ "type_name": "Coldplay",
+ "type_id": "coldplay演唱会"
+ },
+ {
+ "type_name": "C陈慧娴",
+ "type_id": "陈慧娴演唱会"
+ },
+ {
+ "type_name": "C陈百强",
+ "type_id": "陈百强演唱会"
+ },
+ {
+ "type_name": "C陈淑桦",
+ "type_id": "陈淑桦演唱会"
+ },
+
+ {
+ "type_name": "C陈慧琳",
+ "type_id": "陈慧琳演唱会"
+ },
+ {
+ "type_name": "D邓丽君",
+ "type_id": "邓丽君演唱会"
+ },
+ {
+ "type_name": "D邓紫棋",
+ "type_id": "邓紫棋演唱会"
+ },
+ {
+ "type_name": "D刀郎",
+ "type_id": "刀郎演唱会"
+ },
+ {
+ "type_name": "D达明一派",
+ "type_id": "刘以达歌曲"
+ },
+ {
+ "type_name": "F费玉清",
+ "type_id": "费玉清演唱会"
+ },
+ {
+ "type_name": "F飞图",
+ "type_id": "飞图演唱会"
+ },
+ {
+ "type_name": "G谷村新司",
+ "type_id": "谷村新司演唱会"
+ },
+ {
+ "type_name": "G郭富城",
+ "type_id": "郭富城演唱会"
+ },
+ {
+ "type_name": "G高胜美",
+ "type_id": "高胜美演唱会"
+ },
+ {
+ "type_name": "G关淑怡",
+ "type_id": "关淑怡演唱会"
+ },
+ {
+ "type_name": "H黄凯芹",
+ "type_id": "黄凯芹演唱会"
+ },
+ {
+ "type_name": "J降央卓玛",
+ "type_id": "降央卓玛演唱会"
+ },
+ {
+ "type_name": "J江慧",
+ "type_id": "江慧歌曲"
+ },
+ {
+ "type_name": "J吉永小百合",
+ "type_id": "吉永小百合歌曲"
+ },
+ {
+ "type_name": "J金庸",
+ "type_id": "金庸影视歌曲"
+ },
+ {
+ "type_name": "K柯以敏",
+ "type_id": "柯以敏演唱会"
+ },
+ {
+ "type_name": "K邝美云",
+ "type_id": "邝美云歌曲"
+ },
+ {
+ "type_name": "L刘德华",
+ "type_id": "刘德华演唱会"
+ },
+ {
+ "type_name": "L李贞贤",
+ "type_id": "李贞贤演唱会"
+ },
+ {
+ "type_name": "L李秀英",
+ "type_id": "李秀英演唱会"
+ },
+ {
+ "type_name": "L李志",
+ "type_id": "李志歌曲"
+ },
+ {
+ "type_name": "Lady Gaga",
+ "type_id": "Lady Gaga演唱会"
+ },
+ {
+ "type_name": "L龙飘飘",
+ "type_id": "龙飘飘演唱会"
+ },
+ {
+ "type_name": "L罗大佑",
+ "type_id": "罗大佑演唱会"
+ },
+ {
+ "type_name": "L林志炫",
+ "type_id": "林志炫演唱会"
+ },
+ {
+ "type_name": "L林忆莲",
+ "type_id": "林忆莲演唱会"
+ },
+ {
+ "type_name": "L李知恩",
+ "type_id": "李知恩演唱会"
+ },
+ {
+ "type_name": "L梁静茹",
+ "type_id": "梁静茹演唱会"
+ },
+ {
+ "type_name": "L冷漠",
+ "type_id": "冷漠演唱会"
+ },
+ {
+ "type_name": "L李克勤",
+ "type_id": "李克勤演唱会"
+ },
+ {
+ "type_name": "L林子祥",
+ "type_id": "林子祥演唱会"
+ },
+ {
+ "type_name": "L黎明",
+ "type_id": "黎明演唱会"
+ },
+ {
+ "type_name": "L刘若英",
+ "type_id": "刘若英演唱会"
+ },
+ {
+ "type_name": "M莫文蔚",
+ "type_id": "莫文蔚演唱会"
+ },
+ {
+ "type_name": "M孟庭苇",
+ "type_id": "孟庭苇演唱会"
+ },
+ {
+ "type_name": "M麦当娜",
+ "type_id": "麦当娜演唱会"
+ },
+
+ {
+ "type_name": "M迈克杰克逊",
+ "type_id": "迈克杰克逊演唱会"
+ },
+ {
+ "type_name": "N雅尼紫禁城",
+ "type_id": "雅尼紫禁城演唱会"
+ },
+ {
+ "type_name": "P潘越云",
+ "type_id": "潘越云演唱会"
+ },
+ {
+ "type_name": "P潘美辰",
+ "type_id": "潘美辰演唱会"
+ },
+ {
+ "type_name": "Q齐秦",
+ "type_id": "齐秦演唱会"
+ },
+
+ {
+ "type_name": "R任贤齐",
+ "type_id": "任贤齐演唱会"
+ },
+ {
+ "type_name": "S苏慧伦",
+ "type_id": "苏慧伦演唱会"
+ },
+ {
+ "type_name": "T童安格",
+ "type_id": "童安格演唱会"
+ },
+ {
+ "type_name": "TFBOYS",
+ "type_id": "TFBOYS演唱会"
+ },
+ {
+ "type_name": "T太极乐队",
+ "type_id": "太极乐队演唱会"
+ },
+ {
+ "type_name": "T唐朝摇滚",
+ "type_id": "唐朝摇滚演唱会"
+ },
+
+ {
+ "type_name": "T谭咏麟",
+ "type_id": "谭咏麟演唱会"
+ },
+
+ {
+ "type_name": "W王琪",
+ "type_id": "王琪歌曲"
+ },
+ {
+ "type_name": "W伍珂玥",
+ "type_id": "伍珂玥演唱会"
+ },
+ {
+ "type_name": "W王杰",
+ "type_id": "王杰演唱会"
+ },
+ {
+ "type_name": "W伍佰",
+ "type_id": "伍佰演唱会"
+ },
+ {
+ "type_name": "W温兆伦",
+ "type_id": "温兆伦演唱会"
+ },
+ {
+ "type_name": "W王菲",
+ "type_id": "王菲演唱会"
+ },
+ {
+ "type_name": "X徐小凤",
+ "type_id": "徐小凤演唱会"
+ },
+ {
+ "type_name": "X席琳迪翁",
+ "type_id": "席琳迪翁演唱会"
+ },
+ {
+ "type_name": "X许嵩",
+ "type_id": "黄许嵩演唱会"
+ },
+ {
+ "type_name": "X许美静",
+ "type_id": "许美静演唱会"
+ },
+ {
+ "type_name": "X许冠杰",
+ "type_id": "许冠杰演唱会"
+ },
+ {
+ "type_name": "X小虎队",
+ "type_id": "小虎队演唱会"
+ },
+ {
+ "type_name": "X熊天平",
+ "type_id": "熊天平演唱会"
+ },
+ {
+ "type_name": "X许巍",
+ "type_id": "许巍演唱会"
+ },
+ {
+ "type_name": "Y叶启田",
+ "type_id": "叶启田演唱会"
+ },
+ {
+ "type_name": "Y杨钰莹",
+ "type_id": "杨钰莹演唱会"
+ },
+ {
+ "type_name": "Y叶玉卿",
+ "type_id": "叶玉卿演唱会"
+ },
+ {
+ "type_name": "Y杨千嬅",
+ "type_id": "杨千嬅演唱会"
+ },
+ {
+ "type_name": "Y怡正宵",
+ "type_id": "怡正宵演唱会"
+ },
+ {
+ "type_name": "Z左麟右李",
+ "type_id": "左麟右李演唱会"
+ },
+ {
+ "type_name": "Z张楚",
+ "type_id": "张楚演唱会"
+ },
+ {
+ "type_name": "Z张真",
+ "type_id": "张真歌曲"
+ },
+ {
+ "type_name": "Z张震岳",
+ "type_id": "张震岳演唱会"
+ },
+ {
+ "type_name": "Z赵传",
+ "type_id": "赵传演唱会"
+ },
+ {
+ "type_name": "Z周华健",
+ "type_id": "周华健演唱会"
+ },
+ {
+ "type_name": "Z周启生",
+ "type_id": "周启生演唱会"
+ },
+ {
+ "type_name": "Z张信哲",
+ "type_id": "张信哲演唱会"
+ },
+ {
+ "type_name": "Z张也",
+ "type_id": "张也歌曲"
+ },
+
+ {
+ "type_name": "Z周慧敏",
+ "type_id": "周慧敏演唱会"
+ },
+
+ {
+ "type_name": "Z张碧晨",
+ "type_id": "张碧晨演唱会"
+ },
+ {
+ "type_name": "Z中岛美雪",
+ "type_id": "中岛美雪演唱会"
+ },
+ {
+ "type_name": "Z张学友",
+ "type_id": "张学友演唱会"
+ },
+ {
+ "type_name": "Z张卫健",
+ "type_id": "张卫健歌曲"
+ },
+ {
+ "type_name": "Z猪哥亮",
+ "type_id": "猪哥亮歌曲"
+ },
+ {
+ "type_name": "Z周杰伦",
+ "type_id": "周杰伦演唱会"
+ },
+ {
+ "type_name": "Z周深",
+ "type_id": "周深演唱会"
+ },
+ {
+ "type_name": "Z张蔷",
+ "type_id": "张蔷演唱会"
+ },
+ {
+ "type_name": "Z张帝",
+ "type_id": "张帝演唱会"
+ },
+ {
+ "type_name": "Z张琳",
+ "type_id": "张琳,灰太狼"
+ },
+ {
+ "type_name": "Z张国荣",
+ "type_id": "张国荣演唱会"
+ },
+ {
+ "type_name": "Z周传雄",
+ "type_id": "周传雄演唱会"
+ }
+
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {"演唱会": [
+ {"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{
+ "key": "tid",
+ "name": "分类",
+ "value": [
+{"n":"全部","v":"演唱会4K"},
+{"n":"A阿杜","v":"阿杜演唱会4K"},
+{"n":"A阿黛尔","v":"阿黛尔演唱会4K"},
+{"n":"BBeyond","v":"Beyond演唱会4K"},
+{"n":"BBy2","v":"By2演唱会4K"},
+{"n":"BBIGBANG","v":"BIGBANG演唱会4K"},
+{"n":"B布兰妮","v":"布兰妮演唱会4K"},
+{"n":"C程响","v":"程响演唱会4K"},
+{"n":"C陈奕迅","v":"陈奕迅演唱会4K"},
+{"n":"C蔡依林","v":"蔡依林演唱会4K"},
+{"n":"C初音未来","v":"初音未来演唱会4K"},
+{"n":"C蔡健雅","v":"蔡健雅演唱会4K"},
+{"n":"C陈小春","v":"陈小春演唱会4K"},
+{"n":"C草蜢","v":"草蜢演唱会4K"},
+{"n":"C陈慧娴","v":"陈慧娴演唱会4K"},
+{"n":"C崔健","v":"崔健演唱会4K"},
+{"n":"C仓木麻衣","v":"仓木麻衣演唱会4K"},
+{"n":"D戴荃","v":"戴荃演唱会4K"},
+{"n":"D动力火车","v":"动力火车演唱会4K"},
+{"n":"D邓丽君","v":"邓丽君演唱会4K"},
+{"n":"D丁当","v":"丁当演唱会4K"},
+{"n":"D刀郎","v":"刀郎演唱会4K"},
+{"n":"D邓紫棋","v":"邓紫棋演唱会4K"},
+{"n":"D戴佩妮","v":"戴佩妮演唱会4K"},
+{"n":"D邓丽君","v":"邓丽君演唱会4K"},
+{"n":"F飞儿乐队","v":"飞儿乐队演唱会4K"},
+{"n":"F费玉清","v":"费玉清演唱会4K"},
+{"n":"F费翔","v":"费翔演唱会4K"},
+{"n":"F方大同","v":"方大同演唱会4K"},
+{"n":"F房东的猫","v":"房东的猫演唱会4K"},
+{"n":"F凤飞飞","v":"凤飞飞演唱会4K"},
+{"n":"F凤凰传奇","v":"凤凰传奇演唱会4K"},
+{"n":"G郭采洁","v":"郭采洁MV4K"},
+{"n":"G光良","v":"光良演唱会4K"},
+{"n":"G郭静","v":"郭静演唱会4K"},
+{"n":"G郭富城","v":"郭富城演唱会4K"},
+{"n":"H胡彦斌","v":"胡彦斌演唱会4K"},
+{"n":"H胡夏","v":"胡夏演唱会4K"},
+{"n":"H韩红","v":"韩红演唱会4K"},
+{"n":"H黄品源","v":"黄品源演唱会4K"},
+{"n":"H黄小琥","v":"黄小琥演唱会4K"},
+{"n":"H花儿乐队","v":"花儿乐队演唱会4K"},
+{"n":"H黄家强","v":"黄家强演唱会4K"},
+{"n":"H后街男孩","v":"后街男孩演唱会4K"},
+{"n":"J经典老歌","v":"经典老歌4K"},
+{"n":"J贾斯丁比伯","v":"贾斯丁比伯演唱会4K"},
+{"n":"J金池","v":"金池演唱会4K"},
+{"n":"J金志文","v":"金志文演唱会4K"},
+{"n":"J焦迈奇","v":"焦迈奇演唱会4K"},
+{"n":"K筷子兄弟","v":"筷子兄弟演唱会4K"},
+{"n":"L李玟","v":"李玟演唱会4K"},
+{"n":"L林忆莲","v":"林忆莲演唱会4K"},
+{"n":"L李克勤","v":"李克勤演唱会4K"},
+{"n":"L刘宪华","v":"刘宪华演唱会4K"},
+{"n":"L李圣杰","v":"李圣杰演唱会4K"},
+{"n":"L林宥嘉","v":"林宥嘉演唱会4K"},
+{"n":"L梁静茹","v":"梁静茹演唱会4K"},
+{"n":"L李健","v":"李健演唱会4K"},
+{"n":"L林俊杰","v":"林俊杰演唱会4K"},
+{"n":"L李玉刚","v":"李玉刚演唱会4K"},
+{"n":"L林志炫","v":"林志炫演唱会4K"},
+{"n":"L李荣浩","v":"李荣浩演唱会4K"},
+{"n":"L李宇春","v":"李宇春演唱会4K"},
+{"n":"L洛天依","v":"洛天依演唱会4K"},
+{"n":"L林子祥","v":"林子祥演唱会4K"},
+{"n":"L李宗盛","v":"李宗盛演唱会4K"},
+{"n":"L黎明","v":"黎明演唱会4K"},
+{"n":"L刘德华","v":"刘德华演唱会4K"},
+{"n":"L罗大佑","v":"罗大佑演唱会4K"},
+{"n":"L林肯公园","v":"林肯公园演唱会4K"},
+{"n":"LLadyGaga","v":"LadyGaga演唱会4K"},
+{"n":"L旅行团乐队","v":"旅行团乐队演唱会4K"},
+{"n":"M莫文蔚","v":"莫文蔚演唱会4K"},
+{"n":"M毛不易","v":"毛不易演唱会4K"},
+{"n":"M梅艳芳","v":"梅艳芳演唱会4K"},
+{"n":"M迈克尔杰克逊","v":"迈克尔杰克逊演唱会4K"},
+{"n":"N南拳妈妈","v":"南拳妈妈演唱会4K"},
+{"n":"P朴树","v":"朴树演唱会4K"},
+{"n":"Q齐秦","v":"齐秦演唱会4K"},
+{"n":"Q青鸟飞鱼","v":"青鸟飞鱼演唱会4K"},
+{"n":"R容祖儿","v":"容祖儿演唱会4K"},
+{"n":"R热歌","v":"热歌MV4K"},
+{"n":"R任贤齐","v":"任贤齐演唱会4K"},
+{"n":"S水木年华","v":"水木年华演唱会4K"},
+{"n":"S孙燕姿","v":"孙燕姿演唱会4K"},
+{"n":"S苏打绿","v":"苏打绿演唱会4K"},
+{"n":"SSHE","v":"SHE演唱会4K"},
+{"n":"S孙楠","v":"孙楠演唱会4K"},
+{"n":"T陶喆","v":"陶喆演唱会4K"},
+{"n":"T谭咏麟","v":"谭咏麟演唱会4K"},
+{"n":"T田馥甄","v":"田馥甄演唱会4K"},
+{"n":"T谭维维","v":"谭维维演唱会4K"},
+{"n":"T逃跑计划","v":"逃跑计划演唱会4K"},
+{"n":"T田震","v":"田震演唱会4K"},
+{"n":"T谭晶","v":"谭晶演唱会4K"},
+{"n":"T屠洪刚","v":"屠洪刚演唱会4K"},
+{"n":"T泰勒·斯威夫特","v":"泰勒·斯威夫特演唱会4K"},
+{"n":"W王力宏","v":"王力宏演唱会4K"},
+{"n":"W王杰","v":"王杰演唱会4K"},
+{"n":"W吴克群","v":"吴克群演唱会4K"},
+{"n":"W王心凌","v":"王心凌演唱会4K"},
+{"n":"W汪峰","v":"汪峰演唱会4K"},
+{"n":"W伍佰","v":"伍佰演唱会4K"},
+{"n":"W王菲","v":"王菲演唱会4K"},
+{"n":"W五月天","v":"五月天演唱会4K"},
+{"n":"W汪苏泷","v":"汪苏泷演唱会4K"},
+{"n":"X徐佳莹","v":"徐佳莹演唱会4K"},
+{"n":"X弦子","v":"弦子演唱会4K"},
+{"n":"X萧亚轩","v":"萧亚轩演唱会4K"},
+{"n":"X许巍","v":"许巍演唱会4K"},
+{"n":"X薛之谦","v":"薛之谦演唱会4K"},
+{"n":"X许嵩","v":"许嵩演唱会4K"},
+{"n":"X小虎队","v":"小虎队演唱会4K"},
+{"n":"X萧敬腾","v":"萧敬腾演唱会4K"},
+{"n":"X谢霆锋","v":"谢霆锋演唱会4K"},
+{"n":"X徐小凤","v":"徐小凤演唱会4K"},
+{"n":"X信乐队","v":"信乐队演唱会4K"},
+{"n":"Y夜愿乐队","v":"夜愿乐队演唱会4K"},
+{"n":"Y原创音乐","v":"原创音乐演唱会4K"},
+{"n":"Y羽泉","v":"羽泉演唱会4K"},
+{"n":"Y粤语","v":"粤语MV4K"},
+{"n":"Y郁可唯","v":"郁可唯演唱会4K"},
+{"n":"Y叶倩文","v":"叶倩文演唱会4K"},
+{"n":"Y杨坤","v":"杨坤演唱会4K"},
+{"n":"Y庾澄庆","v":"庾澄庆演唱会4K"},
+{"n":"Y尤长靖","v":"尤长靖演唱会4K"},
+{"n":"Y易烊千玺","v":"易烊千玺演唱会4K"},
+{"n":"Y袁娅维","v":"袁娅维演唱会4K"},
+{"n":"Y杨丞琳","v":"杨丞琳演唱会4K"},
+{"n":"Y杨千嬅","v":"杨千嬅演唱会4K"},
+{"n":"Y杨宗纬","v":"杨宗纬演唱会4K"},
+{"n":"Z周杰伦","v":"周杰伦演唱会4K"},
+{"n":"Z张学友","v":"张学友演唱会4K"},
+{"n":"Z张信哲","v":"张信哲演唱会4K"},
+{"n":"Z张宇","v":"张宇演唱会4K"},
+{"n":"Z周华健","v":"周华健演唱会4K"},
+{"n":"Z张韶涵","v":"张韶涵演唱会4K"},
+{"n":"Z周深","v":"周深演唱会4K"},
+{"n":"Z纵贯线","v":"纵贯线演唱会4K"},
+{"n":"Z赵雷","v":"赵雷演唱会4K"},
+{"n":"Z周传雄","v":"周传雄演唱会4K"},
+{"n":"Z张国荣","v":"张国荣演唱会4K"},
+{"n":"Z周慧敏","v":"周慧敏演唱会4K"},
+{"n":"Z张惠妹","v":"张惠妹演唱会4K"},
+{"n":"Z周笔畅","v":"周笔畅演唱会4K"},
+{"n":"Z郑中基","v":"郑中基演唱会4K"},
+{"n":"Z张艺兴","v":"张艺兴演唱会4K"},
+{"n":"Z张震岳","v":"张震岳演唱会4K"},
+{"n":"Z张雨生","v":"张雨生演唱会4K"},
+{"n":"Z郑智化","v":"郑智化演唱会4K"},
+{"n":"Z卓依婷","v":"卓依婷演唱会4K"},
+{"n":"Z中岛美雪","v":"中岛美雪演唱会4K"}
+ ]},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+]}],
+
+"粤语歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "2022年热门歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "KTV热门歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "滚石歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "经典老歌": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "古风歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "闽南语歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "印度歌舞": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "网红翻唱歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "DJ歌曲": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "韩国女团演唱会": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ]
+
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/nvtuan.json b/tvboxqq/多多/json/nvtuan.json
new file mode 100644
index 0000000..70cfdf6
--- /dev/null
+++ b/tvboxqq/多多/json/nvtuan.json
@@ -0,0 +1,60 @@
+{
+ "classes": [
+{"type_name": "中国女团","type_id":"中国女团4K"},
+{"type_name": "日本女团","type_id":"日本女团4K"},
+{"type_name": "韩国女团","type_id":"韩国女团4K"},
+{"type_name": "SNH48","type_id":"SNH48MV合集"},
+{"type_name": "S.H.E","type_id":"S.H.EMV合集"},
+{"type_name": "Twins","type_id":"TwinsMV合集"},
+{"type_name": "火箭少女101","type_id":"火箭少女101MV合集"},
+{"type_name": "BY2","type_id":"BY2MV合集"},
+{"type_name": "S.I.N.G","type_id":"S.I.N.GMV合集"},
+{"type_name": "3unshine","type_id":"3unshineMV合集"},
+{"type_name": "蜜蜂少女队","type_id":"蜜蜂少女队MV合集"},
+{"type_name": "七朵组合","type_id":"七朵组合MV合集"},
+{"type_name": "GNZ48","type_id":"GNZ48MV合集"},
+{"type_name": "TWICE","type_id":"TWICEMV合集"},
+{"type_name": "4MINUTE","type_id":"4MINUTEMV合集"},
+{"type_name": "EXID","type_id":"EXIDMV合集"},
+{"type_name": "KARA","type_id":"KARAMV合集"},
+{"type_name": "TARA","type_id":"TARAMV合集"},
+{"type_name": "BLACKPINK","type_id":"BLACKPINKMV合集"},
+{"type_name": "LOONA","type_id":"LOONAMV合集"},
+{"type_name": "ITZY","type_id":"ITZYMV合集"},
+{"type_name": "RedVelvet","type_id":"RedVelvetMV合集"},
+{"type_name": "Everglow","type_id":"EverglowMV合集"},
+{"type_name": "Mamamoo","type_id":"MamamooMV合集"},
+{"type_name": "少女时代","type_id":"少女时代MV合集"},
+{"type_name": "S.E.S","type_id":"S.E.SMV合集"},
+{"type_name": "FIN.K.L","type_id":"FIN.K.LMV合集"},
+{"type_name": "2NE1","type_id":"2NE1MV合集"},
+{"type_name": "WonderGirls","type_id":"WonderGirlsMV合集"},
+{"type_name": "IZ*ONE","type_id":"IZ*ONEMV合集"},
+{"type_name": "Sistar","type_id":"SistarMV合集"},
+{"type_name": "Apink","type_id":"ApinkMV合集"},
+{"type_name": "AOA","type_id":"AOAMV合集"},
+{"type_name": "GFRIEND","type_id":"GFRIENDMV合集"},
+{"type_name": "f(x)","type_id":"f(x)MV合集"},
+{"type_name": "(G)I-DLE","type_id":"(G)I-DLEMV合集"},
+{"type_name": "Itzy","type_id":"ItzyMV合集"},
+{"type_name": "Oh!GG","type_id":"Oh!GGMV合集"},
+{"type_name": "GirlCrush","type_id":"GirlCrushMV合集"},
+{"type_name": "AKB48","type_id":"AKB48MV合集"},
+{"type_name": "SKE48","type_id":"SKE48MV合集"},
+{"type_name": "NMB48","type_id":"NMB48MV合集"},
+{"type_name": "JKT48","type_id":"JKT48MV合集"},
+{"type_name": "HKT48","type_id":"HKT48MV合集"},
+{"type_name": "AKB48TeamTP","type_id":"AKB48TeamTPMV合集"},
+{"type_name": "Perfume","type_id":"PerfumeMV合集"},
+{"type_name": "桃色幸运草Z","type_id":"桃色幸运草ZMV合集"},
+{"type_name": "乃木坂46乃","type_id":"乃木坂46乃MV合集"},
+{"type_name": "樱坂46","type_id":"樱坂46MV合集"},
+{"type_name": "日向坂46","type_id":"日向坂46MV合集"},
+{"type_name": "E-girls","type_id":"E-girlsMV合集"},
+{"type_name": "NiziU","type_id":"NiziUMV合集"},
+{"type_name": "BiSH","type_id":"BiSHMV合集"},
+{"type_name": "早安少女组","type_id":"早安少女组MV合集"}
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/qiudui.json b/tvboxqq/多多/json/qiudui.json
new file mode 100644
index 0000000..bb8aa7f
--- /dev/null
+++ b/tvboxqq/多多/json/qiudui.json
@@ -0,0 +1,102 @@
+{
+ "classes": [
+ {
+ "type_name": "梅西",
+ "type_id": "梅西"
+ },
+
+ {
+ "type_name": "C罗",
+ "type_id": "C罗"
+ },
+ {
+ "type_name": "罗纳尔多",
+ "type_id": "罗纳尔多"
+ },
+ {
+ "type_name": "亨利",
+ "type_id": "亨利"
+ },
+ {
+ "type_name": "小罗",
+ "type_id": "小罗"
+ },
+ {
+ "type_name": "齐达内",
+ "type_id": "齐达内"
+ },
+ {
+ "type_name": "贝克汉姆",
+ "type_id": "贝克汉姆"
+ },
+
+ {
+ "type_name": "内马尔",
+ "type_id": "内马尔"
+ },
+ {
+ "type_name": "德布劳内",
+ "type_id": "德布劳内"
+ },
+ {
+ "type_name": "欧冠",
+ "type_id": "欧冠"
+ },
+ {
+ "type_name": "世界杯",
+ "type_id": "世界杯"
+ },
+ {
+ "type_name": "西甲",
+ "type_id": "西甲"
+ },
+ {
+ "type_name": "英超",
+ "type_id": "英超"
+ },
+
+ {
+ "type_name": "意甲",
+ "type_id": "意甲"
+ },
+ {
+ "type_name": "德甲",
+ "type_id": "德甲"
+ },
+ {
+ "type_name": "国米",
+ "type_id": "国米"
+ },
+ {
+ "type_name": "皇马",
+ "type_id": "皇马"
+ },
+ {
+ "type_name": "巴萨",
+ "type_id": "巴萨"
+ },
+
+ {
+ "type_name": "巴黎圣日耳曼",
+ "type_id": "巴黎圣日耳曼"
+ },
+ {
+ "type_name": "曼联",
+ "type_id": "曼联"
+ },
+ {
+ "type_name": "曼城",
+ "type_id": "曼城"
+ },
+ {
+ "type_name": "巴萨",
+ "type_id": "巴萨"
+ },
+ {
+ "type_name": "C罗",
+ "type_id": "C罗"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+
+ }
\ No newline at end of file
diff --git a/tvboxqq/多多/json/tiyu.json b/tvboxqq/多多/json/tiyu.json
new file mode 100644
index 0000000..dcc4e92
--- /dev/null
+++ b/tvboxqq/多多/json/tiyu.json
@@ -0,0 +1,90 @@
+{
+ "classes": [
+ {
+ "type_name": "UFC",
+ "type_id": "UFC"
+ },
+ {
+ "type_name": "田径",
+ "type_id": "田径"
+ },
+ {
+ "type_name": "赛艇",
+ "type_id": "赛艇"
+ },
+ {
+ "type_name": "拳击",
+ "type_id": "拳击"
+ },
+
+ {
+ "type_name": "皮划艇",
+ "type_id": "皮划艇赛事"
+ },
+
+{
+ "type_name": "自行车",
+ "type_id": "自行车赛事"
+ },
+{
+ "type_name": "击剑",
+ "type_id": "击剑"
+ },
+ {
+ "type_name": "体操",
+ "type_id": "体操"
+ },
+ {
+ "type_name": "举重",
+ "type_id": "举重"
+ },
+ {
+ "type_name": "柔道",
+ "type_id": "柔道"
+ },
+ {
+ "type_name": "藤球",
+ "type_id": "藤球"
+ },
+ {
+ "type_name": "摔跤",
+ "type_id": "摔跤"
+ },
+ {
+ "type_name": "水上项目",
+ "type_id": "水上项目"
+ },
+
+ {
+ "type_name": "现代五项",
+ "type_id": "现代五项"
+ },
+ {
+ "type_name": "马术",
+ "type_id": "马术"
+ },
+ {
+ "type_name": "跆拳道",
+ "type_id": "跆拳道"
+ },
+{
+ "type_name": "射击",
+ "type_id": "射击"
+ },
+ {
+ "type_name": "射箭",
+ "type_id": "射箭"
+ },
+ {
+ "type_name": "铁人三项",
+ "type_id": "铁人三项"
+ },
+{
+ "type_name": "帆船帆板",
+ "type_id": "帆船帆板"
+ }
+
+
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/xiaopin.json b/tvboxqq/多多/json/xiaopin.json
new file mode 100644
index 0000000..7c2ec47
--- /dev/null
+++ b/tvboxqq/多多/json/xiaopin.json
@@ -0,0 +1,103 @@
+{
+ "classes": [
+ {
+ "type_name": "单口相声",
+ "type_id": "单口相声"
+ },
+ {
+ "type_name": "群口相声",
+ "type_id": "群口相声"
+ },
+ {
+ "type_name": "德云社",
+ "type_id": "德云社"
+ },
+ {
+ "type_name": "青曲社",
+ "type_id": "青曲社"
+ },
+ {
+ "type_name": "郭德纲",
+ "type_id": "郭德纲"
+ },
+ {
+ "type_name": "岳云鹏",
+ "type_id": "岳云鹏"
+ },
+
+ {
+ "type_name": "曹云金",
+ "type_id": "曹云金"
+ },
+ {
+ "type_name": "评书",
+ "type_id": "评书"
+ },
+ {
+ "type_name": "小曲",
+ "type_id": "小区"
+ },
+
+ {
+ "type_name": "二人转",
+ "type_id": "二人转"
+ },
+ {
+ "type_name": "春晚小品",
+ "type_id": "春晚小品"
+ },
+ {
+ "type_name": "赵本山",
+ "type_id": "赵本山"
+ },
+ {
+ "type_name": "陈佩斯",
+ "type_id": "陈佩斯"
+ },
+ {
+ "type_name": "冯巩",
+ "type_id": "冯巩"
+ },
+ {
+ "type_name": "宋小宝",
+ "type_id": "宋小宝"
+ },
+ {
+ "type_name": "赵丽蓉",
+ "type_id": "赵丽蓉"
+ },
+ {
+ "type_name": "郭达",
+ "type_id": "郭达"
+ },
+ {
+ "type_name": "潘长江",
+ "type_id": "潘长江"
+ },
+ {
+ "type_name": "郭冬临",
+ "type_id": "郭冬临"
+ },
+ {
+ "type_name": "严顺开",
+ "type_id": "严顺开"
+ },
+ {
+ "type_name": "文松",
+ "type_id": "文松"
+ },
+ {
+ "type_name": "开心麻花",
+ "type_id": "开心麻花"
+ },
+ {
+ "type_name": "屌丝男士",
+ "type_id": "屌丝男士"
+ },
+ {
+ "type_name": "喜剧综艺",
+ "type_id": "喜剧综艺"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/xiaoxue.json b/tvboxqq/多多/json/xiaoxue.json
new file mode 100644
index 0000000..18fc7a5
--- /dev/null
+++ b/tvboxqq/多多/json/xiaoxue.json
@@ -0,0 +1,798 @@
+{
+ "classes": [{
+ "type_name": "1年级语文",
+ "type_id": "1年级语文"
+ }, {
+ "type_name": "1年级数学",
+ "type_id": "1年级数学"
+ }, {
+ "type_name": "1年级英语",
+ "type_id": "1年级英语"
+ }, {
+ "type_name": "2年级语文",
+ "type_id": "2年级语文"
+ }, {
+ "type_name": "2年级数学",
+ "type_id": "2年级数学"
+ }, {
+ "type_name": "2年级英语",
+ "type_id": "2年级英语"
+ }, {
+ "type_name": "3年级语文",
+ "type_id": "3年级语文"
+ }, {
+ "type_name": "3年级数学",
+ "type_id": "3年级数学"
+ }, {
+ "type_name": "3年级英语",
+ "type_id": "3年级英语"
+ }, {
+ "type_name": "4年级语文",
+ "type_id": "4年级语文"
+ }, {
+ "type_name": "4年级数学",
+ "type_id": "4年级数学"
+ }, {
+ "type_name": "4年级英语",
+ "type_id": "4年级英语"
+ }, {
+ "type_name": "5年级语文",
+ "type_id": "5年级语文"
+ }, {
+ "type_name": "5年级数学",
+ "type_id": "5年级数学"
+ }, {
+ "type_name": "5年级英语",
+ "type_id": "5年级英语"
+ }, {
+ "type_name": "6年级语文",
+ "type_id": "6年级语文"
+ }, {
+ "type_name": "6年级数学",
+ "type_id": "6年级数学"
+ }, {
+ "type_name": "6年级英语",
+ "type_id": "6年级英语"
+ }],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+ "1年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "1年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版1年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "1年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版1年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版1年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版1年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版1年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版1年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版2年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "2年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版2年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版2年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版2年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版2年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版2年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版3年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "3年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版3年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版3年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版3年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版3年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版3年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版4年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "4年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版4年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版4年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版4年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版4年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版4年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版5年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "5年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版5年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版5年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版5年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版5年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版5年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级语文": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级语文"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级语文"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级语文"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级语文"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级英语": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级英语"
+ },{
+ "n": "外研版",
+ "v": "外研版6年级英语"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级英语"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级英语"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级英语"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }],
+ "6年级数学": [{
+ "key": "tid",
+ "name": "分类",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "沪教版",
+ "v": "沪教版6年级数学"
+ }, {
+ "n": "人教版",
+ "v": "人教版6年级数学"
+ },{
+ "n": "西师大版",
+ "v": "西师大版6年级数学"
+ }, {
+ "n": "北师大版",
+ "v": "北师大版6年级数学"
+ }, {
+ "n": "苏教版",
+ "v": "苏教版6年级数学"
+ }]
+ }, {
+ "key": "duration",
+ "name": "时长",
+ "value": [{
+ "n": "全部",
+ "v": "0"
+ }, {
+ "n": "60分钟以上",
+ "v": "4"
+ }, {
+ "n": "30~60分钟",
+ "v": "3"
+ }, {
+ "n": "10~30分钟",
+ "v": "2"
+ }, {
+ "n": "10分钟以下",
+ "v": "1"
+ }]
+ }]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/xiqu.json b/tvboxqq/多多/json/xiqu.json
new file mode 100644
index 0000000..e1681bd
--- /dev/null
+++ b/tvboxqq/多多/json/xiqu.json
@@ -0,0 +1,373 @@
+{
+ "classes": [
+ {
+ "type_name": "京剧",
+ "type_id": "京剧"
+ },
+ {
+ "type_name": "越剧",
+ "type_id": "越剧"
+ },
+ {
+ "type_name": "芗剧",
+ "type_id": "芗剧"
+ },
+ {
+ "type_name": "蒲剧",
+ "type_id": "蒲剧"
+ },
+ {
+ "type_name": "闽剧",
+ "type_id": "闽剧"
+ },
+ {
+ "type_name": "喊麦",
+ "type_id": "喊麦"
+ },
+ {
+ "type_name": "陕北说书",
+ "type_id": "陕北说书"
+ },
+ {
+ "type_name": "庐剧",
+ "type_id": "庐剧"
+ },
+ {
+ "type_name": "吕剧",
+ "type_id": "吕剧"
+ },
+ {
+ "type_name": "眉户",
+ "type_id": "眉户"
+ },
+ {
+ "type_name": "歌仔戏",
+ "type_id": "歌仔戏"
+ },
+
+ {
+ "type_name": "黄梅戏",
+ "type_id": "黄梅戏"
+ },
+ {
+ "type_name": "黄梅戏",
+ "type_id": "黄梅戏"
+ },
+ {
+ "type_name": "评剧",
+ "type_id": "评剧"
+ },
+ {
+ "type_name": "豫剧",
+ "type_id": "豫剧"
+ },
+ {
+ "type_name": "沪剧",
+ "type_id": "沪剧"
+ },
+ {
+ "type_name": "昆曲",
+ "type_id": "昆曲"
+ },
+ {
+ "type_name": "花鼓戏",
+ "type_id": "花鼓戏"
+ },
+ {
+ "type_name": "潮剧",
+ "type_id": "潮剧"
+ },
+ {
+ "type_name": "超清潮剧",
+ "type_id": "超清潮剧"
+ },
+
+ {
+ "type_name": "百花潮剧院",
+ "type_id": "百花潮剧院"
+ },
+ {
+ "type_name": "香港潮剧",
+ "type_id": "香港潮剧"
+ },
+ {
+ "type_name": "潮剧院",
+ "type_id": "潮剧院"
+ },
+ {
+ "type_name": "潮剧团",
+ "type_id": "潮剧团"
+ },
+ {
+ "type_name": "潮剧全剧",
+ "type_id": "潮剧全剧"
+ },
+ {
+ "type_name": "潮剧选段",
+ "type_id": "潮剧选段"
+ },
+ {
+ "type_name": "名家潮剧",
+ "type_id": "名家潮剧"
+ },
+
+ {
+ "type_name": "潮汕小品",
+ "type_id": "潮汕小品"
+ },
+ {
+ "type_name": "潮汕讲古",
+ "type_id": "潮汕讲古"
+ },
+ {
+ "type_name": "河北梆子",
+ "type_id": "河北梆子"
+ },
+ {
+ "type_name": "梆子腔",
+ "type_id": "梆子腔"
+ },
+ {
+ "type_name": "晋剧",
+ "type_id": "晋剧"
+ },
+ {
+ "type_name": "龙江剧",
+ "type_id": "龙江剧"
+ },
+ {
+ "type_name": "越调",
+ "type_id": "越调"
+ },
+ {
+ "type_name": "河南曲剧",
+ "type_id": "河南曲剧"
+ },
+ {
+ "type_name": "山东梆子",
+ "type_id": "山东梆子"
+ },
+ {
+ "type_name": "淮剧",
+ "type_id": "淮剧"
+ },
+ {
+ "type_name": "滑稽戏",
+ "type_id": "滑稽戏"
+ },
+ {
+ "type_name": "婺剧",
+ "type_id": "婺剧"
+ },
+ {
+ "type_name": "绍剧",
+ "type_id": "绍剧"
+ },
+ {
+ "type_name": "徽剧",
+ "type_id": "徽剧"
+ },
+ {
+ "type_name": "雁剧",
+ "type_id": "雁剧"
+ },
+ {
+ "type_name": "上党梆子",
+ "type_id": "上党梆子"
+ },
+ {
+ "type_name": "秦腔",
+ "type_id": "秦腔"
+ },
+ {
+ "type_name": "武安平调",
+ "type_id": "武安平调"
+ },
+ {
+ "type_name": "二人台",
+ "type_id": "二人台"
+ },
+ {
+ "type_name": "吉剧",
+ "type_id": "吉剧"
+ },
+ {
+ "type_name": "高腔",
+ "type_id": "高腔"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+ "潮剧": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "超清潮剧": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "百花潮剧院": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "潮剧院": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+ "潮剧团": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "闽南歌曲合集": [
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/yinyue.json b/tvboxqq/多多/json/yinyue.json
new file mode 100644
index 0000000..7165676
--- /dev/null
+++ b/tvboxqq/多多/json/yinyue.json
@@ -0,0 +1,73 @@
+{
+ "classes": [{
+ "type_name": "经典无损音乐合集",
+ "type_id": "经典无损音乐合集"
+ },
+ {
+ "type_name": "2023年热榜",
+ "type_id": "2023年热门歌曲"
+ },
+ {
+ "type_name": "宝华音乐台",
+ "type_id": "宝华音乐台"
+ },
+ {
+ "type_name": "KTV热门",
+ "type_id": "KTV热门MV"
+ },
+ {
+ "type_name": "MV",
+ "type_id": "MV"
+ },
+ {
+ "type_name": "经典老歌",
+ "type_id": "经典老歌"
+ },
+ {
+ "type_name": "经典粤语",
+ "type_id": "粤语歌曲超清"
+ },
+ {
+ "type_name": "滚石经典",
+ "type_id": "滚石MV"
+ },
+ {
+ "type_name": "古风歌曲",
+ "type_id": "古风歌曲"
+ },
+ {
+ "type_name": "闽南语歌曲",
+ "type_id": "闽南语歌曲"
+ },
+ {
+ "type_name": "欧美金曲",
+ "type_id": "欧美金曲"
+ },
+ {
+ "type_name": "日韩MV",
+ "type_id": "日韩MV"
+ },
+ {
+ "type_name": "印度歌舞",
+ "type_id": "印度歌舞"
+ },
+ {
+ "type_name": "黑胶",
+ "type_id": "黑胶"
+ },
+ {
+ "type_name": "翻唱",
+ "type_id": "网红翻唱"
+ },
+ {
+ "type_name": "韩国女团",
+ "type_id": "韩国女团MV"
+ },
+ {
+ "type_name": "DJ",
+ "type_id": "DJ"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/youer.json b/tvboxqq/多多/json/youer.json
new file mode 100644
index 0000000..fcfaf0a
--- /dev/null
+++ b/tvboxqq/多多/json/youer.json
@@ -0,0 +1,4157 @@
+{
+ "classes": [
+{
+ "type_name": "励志学习",
+ "type_id": "励志学习"
+ }, {
+ "type_name": "学而思",
+ "type_id": "学而思"
+ }, {
+ "type_name": "看图写话",
+ "type_id": "看图写话"
+ }, {
+ "type_name": "少儿口才",
+ "type_id": "少儿口才"
+ },
+ {
+ "type_name": "儿童早教",
+ "type_id": "儿童早教"
+ },
+ {
+ "type_name": "儿童启蒙故事",
+ "type_id": "儿童启蒙故事"
+ },
+ {
+ "type_name": "儿童英语启蒙",
+ "type_id": "儿童英语启蒙"
+ },
+ {
+ "type_name": "儿童歌曲",
+ "type_id": "儿童歌曲"
+ },
+{
+ "type_name": "儿童绘画",
+ "type_id": "儿童绘画"
+ },
+ {
+ "type_name": "睡前故事",
+ "type_id": "睡前故事"
+ },
+
+{
+ "type_name": "儿童动画",
+ "type_id": "儿童动画"
+ },
+{
+ "type_name": "儿童音乐",
+ "type_id": "儿童音乐"
+ },
+ {
+ "type_name": "儿童安全教育",
+ "type_id": "儿童安全教育"
+ },
+ {
+ "type_name": "贝瓦儿歌",
+ "type_id": "贝瓦儿歌"
+ },
+ {
+ "type_name": "悟空识字",
+ "type_id": "悟空识字"
+ },
+ {
+ "type_name": "宝宝巴士",
+ "type_id": "宝宝巴士"
+ },
+ {
+ "type_name": "儿歌多多",
+ "type_id": "儿歌多多"
+ },
+ {
+ "type_name": "学而思",
+ "type_id": "学而思"
+ },
+
+ {
+ "type_name": "1年级语文",
+ "type_id": "1年级语文"
+ },
+ {
+ "type_name": "1年级数学",
+ "type_id": "1年级数学"
+ },
+ {
+ "type_name": "1年级英语",
+ "type_id": "1年级英语"
+ },
+{
+ "type_name": "2年级语文",
+ "type_id": "2年级语文"
+ },
+ {
+ "type_name": "2年级数学",
+ "type_id": "2年级数学"
+ },
+ {
+ "type_name": "2年级英语",
+ "type_id": "2年级英语"
+ },
+{
+ "type_name": "3年级语文",
+ "type_id": "3年级语文"
+ },
+ {
+ "type_name": "3年级数学",
+ "type_id": "3年级数学"
+ },
+ {
+ "type_name": "3年级英语",
+ "type_id": "3年级英语"
+ },
+{
+ "type_name": "4年级语文",
+ "type_id": "4年级语文"
+ },
+ {
+ "type_name": "4年级数学",
+ "type_id": "4年级数学"
+ },
+ {
+ "type_name": "4年级英语",
+ "type_id": "4年级英语"
+ },
+{
+ "type_name": "5年级语文",
+ "type_id": "5年级语文"
+ },
+ {
+ "type_name": "5年级数学",
+ "type_id": "5年级数学"
+ },
+ {
+ "type_name": "5年级英语",
+ "type_id": "5年级英语"
+ },
+{
+ "type_name": "6年级语文",
+ "type_id": "6年级语文"
+ },
+ {
+ "type_name": "6年级数学",
+ "type_id": "6年级数学"
+ },
+ {
+ "type_name": "6年级英语",
+ "type_id": "6年级英语"
+ },
+{
+ "type_name": "7年级语文",
+ "type_id": "7年级语文"
+ },
+ {
+ "type_name": "7年级数学",
+ "type_id": "7年级数学"
+ },
+ {
+ "type_name": "7年级英语",
+ "type_id": "7年级英语"
+ },
+ {
+ "type_name": "7年级历史",
+ "type_id": "7年级历史"
+ },
+{
+ "type_name": "7年级地理",
+ "type_id": "7年级地理"
+ },
+ {
+ "type_name": "7年级生物",
+ "type_id": "7年级生物"
+ },
+ {
+ "type_name": "7年级物理",
+ "type_id": "7年级物理"
+ },
+ {
+ "type_name": "7年级化学",
+ "type_id": "7年级化学"
+ },
+
+{
+ "type_name": "8年级语文",
+ "type_id": "8年级语文"
+ },
+ {
+ "type_name": "8年级数学",
+ "type_id": "8年级数学"
+ },
+ {
+ "type_name": "8年级英语",
+ "type_id": "8年级英语"
+ },
+ {
+ "type_name": "8年级历史",
+ "type_id": "8年级历史"
+ },
+{
+ "type_name": "8年级地理",
+ "type_id": "8年级地理"
+ },
+ {
+ "type_name": "8年级生物",
+ "type_id": "8年级生物"
+ },
+
+ {
+ "type_name": "8年级物理",
+ "type_id": "8年级物理"
+ },
+ {
+ "type_name": "8年级化学",
+ "type_id": "8年级化学"
+ },
+{
+ "type_name": "9年级语文",
+ "type_id": "9年级语文"
+ },
+ {
+ "type_name": "9年级数学",
+ "type_id": "9年级数学"
+ },
+ {
+ "type_name": "9年级英语",
+ "type_id": "9年级英语"
+ },
+ {
+ "type_name": "9年级历史",
+ "type_id": "9年级历史"
+ },
+{
+ "type_name": "9年级地理",
+ "type_id": "9年级地理"
+ },
+ {
+ "type_name": "9年级生物",
+ "type_id": "9年级生物"
+ },
+
+ {
+ "type_name": "9年级物理",
+ "type_id": "9年级物理"
+ },
+ {
+ "type_name": "9年级化学",
+ "type_id": "9年级化学"
+ },
+
+
+{
+ "type_name": "高一语文",
+ "type_id": "高一语文"
+ },
+ {
+ "type_name": "高一数学",
+ "type_id": "高一数学"
+ },
+ {
+ "type_name": "高一英语",
+ "type_id": "高一英语"
+ },
+ {
+ "type_name": "高一历史",
+ "type_id": "高一历史"
+ },
+{
+ "type_name": "高一地理",
+ "type_id": "高一地理"
+ },
+ {
+ "type_name": "高一生物",
+ "type_id": "高一生物"
+ },
+ {
+ "type_name": "高一思想政治",
+ "type_id": "高一思想政治"
+ },
+{
+ "type_name": "高一物理",
+ "type_id": "高一物理"
+ },
+ {
+ "type_name": "高一化学",
+ "type_id": "高一化学"
+ },
+
+
+{
+ "type_name": "高二语文",
+ "type_id": "高二语文"
+ },
+ {
+ "type_name": "高二数学",
+ "type_id": "高二数学"
+ },
+ {
+ "type_name": "高二英语",
+ "type_id": "高二英语"
+ },
+ {
+ "type_name": "高二历史",
+ "type_id": "高二历史"
+ },
+{
+ "type_name": "高二地理",
+ "type_id": "高二地理"
+ },
+ {
+ "type_name": "高二生物",
+ "type_id": "高二生物"
+ },
+ {
+ "type_name": "高二思想政治",
+ "type_id": "高二思想政治"
+ },
+{
+ "type_name": "高二物理",
+ "type_id": "高二物理"
+ },
+ {
+ "type_name": "高二化学",
+ "type_id": "高二化学"
+ },
+
+
+{
+ "type_name": "高三语文",
+ "type_id": "高三语文"
+ },
+ {
+ "type_name": "高三数学",
+ "type_id": "高三数学"
+ },
+ {
+ "type_name": "高三英语",
+ "type_id": "高三英语"
+ },
+ {
+ "type_name": "高三历史",
+ "type_id": "高三历史"
+ },
+{
+ "type_name": "高三地理",
+ "type_id": "高三地理"
+ },
+ {
+ "type_name": "高三生物",
+ "type_id": "高三生物"
+ },
+ {
+ "type_name": "高三思想政治",
+ "type_id": "高三思想政治"
+ },
+{
+ "type_name": "高三物理",
+ "type_id": "高三物理"
+ },
+ {
+ "type_name": "高三化学",
+ "type_id": "高三化学"
+ },
+
+
+
+ {
+ "type_name": "高中信息技术",
+ "type_id": "高中信息技术"
+ },
+ {
+ "type_name": "高中信息技术",
+ "type_id": "高中信息技术"
+ }
+
+
+
+ ],
+
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+
+ "1年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版1年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版1年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版1年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版1年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "1年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版1年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版1年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版1年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版1年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "1年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版1年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版1年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版1年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版1年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "2年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版2年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版2年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版2年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版2年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "2年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版2年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版2年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版2年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版2年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "2年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版2年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版2年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版2年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版2年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "3年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版3年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版3年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版3年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版3年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "3年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版3年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版3年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版3年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版3年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "3年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版3年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版3年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版3年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版3年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "4年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版4年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版4年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版4年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版4年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "4年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版4年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版4年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版4年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版4年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "4年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版4年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版4年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版4年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版4年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "5年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版5年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版5年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版5年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版5年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "5年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版5年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版5年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版5年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版5年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "5年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版5年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版5年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版5年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版5年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "6年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版6年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版6年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版6年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版6年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "6年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版6年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版6年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版6年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版6年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "6年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版6年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版6年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版6年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版6年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "7年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "7年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "7年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "7年级化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "7年级物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "7年级生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "7年级历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版7年级历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版7年级历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版7年级历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版7年级历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+
+
+
+
+ "8年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "8年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "8年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+
+ "8年级化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "8年级物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级物理"
+ },
+ {
+ "n": "教科版",
+ "v": "教科版8年级物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "8年级生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "8年级历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版8年级历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版8年级历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版8年级历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版8年级历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "9年级语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "9年级英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "9年级数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "9年级化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级化学"
+ },
+ {
+ "n": "鲁教版",
+ "v": "鲁教版9年级化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "9年级物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "9年级生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "9年级历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版9年级历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版9年级历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版9年级历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版9年级历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+
+
+
+ "高一语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "高一英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一思想政治": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一思想政治"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一思想政治"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一思想政治"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一思想政治"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高一地理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高一地理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高一地理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高一地理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高一地理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "高二英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二思想政治": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二思想政治"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二思想政治"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二思想政治"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二思想政治"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高二地理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高二地理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高二地理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高二地理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高二地理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+
+ "高三语文": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三语文"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三语文"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三语文"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三语文"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+ "高三英语": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三英语"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三英语"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三英语"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三英语"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三数学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三数学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三数学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三数学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三数学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三物理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三物理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三物理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三物理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三物理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三化学": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三化学"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三化学"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三化学"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三化学"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三历史": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三历史"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三历史"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三历史"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三历史"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三生物": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三生物"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三生物"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三生物"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三生物"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三思想政治": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三思想政治"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三思想政治"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三思想政治"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三思想政治"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ],
+
+
+ "高三地理": [
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "沪教版",
+ "v": "沪教版高三地理"
+ },
+ {
+ "n": "人教版",
+ "v": "人教版高三地理"
+ },
+ {
+ "n": "北师大版",
+ "v": "北师大版高三地理"
+ },
+
+ {
+ "n": "苏教版",
+ "v": "苏教版高三地理"
+ }
+ ]
+ },
+ {
+ "key": "duration",
+ "name": "时长",
+ "value": [
+ {
+ "n": "全部",
+ "v": "0"
+ },
+ {
+ "n": "60分钟以上",
+ "v": "4"
+ },
+ {
+ "n": "30~60分钟",
+ "v": "3"
+ },
+ {
+ "n": "10~30分钟",
+ "v": "2"
+ },
+ {
+ "n": "10分钟以下",
+ "v": "1"
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/zyy.json b/tvboxqq/多多/json/zyy.json
new file mode 100644
index 0000000..3366362
--- /dev/null
+++ b/tvboxqq/多多/json/zyy.json
@@ -0,0 +1,65 @@
+{
+ "classes": [
+ {
+ "type_name": "中医药",
+ "type_id": "中医药"
+ },
+ {
+ "type_name": "中医基础",
+ "type_id": "中医基础"
+ },
+ {
+ "type_name": "中药基础",
+ "type_id": "中药基础"
+ },
+ {
+ "type_name": "伤寒论",
+ "type_id": "伤寒论"
+ },
+ {
+ "type_name": "难论",
+ "type_id": "难论"
+ },
+ {
+ "type_name": "神农本草经",
+ "type_id": "神农本草经"
+ },
+
+ {
+ "type_name": "金匮要略",
+ "type_id": "金匮要略"
+ },
+ {
+ "type_name": "脉经",
+ "type_id": "脉经"
+ },
+ {
+ "type_name": "中藏经",
+ "type_id": "中藏经"
+ },
+
+ {
+ "type_name": "针灸甲乙经",
+ "type_id": "针灸甲乙经"
+ },
+ {
+ "type_name": "濒湖脉学",
+ "type_id": "濒湖脉学"
+ },
+
+ {
+ "type_name": "本草纲目",
+ "type_id": "本草纲目"
+ },
+
+ {
+ "type_name": "汤头歌诀",
+ "type_id": "汤头歌诀"
+ },
+ {
+ "type_name": "药性赋",
+ "type_id": "药性赋"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7"
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/搭讪.json b/tvboxqq/多多/json/搭讪.json
new file mode 100644
index 0000000..44a6a6d
--- /dev/null
+++ b/tvboxqq/多多/json/搭讪.json
@@ -0,0 +1,152 @@
+{
+ "classes": [
+ {
+ "type_name": "搭讪",
+ "type_id": "搭讪"
+ },
+ {
+ "type_name": "搭讪技巧",
+ "type_id": "搭讪技巧"
+ },
+ {
+ "type_name": "女追男",
+ "type_id": "女追男"
+ },
+ {
+ "type_name": "男追女",
+ "type_id": "男追女"
+ },
+ {
+ "type_name": "街头搭讪",
+ "type_id": "街头搭讪"
+ },
+
+ {
+ "type_name": "夜店搭讪",
+ "type_id": "夜店搭讪"
+ },
+
+ {
+ "type_name": "商超搭讪",
+ "type_id": "商超搭讪"
+ },
+ {
+ "type_name": "校园搭讪",
+ "type_id": "校园搭讪"
+ },
+ {
+ "type_name": "搭讪失败",
+ "type_id": "搭讪失败"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+"搭讪": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "搭讪",
+ "v": "搭讪"
+ },
+ {
+ "n": "搭讪技巧",
+ "v": "搭讪技巧"
+ },
+ {
+ "n": "搭讪经验",
+ "v": "搭讪经验"
+ },
+
+ {
+ "n": "搭讪套路",
+ "v": "搭讪套路"
+ },
+ {
+ "n": "搭讪话术",
+ "v": "搭讪话术"
+ }
+
+ ]
+ },
+
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+
+
+"女生搭配": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "内衣",
+ "v": "内衣"
+ },
+ {
+ "n": "裙子",
+ "v": "裙子"
+ },
+ {
+ "n": "裤子",
+ "v": "裤子"
+ },
+
+ {
+ "n": "卫衣",
+ "v": "卫衣"
+ },
+ {
+ "n": "雪纺衣服",
+ "v": "雪纺衣服"
+ },
+ {
+ "n": "丝袜",
+ "v": "丝袜"
+ },
+ {
+ "n": "牛仔裙",
+ "v": "牛仔裙"
+ }
+
+ ]
+ },
+
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+]
+}
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/搭配.json b/tvboxqq/多多/json/搭配.json
new file mode 100644
index 0000000..f740aa1
--- /dev/null
+++ b/tvboxqq/多多/json/搭配.json
@@ -0,0 +1,200 @@
+{
+ "classes": [
+ {
+ "type_name": "内衣",
+ "type_id": "内衣"
+ },
+ {
+ "type_name": "男生搭配",
+ "type_id": "男生搭配"
+ },
+ {
+ "type_name": "女生搭配",
+ "type_id": "女生搭配"
+ },
+ {
+ "type_name": "裙子",
+ "type_id": "裙子"
+ },
+ {
+ "type_name": "紧身裤",
+ "type_id": "紧身裤"
+ },
+ {
+ "type_name": "吊带衫",
+ "type_id": "吊带衫"
+ },
+
+ {
+ "type_name": "娃娃衣",
+ "type_id": "娃娃衣"
+ },
+ {
+ "type_name": "牛仔裙",
+ "type_id": "牛仔裙"
+ },
+ {
+ "type_name": "丝袜",
+ "type_id": "丝袜"
+ },
+
+ {
+ "type_name": "雪纺",
+ "type_id": "雪纺衣服"
+ },
+ {
+ "type_name": "礼服",
+ "type_id": "礼服"
+ },
+
+ {
+ "type_name": "裤子",
+ "type_id": "裤子"
+ },
+
+ {
+ "type_name": "西装",
+ "type_id": "西装"
+ },
+ {
+ "type_name": "领带",
+ "type_id": "领带"
+ },
+ {
+ "type_name": "衬衫",
+ "type_id": "衬衫"
+ },
+
+ {
+ "type_name": "卫衣",
+ "type_id": "卫衣"
+ },
+ {
+ "type_name": "T恤",
+ "type_id": "T恤"
+ },
+
+ {
+ "type_name": "Polo衫",
+ "type_id": "Polo衫"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+"男生搭配": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "裤子",
+ "v": "裤子"
+ },
+ {
+ "n": "T恤",
+ "v": "T恤"
+ },
+ {
+ "n": "卫衣",
+ "v": "卫衣"
+ },
+
+ {
+ "n": "牛仔衣",
+ "v": "牛仔衣"
+ },
+ {
+ "n": "领带",
+ "v": "领带"
+ },
+ {
+ "n": "西装",
+ "v": "西装"
+ },
+ {
+ "n": "运动装备",
+ "v": "运动装备"
+ }
+
+ ]
+ },
+
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+
+
+"女生搭配": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+ {
+ "key": "tid",
+ "name": "分类",
+ "value": [
+ {
+ "n": "内衣",
+ "v": "内衣"
+ },
+ {
+ "n": "裙子",
+ "v": "裙子"
+ },
+ {
+ "n": "裤子",
+ "v": "裤子"
+ },
+
+ {
+ "n": "卫衣",
+ "v": "卫衣"
+ },
+ {
+ "n": "雪纺衣服",
+ "v": "雪纺衣服"
+ },
+ {
+ "n": "丝袜",
+ "v": "丝袜"
+ },
+ {
+ "n": "牛仔裙",
+ "v": "牛仔裙"
+ }
+
+ ]
+ },
+
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+]
+}
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/热播之家.json b/tvboxqq/多多/json/热播之家.json
new file mode 100644
index 0000000..0ed6489
--- /dev/null
+++ b/tvboxqq/多多/json/热播之家.json
@@ -0,0 +1,905 @@
+{
+ "作者": "荷城茶秀",
+ "站名": "热播之家",
+ "主页url": "https://rebozj.pro/",
+ "简介": "关注公众号【多多影音】获取更多影视资源,加入QQ频道【应用多多】防失联!提醒您请勿相信影片中的广告,以免上当受骗+&&",
+ "导演": "导演:&&
",
+ "主演": "主演:&&",
+ "影片地区": "地区:&&",
+ "影片年代": "年份:&&",
+ "影片状态": "&&
",
+ "影片类型": "类型:&&",
+ "数组": "stui-vodlist__thumb&&",
+ "图片": "data-original=\"&&\"",
+ "标题": "title=\"&&\"",
+ "副标题": "pic-text text-right\">&&",
+ "链接": "href=\"&&\"",
+ "线路数组": "",
+ "线路标题": "⚡️多多线路⚡️+>&&<[替换:高清线路>>高清#高清备用>>备用]",
+ "播放数组": "",
+ "播放标题": ">&&",
+ "播放列表": "- ",
+ "搜索模式": "1",
+ "搜索url": "https://rebozj.pro/type/id-.html?wd={wd}",
+ "嗅探词": "tos-#.mp4#cdn.123pan.cn#huoshanvod.com#.m3u8#video_mp4",
+ "分类url": "https://rebozj.pro/show/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html;;ak",
+ "分类": "电影$1#电视剧$2#纪录片$3#动漫$4#综艺$5",
+ "筛选": {
+ "1": [
+ {
+ "key": "cateId",
+ "name": "类型",
+ "value": [
+ {
+ "n": "全部类型",
+ "v": ""
+ },
+ {
+ "n": "动作",
+ "v": "6"
+ },
+ {
+ "n": "喜剧",
+ "v": "7"
+ },
+ {
+ "n": "爱情",
+ "v": "8"
+ },
+ {
+ "n": "科幻",
+ "v": "9"
+ },
+ {
+ "n": "恐怖",
+ "v": "10"
+ },
+ {
+ "n": "剧情",
+ "v": "11"
+ },
+ {
+ "n": "战争",
+ "v": "12"
+ }
+ ]
+ },
+ {
+ "key": "class",
+ "name": "剧情",
+ "value": [
+ {
+ "n": "全部剧情",
+ "v": ""
+ },
+ {
+ "n": "喜剧",
+ "v": "喜剧"
+ },
+ {
+ "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": "美国"
+ },
+ {
+ "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": "2014",
+ "v": "2014"
+ },
+ {
+ "n": "2013",
+ "v": "2013"
+ },
+ {
+ "n": "2012",
+ "v": "2012"
+ }
+ ]
+ },
+ {
+ "key": "by",
+ "name": "排序",
+ "value": [
+ {
+ "n": "全部排序",
+ "v": ""
+ },
+ {
+ "n": "时间排序",
+ "v": "time"
+ },
+ {
+ "n": "人气排序",
+ "v": "hits"
+ },
+ {
+ "n": "评分排序",
+ "v": "score"
+ }
+ ]
+ }
+ ],
+ "2": [
+ {
+ "key": "cateId",
+ "name": "类型",
+ "value": [
+ {
+ "n": "全部类型",
+ "v": ""
+ },
+ {
+ "n": "国产剧",
+ "v": "13"
+ },
+ {
+ "n": "港台剧",
+ "v": "14"
+ },
+ {
+ "n": "日韩剧",
+ "v": "15"
+ },
+ {
+ "n": "欧美海外剧",
+ "v": "16"
+ }
+ ]
+ },
+ {
+ "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": "情景"
+ }
+ ]
+ },
+ {
+ "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": "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": "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": "求职"
+ }
+ ]
+ },
+ {
+ "key": "area",
+ "name": "地区",
+ "value": [
+ {
+ "n": "全部地区",
+ "v": ""
+ },
+ {
+ "n": "内地",
+ "v": "内地"
+ },
+ {
+ "n": "港台",
+ "v": "港台"
+ },
+ {
+ "n": "日韩",
+ "v": "日韩"
+ },
+ {
+ "n": "欧美",
+ "v": "欧美"
+ }
+ ]
+ },
+ {
+ "key": "lang",
+ "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": "2014",
+ "v": "2014"
+ },
+ {
+ "n": "2013",
+ "v": "2013"
+ },
+ {
+ "n": "2012",
+ "v": "2012"
+ }
+ ]
+ },
+ {
+ "key": "by",
+ "name": "排序",
+ "value": [
+ {
+ "n": "全部排序",
+ "v": ""
+ },
+ {
+ "n": "时间排序",
+ "v": "time"
+ },
+ {
+ "n": "人气排序",
+ "v": "hits"
+ },
+ {
+ "n": "评分排序",
+ "v": "score"
+ }
+ ]
+ }
+ ],
+ "4": [
+ {
+ "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": "少年"
+ }
+ ]
+ },
+ {
+ "key": "area",
+ "name": "地区",
+ "value": [
+ {
+ "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": "2014",
+ "v": "2014"
+ },
+ {
+ "n": "2013",
+ "v": "2013"
+ },
+ {
+ "n": "2012",
+ "v": "2012"
+ }
+ ]
+ }
+ ],
+ "5": [
+ {
+ "key": "cateId",
+ "name": "类型",
+ "value": [
+ {
+ "n": "全部类型",
+ "v": ""
+ },
+ {
+ "n": "大陆综艺",
+ "v": "17"
+ },
+ {
+ "n": "港台综艺",
+ "v": "18"
+ }
+ ]
+ },
+ {
+ "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": "2014",
+ "v": "2014"
+ },
+ {
+ "n": "2013",
+ "v": "2013"
+ },
+ {
+ "n": "2012",
+ "v": "2012"
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/美食合集.json b/tvboxqq/多多/json/美食合集.json
new file mode 100644
index 0000000..f3eae14
--- /dev/null
+++ b/tvboxqq/多多/json/美食合集.json
@@ -0,0 +1,373 @@
+{
+ "classes": [
+ {
+ "type_name": "美食",
+ "type_id": "美食"
+ },
+ {
+ "type_name": "披萨",
+ "type_id": "披萨"
+ },
+ {
+ "type_name": "火锅",
+ "type_id": "火锅"
+ },
+ {
+ "type_name": "烧烤",
+ "type_id": "烧烤"
+ },
+ {
+ "type_name": "烤鱼",
+ "type_id": "烤鱼"
+ },
+ {
+ "type_name": "海鲜",
+ "type_id": "海鲜"
+ },
+ {
+ "type_name": "津菜",
+ "type_id": "津菜"
+ },
+
+{
+ "type_name": "川菜",
+ "type_id": "川菜"
+ },
+ {
+ "type_name": "湘菜",
+ "type_id": "湘菜"
+ },
+ {
+ "type_name": "鲁菜",
+ "type_id": "鲁菜"
+ },
+ {
+ "type_name": "苏菜",
+ "type_id": "苏菜"
+ },
+ {
+ "type_name": "闽菜",
+ "type_id": "闽菜"
+ },
+ {
+ "type_name": "粤菜",
+ "type_id": "粤菜"
+ },
+ {
+ "type_name": "东北菜",
+ "type_id": "东北菜"
+ },
+ {
+ "type_name": "冀菜",
+ "type_id": "冀菜"
+ },
+ {
+ "type_name": "豫菜",
+ "type_id": "豫菜"
+ },
+ {
+ "type_name": "鄂菜",
+ "type_id": "鄂菜"
+ },
+ {
+ "type_name": "本帮菜",
+ "type_id": "本帮菜"
+ },
+ {
+ "type_name": "客家菜",
+ "type_id": "客家菜"
+ },
+ {
+ "type_name": "赣菜",
+ "type_id": "赣菜"
+ },
+ {
+ "type_name": "京菜",
+ "type_id": "京菜"
+ },
+
+ {
+ "type_name": "浙菜",
+ "type_id": "浙菜"
+ },
+ {
+ "type_name": "徽菜",
+ "type_id": "徽菜"
+ },
+ {
+ "type_name": "湘菜",
+ "type_id": "湘菜"
+ },
+ {
+ "type_name": "凉菜",
+ "type_id": "凉菜"
+ },
+ {
+ "type_name": "蒸菜",
+ "type_id": "蒸菜"
+ },
+ {
+ "type_name": "日料",
+ "type_id": "日料"
+ },
+ {
+ "type_name": "点心",
+ "type_id": "点心"
+ },
+ {
+ "type_name": "面食",
+ "type_id": "面食"
+ },
+ {
+ "type_name": "汉堡",
+ "type_id": "汉堡"
+ },
+ {
+ "type_name": "小吃",
+ "type_id": "小吃"
+ },
+ {
+ "type_name": "素食",
+ "type_id": "素食"
+ },
+ {
+ "type_name": "韩国菜",
+ "type_id": "韩国菜"
+ },
+ {
+ "type_name": "泰国菜",
+ "type_id": "泰国菜"
+ },
+ {
+ "type_name": "穆斯林菜",
+ "type_id": "穆斯林菜"
+ },
+ {
+ "type_name": "土耳其菜系",
+ "type_id": "土耳其菜系"
+ },
+ {
+ "type_name": "法国菜",
+ "type_id": "法国菜"
+ },
+ {
+ "type_name": "意大利菜",
+ "type_id": "意大利菜"
+ },
+ {
+ "type_name": "希腊菜",
+ "type_id": "希腊菜"
+ },
+ {
+ "type_name": "德国菜",
+ "type_id": "德国菜"
+ },
+ {
+ "type_name": "西班牙菜",
+ "type_id": "西班牙菜"
+ },
+ {
+ "type_name": "阿拉伯菜",
+ "type_id": "阿拉伯菜"
+ },
+ {
+ "type_name": "伊朗菜",
+ "type_id": "伊朗菜"
+ },
+ {
+ "type_name": "中亚菜",
+ "type_id": "中亚菜"
+ },
+ {
+ "type_name": "糖尿病菜",
+ "type_id": "糖尿病菜"
+ },
+
+
+{
+ "type_name": "早餐",
+ "type_id": "早餐"
+ }
+ ],
+ "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7",
+ "filter": {
+"美食": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+]
+},
+
+{"key": "tid","name": "分类","value": [
+{"n": "全部","v": "美食"},
+{"n": "火锅","v": "火锅"},
+{"n": "面食","v": "面食"},
+
+{"n": "炒菜","v": "炒菜"},
+{"n": "点心","v": "点心"},
+{"n": "日料","v": "日料"},
+{"n": "小吃","v": "小吃"},
+{"n": "素食","v": "素食"},
+{"n": "川菜","v": "川菜"},
+{"n": "湘菜","v": "湘菜"},
+{"n": "鲁菜","v": "鲁菜"},
+{"n": "浙菜","v": "浙菜"},
+{"n": "苏菜","v": "苏菜"},
+{"n": "徽菜","v": "徽菜"},
+{"n": "闽菜","v": "闽菜"},
+{"n": "蒸菜","v": "蒸菜"},
+{"n": "凉菜","v": "凉菜"},
+
+{"n": "早餐","v": "早餐"}
+]
+}
+],
+
+
+"火锅": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+
+
+
+"披萨": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+]
+},
+
+{"key": "tid","name": "分类","value": [
+{"n": "全部","v": "披萨"},
+{"n": "选材","v": "披萨选材"},
+{"n": "制作","v": "披萨制作"}
+
+
+
+]
+}
+],
+
+
+"川菜": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+
+"日料": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+"湘菜": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+],
+
+"早餐": [
+{"key": "order","name": "排序","value": [
+{"n": "综合排序","v": "0"},
+{"n": "最多点击","v": "click"},
+{"n": "最新发布","v": "pubdate"},
+{"n": "最多弹幕","v": "dm"},
+{"n": "最多收藏","v": "stow"}
+]
+},
+{"key": "duration","name": "时长","value": [
+{"n": "全部时长","v": "0"},
+{"n": "60分钟以上","v": "4"},
+{"n": "30~60分钟","v": "3"},
+{"n": "10~30分钟","v": "2"},
+{"n": "10分钟以下","v": "1"}
+
+]
+}
+]
+}
+}
\ No newline at end of file
diff --git a/tvboxqq/多多/json/黑狐.json b/tvboxqq/多多/json/黑狐.json
new file mode 100644
index 0000000..bada014
--- /dev/null
+++ b/tvboxqq/多多/json/黑狐.json
@@ -0,0 +1,51 @@
+ {
+
+ "作者":"荷城茶秀",
+
+ "站名":"黑狐影视",
+
+ "主页url":"http://fagmn.com/",
+
+ "简介":"关注公众号【多多影音】获取更多影视资源,加入QQ频道【应用多多】防失联!提醒您请勿相信影片中的广告,以免上当受骗!+剧情介绍&&",
+
+ "导演":"导演:&&",
+
+ "主演":"主演:&&",
+
+ "影片状态":"更新:&&",
+
+ "影片类型":"类型:&&",
+
+ "影片地区":"地区:&&",
+
+ "影片年代":"年份:&&",
+
+ "数组":"stui-vodlist__thumb lazyload\"&&
[不包含:推荐]",
+
+ "标题":"&&",
+
+ "副标题":"text-right\">&&",
+
+ "图片":"data-original=\"&&\"",
+
+ "链接":"href=\"&&\"",
+
+ "搜索url":"http://fagmn.com/search.php;post;searchword={wd}",
+
+ "搜索数组":"stui-vodlist__thumb lazyload\"&&",
+
+ "搜索标题":"&&",
+
+ "搜索副标题":"text-right\">&&",
+
+ "搜索图片":"data-original=\"&&\"",
+
+ "搜索链接":"href=\"&&\"",
+
+ "线路数组":"#down&&[排序:奇>搜>咪]",
+
+ "线路标题":"⚡️多多接口⚡️+>&&",
+
+ "分类url":"http://fagmn.com/list/{cateId}_{catePg}.html;;akm0",
+
+ "分类":"电影$1#电视剧$2#综艺$4#动漫$3"}
\ No newline at end of file
diff --git a/tvboxqq/小米/api.json b/tvboxqq/小米/api.json
index 91f544a..e2eb788 100644
--- a/tvboxqq/小米/api.json
+++ b/tvboxqq/小米/api.json
@@ -6,7 +6,7 @@
"sites": [
{
"key": "豆豆",
- "name": "🎟豆瓣┃11.20接口仅测试使用",
+ "name": "🎟豆瓣┃11.27接口仅测试使用",
"type": 3,
"api": "csp_DouDou",
"searchable": 0,
@@ -127,11 +127,20 @@
"ext": "http://127.0.0.1:9978/file/tvfan/token.txt+4k|auto|fhd$$$https://api.wogg.xyz/$$$弹"
},
{
- "key": "左岸",
- "name": "🌊左岸┃切片",
+ "key": "sansan",
+ "name": "⭕️三三┃解析",
+ "type": 3,
+ "api": "csp_SP33",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0
+ },
+ {
+ "key": "赞赞",
+ "name": "➕赞赞┃切片",
"type": 3,
"api": "./api/drpy2.min.js",
- "ext": "./js/zuoan.js",
+ "ext": "./js/zanzan.js",
"searchable": 1,
"quickSearch": 1,
"changeable": 0
@@ -175,17 +184,6 @@
"changeable": 0,
"ext": "https://www.80yy1.com/"
},
- {
- "key": "玉米",
- "name": "🌽玉米┃采集",
- "type": 0,
- "api": "http://124.222.116.5/macos/api.php/provide/vod/at/xml/",
- "playUrl": "json:http://110.42.3.71:5000/api/jiexi/common?Key=scR2SCxYQGqNWKLltR&url=",
- "searchable": 1,
- "changeable": 0,
- "quickSearch": 1,
- "filterable": 1
- },
{
"key": "saohuo",
"name": "🔥骚火┃直连",
@@ -323,7 +321,7 @@
"ext": {
"站名": "南坊影视",
"主页url": "https://www.nfapp.fun/appto/v1/home/cateData?id=1",
- "请求头": "User-Agent$Dart/2.10 (dart:io)",
+ "请求头": "User-Agent$Dart/2.19 (dart:io)",
"二次截取": "\"data\"*[&&]",
"数组": "{&&}",
"图片": "\"vod_pic\"*\"&&\"[替换:mac>>http]",
@@ -340,13 +338,51 @@
"播放列表": "{&&}",
"跳转播放链接": "\"url\"*\"&&\"",
"播放标题": "\"name\"*\"&&\"",
- "跳转解析": "默认$空#主线[A]$http://110.42.2.247:880/analysis/json/?uid=2497&my=bgkmoqsuwBDILMPQU2&format=json&url=#主线[B]$https://daina.hk//api//?key=41b637ec6192036e0c35960addd26615&url=#主线[C]$https://wpjx.chanchuan.top/znjsonapi.php?url=#主线[D]$https://sp.huihuidns.cn//api//?key=aTRZhPX8ESjgWVdwDR&url=",
+ "跳转解析": "默认$空#主线[A]$#主线[B]$https://daina.hk//api//?key=41b637ec6192036e0c35960addd26615&url=#主线[C]$https://wpjx.chanchuan.top/znjsonapi.php?url=#主线[D]$https://sp.huihuidns.cn//api//?key=aTRZhPX8ESjgWVdwDR&url=",
"播放链接": "解析+\"url\"*\"&&\"",
"搜索url": "https://www.nfapp.fun/appto/v1/vod/getVodSearch?wd={wd}&page=1&type",
"分类url": "https://www.nfapp.fun/appto/v1/vod/getLists?area={area}&lang={lang}&year={year}&type_id={cateId}&area=&order=time&type_name=&page={catePg}&pageSize=21;;u0t",
"分类": "电影$2#电视剧$1#综艺$4#动漫$3"
}
},
+ {
+ "key": "夜猫",
+ "name": "🐱夜猫┃影视",
+ "type": 3,
+ "api": "csp_XBPQ",
+ "jar": "./jars/saohuo.jar",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": {
+ "站名": "夜猫影视",
+ "主页url": "http://43.248.97.249:5564/appto/v1/home/cateData?id=1",
+ "请求头": "User-Agent$Dart/2.19 (dart:io)",
+ "二次截取": "\"data\"*[&&]",
+ "强制解析": "0",
+ "数组": "{&&}",
+ "图片": "\"vod_pic\"*\"&&\"",
+ "标题": "\"vod_name\"*\"&&\"",
+ "副标题": "\"vod_remarks\"*\"&&\"",
+ "链接": "http://43.248.97.249:5564/addons/apptov4/app.php/v1/vod/getVod?id=+\"vod_id\":&&,+_platform=android&__ic=lqGGz9NM4aHVoD8jSoFFcmfeQ0zcjkG0a6dOiCPe4lHMGzMEigPzyXuhccQRZf6D75pAyu5qXZa8Woq50p8Xvf11kZq38Yk6UAkKR0nWIPWyUN%2BrL68%2FTxsj%2Fs%2F%2Bdvz3d9mhjzeyYUyI71OEzzkEnw%3D%3D",
+ "线路数组": "\"player_info\":{&&}",
+ "线路标题": "\"show\"*\"&&\"",
+ "导演": "vod_director\"*\"&&\"",
+ "主演": "vod_actor\"*\"&&\"",
+ "简介": "vod_blurb\"*\"&&\"",
+ "播放二次截取": "&&[替换]",
+ "播放数组": "urls*\\[&&\\]",
+ "播放列表": "{&&}",
+ "跳转播放链接": "\"url\"*\"&&\"",
+ "播放标题": "\"name\"*\"&&\"",
+ "跳转解析": "默认$空#蓝光线路$https://daina.hk//api//?key=0555f1657f53450b3639bc1c48440db2&url=#官[YK]$https://api.json.icu//api//?key=c2ca5bcd969b7de3823eba1518fb712d&url=#官[MG]$https://api.json.icu//api//?key=c2ca5bcd969b7de3823eba1518fb712d&url=#官[QY]$https://api.json.icu//api//?key=c2ca5bcd969b7de3823eba1518fb712d&url=#官[TX]$https://api.json.icu//api//?key=c2ca5bcd969b7de3823eba1518fb712d&url=#蓝光备用$http://110.42.2.247:880//analysis//json//?uid=2441&my=egklmorFGJPQRUXY18&url=",
+ "播放链接": "解析+\"url\"*\"&&\"",
+ "搜索url": "http://43.248.97.249:5564/appto/v1/vod/getVodSearch?wd={wd}&page=1&type",
+ "搜索模式": "1",
+ "分类url": "http://43.248.97.249:5564/addons/apptov4/app.php/v1/vod/getLists?area=&lang=&year=&order=time&type_id={cateId}&type_name=&page={catePg}&pageSize=21;;u0",
+ "分类": "电影$1#电视剧$2#动漫$3#综艺$4"
+ }
+ },
{
"key": "达人",
"name": "✈️达人┃聚合",
@@ -411,22 +447,6 @@
"api": "./api/drpy1.min.js",
"ext": "./js/jp.js"
},
- {
- "key": "琪琪资源",
- "name": "🫙官源┃切片",
- "type": 1,
- "api": "https://playersll.gaoxin155.com.cn/api.php/provide/vod/",
- "playerType": 2,
- "searchable": 1,
- "changeable": 1,
- "quickSearch": 1,
- "categories": [
- "连续剧",
- "电影",
- "综艺",
- "动漫"
- ]
- },
{
"key": "嘿嘿2",
"name": "📰嘿嘿┃影视",
@@ -1018,7 +1038,7 @@
{
"name": "稻香🌾",
"type": 1,
- "url": "http://42.157.128.109:2323/CH/app/tv.php?url=",
+ "url": "",
"ext": {
"flag": [
"mgtv",
@@ -1048,9 +1068,9 @@
}
},
{
- "name": "左岸🌾",
+ "name": "米饭🌾",
"type": 1,
- "url": "https://api.tyun77.cn/api.php/provide/parseDicturl?url=",
+ "url": "https://json.oorl.cn/api/?key=gajpAki7cu8560ro4C&url=",
"ext": {
"flag": [
"爱奇艺",
@@ -1072,14 +1092,14 @@
"芒果"
],
"header": {
- "User-Agent": "okhttp/3.12.0"
+ "User-Agent": "okhttp/4.1.0"
}
}
},
{
"name": "米太硬",
"type": 1,
- "url": "https://cache.json.icu/s1804857380.php?url=",
+ "url": "https://api.huohua.vip/api/?key=8eTRVUKvl0tvEzlvzO&url=",
"ext": {
"flag": [
"qq",
@@ -1146,24 +1166,10 @@
{
"name": "世界🥭",
"type": 1,
- "url": "http://175.178.183.192:86/api/?key=b832096861839f56066bf4ae7a0d7be0&url=",
+ "url": "http://110.42.2.247:880/analysis/json/?uid=2500&my=dmnoxzADHKMOQSXZ01&url=",
"ext": {
"flag": [
- "qq",
- "mgtv",
- "YuMi-vip"
- ]
- }
- },
- {
- "name": "比u比u🥭",
- "type": 1,
- "url": "https://jxjson.cf/json.php?url=",
- "ext": {
- "flag": [
- "qq",
- "mgtv",
- "YuMi-vip"
+ "seven"
]
}
}
@@ -1323,6 +1329,7 @@
],
"flags": [
"优酷视频",
+ "seven",
"youku",
"seven",
"优酷",
diff --git a/tvboxqq/小米/api/drpy1.min.js b/tvboxqq/小米/api/drpy1.min.js
index 32e0055..b803166 100644
--- a/tvboxqq/小米/api/drpy1.min.js
+++ b/tvboxqq/小米/api/drpy1.min.js
@@ -1 +1 @@
-import cheerio from"./67bcd7dc69abbaa63a0317b99bdc2b7a.js";import"./a06f092014cc8f33300952d8e10e4cad.js";import 模板 from"./d1b1068cacca8db3ee0c48a41bc4f94c.js";import{gbkTool}from"./04fee58a02b31e2260adff80a623b945.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.46beta12 20230709";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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||"https://mirror.ghproxy.com/raw.githubusercontent.com/hjdhnx/dr_py/main/libs/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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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.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)}}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);pre();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="";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){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: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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./67bcd7dc69abbaa63a0317b99bdc2b7a.js";import"./a06f092014cc8f33300952d8e10e4cad.js";import 模板 from"./d1b1068cacca8db3ee0c48a41bc4f94c.js";import{gbkTool}from"./04fee58a02b31e2260adff80a623b945.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.46beta12 20230709";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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||"https://gh-proxy.com/raw.githubusercontent.com/hjdhnx/dr_py/main/libs/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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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.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)}}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);pre();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="";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){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: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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/小米/api/drpy2.min.js b/tvboxqq/小米/api/drpy2.min.js
index 5d8fcad..6559d98 100644
--- a/tvboxqq/小米/api/drpy2.min.js
+++ b/tvboxqq/小米/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/小米/js/zanzan.js b/tvboxqq/小米/js/zanzan.js
new file mode 100644
index 0000000..34f5f25
--- /dev/null
+++ b/tvboxqq/小米/js/zanzan.js
@@ -0,0 +1,175 @@
+var rule = {
+ title: 'zanzan', // csp_AppYsV2
+ host: 'http://154.12.21.186:119/api.php/app/',
+ url: 'video?tid=fyclassfyfilter&limit=20&pg=fypage',
+ filter_url:'&class={{fl.class}}&area={{fl.area}}&lang={{fl.lang}}&letter={{fl.letter}}&year={{fl.year}}&by={{fl.by}}',
+ filter:{
+ "1":[{"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":"网络电影"}]},{"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":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","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":"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"}]}],
+ "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":"其他"}]},{"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":"lang","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":"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":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]}],
+ "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":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"lang","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":"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"}]}],
+ "4":[{"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":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","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":"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"}]}]
+ },
+ detailUrl:'/detail?vod_id=fyid',
+ searchUrl: '/search?text=**&pg=fypage',
+ searchable: 2,
+ quickSearch: 0,
+ filterable:1,//是否启用分类筛选,
+ headers:{'User-Agent':'okhttp/4.1.0'},
+ timeout:5000,
+ // 分类筛选 /api.php/app/nav || /xgapp.php/v1/nav || /api.php/v1.vod/types
+ class_name:'电影&连续剧&综艺&动漫',
+ class_url:'1&2&3&4',
+ play_parse: true,
+ lazy:'js:if(/m3u8|mp4/.test(input)){input}else{let purl=request("http://103.42.31.123:5821/jx/?url="+input);input={jx:0,url:JSON.parse(purl).url,parse:0}}',
+ limit:6,
+ // 图片来源:'@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',
+ 推荐:`js:
+ let d = [];
+ let jsondata = [];
+ let videoList = [];
+ if (/v1\\.vod/.test(HOST)) {
+ if(HOST.endsWith('/')){
+ jsondata = JSON.parse(request(HOST + 'vodPhbAll'));
+ } else {
+ jsondata = JSON.parse(request(HOST + '/vodPhbAll'));
+ }
+ videoList = jsondata.data.list;
+ } else {
+ if(HOST.endsWith('/')){
+ jsondata = JSON.parse(request(HOST + 'index_video'));
+ } else {
+ jsondata = JSON.parse(request(HOST + '/index_video'));
+ }
+ videoList = /xgapp/.test(HOST) ? jsondata.data : jsondata.list;
+ }
+ // log('videoList =========> '+stringify(videoList));
+ videoList.forEach((it,idex) => {
+ let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ;
+ vlist.forEach(it => {
+ d.push({
+ url:it.vod_id,
+ title:it.vod_name,
+ img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
+ desc:it.vod_remarks,
+ });
+ });
+ });
+ setResult(d);
+ `,
+ 一级:`js:
+ let d = [];
+ let jsondata = [];
+ let videoList = [];
+ if (/v1\\.vod/.test(HOST)) {
+ input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page=');
+ jsondata = JSON.parse(request(input));
+ videoList = jsondata.data.list;
+ } else {
+ input = HOST + '/'+ input.split('/')[4];
+ jsondata = JSON.parse(request(input));
+ videoList = jsondata.list || jsondata.data;
+ }
+ // log('videoList =========> '+stringify(videoList));
+ videoList.forEach(it => {
+ d.push({
+ url:it.vod_id,
+ title:it.vod_name,
+ img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
+ desc:it.vod_remarks,
+ });
+ });
+ setResult(d);
+ `,
+ 二级:`js:
+ if (/v1\\.vod/.test(HOST)) {
+ input = HOST + '/'+ input.split('/')[3];
+ } else {
+ input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id');
+ }
+ try {
+ let html = request(input);
+ html = JSON.parse(html);
+ let node = /xgapp/.test(HOST) ? html.data.vod_info : html.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.strip()
+ };
+ if (typeof play_url === 'undefined') {
+ var play_url = ''
+ }
+ let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player;
+ if (episodes != '') {
+ let playMap = {};
+ episodes.forEach(ep => {
+ let from = [];
+ if (/v1\\.vod/.test(HOST)) {
+ from = ep.player_info.from||ep.player_info.show||ep.from||ep.show;
+ } else {
+ from = ep.code||ep.name;
+ }
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = []
+ }
+ let parse_api = '';
+ if (/v1\\.vod/.test(HOST)) {
+ parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2;
+ // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api;
+ } else {
+ parse_api = ep.parse_api;
+ }
+ log('parse_api =========> '+parse_api);
+ if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) {
+ parse_api = parse_api.replaceAll('..','.') ;
+ ep.url = ep.url.replaceAll('$','$'+parse_api);
+ }
+ playMap[from].push(ep.url)
+ });
+ let playFrom = [];
+ let playList = [];
+ Object.keys(playMap).forEach(key => {
+ playFrom.push(key);
+ playList.push(playMap[key])
+ });
+ VOD.vod_play_from = playFrom.join('$$$');
+ VOD.vod_play_url = playList.join('$$$');
+ } else {
+ VOD.vod_play_from = node.vod_play_from;
+ VOD.vod_play_url = node.vod_play_url;
+ }
+ } catch (e) {
+ log("获取二级详情页发生错误:" + e.message);
+ }
+ `,
+ 搜索:`js:
+ let d = [];
+ let jsondata = [];
+ let videoList = [];
+ if (/v1\\.vod/.test(HOST)) {
+ input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page=');
+ jsondata = JSON.parse(request(input));
+ videoList = jsondata.data.list;
+ } else {
+ input = HOST + '/'+ input.split('/')[3]
+ jsondata = JSON.parse(request(input));
+ videoList = jsondata.list || jsondata.data;
+ }
+ // log('videoList =========> '+stringify(videoList));
+ videoList.forEach(it => {
+ d.push({
+ url:it.vod_id,
+ title:it.vod_name,
+ img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
+ desc:it.vod_remarks,
+ });
+ });
+ setResult(d);
+ `,
+}
\ No newline at end of file
diff --git a/tvboxqq/小米/spider.jar b/tvboxqq/小米/spider.jar
index 6953bcc..a5b5ff6 100644
Binary files a/tvboxqq/小米/spider.jar and b/tvboxqq/小米/spider.jar differ
diff --git a/tvboxqq/少儿频道/api/drpy2.min.js b/tvboxqq/少儿频道/api/drpy2.min.js
index f5c3b67..0120aa4 100644
--- a/tvboxqq/少儿频道/api/drpy2.min.js
+++ b/tvboxqq/少儿频道/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.41beta14 20230428";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";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 NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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);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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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);pre();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="";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){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: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"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.41beta14 20230428";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";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 NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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);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.图片来源){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)}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});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.图片来源){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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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);pre();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="";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){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: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/tvboxqq/少儿频道/js/优酷.js b/tvboxqq/少儿频道/js/优酷.js
index 745dbee..6b6cf87 100644
--- a/tvboxqq/少儿频道/js/优酷.js
+++ b/tvboxqq/少儿频道/js/优酷.js
@@ -1,39 +1 @@
-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": "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": "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": "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": "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": "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": "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);',
-}
+download rate exceeds the limit, please purchase high-speed traffic
\ No newline at end of file
diff --git a/tvboxqq/少儿频道/js/异兽.js b/tvboxqq/少儿频道/js/异兽.js
index 79625b7..6b6cf87 100644
--- a/tvboxqq/少儿频道/js/异兽.js
+++ b/tvboxqq/少儿频道/js/异兽.js
@@ -1,39 +1 @@
-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': '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': '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': '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': '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': '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': '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': '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:'15&4',
- 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;i200){for(let i=2;i0?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_id=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);',
-}
\ No newline at end of file
+download rate exceeds the limit, please purchase high-speed traffic
\ No newline at end of file
diff --git a/tvboxqq/少儿频道/js/腾讯.js b/tvboxqq/少儿频道/js/腾讯.js
index b5ae3bc..6b6cf87 100644
--- a/tvboxqq/少儿频道/js/腾讯.js
+++ b/tvboxqq/少儿频道/js/腾讯.js
@@ -1,39 +1 @@
-var rule = {
- title:'腾云驾雾',
- host:'https://v.%71%71.com',
- // homeUrl:'/channel/choice?listpage=1&channel=choice&sort=18&_all=1',
- homeUrl:'/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
- detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
- // searchUrl:'https://node.video.%71%71.com/x/api/msearch?keyWord=**',
- searchUrl:'/x/search/?q=**&stag=fypage',
- // searchUrl:'http://s.video.qq.com/smartbox?plat=2&ver=0&num=29&otype=json&query=**',
- 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:{'choice': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'doco': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}]},
- headers:{
- 'User-Agent':'PC_UA'
- },
- timeout:5000,
- // class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
- cate_exclude:'会员|游戏|全部',
- class_name:'少儿&动漫',
- class_url:'child&cartoon',
- limit:20,
- // play_parse:true,
- // 手动调用解析请求json的url,此lazy不方便
- lazy:'js:input=""+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',
- // 二级:{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.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites","lists":"data.playlinksdetail.#idv.default_url"},
- 二级:'',
- 二级:'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;i1?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$$$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: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(json.c.type===10){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=2&data_type=3&video_type=8&plname=qq&otype=json";let o_html=fetch(dataUrl,fetch_params);eval(o_html);video_lists=[];let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&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 if(video_lists.length===1){d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i1?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$$$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("$$$");',
- // 搜索:'json:uiData;data[0].title;data[0].posterPic;.titleMarkLabelList[1].primeText;data[0].id;data[0].publishDate',
- 搜索:'js:let d=[];pdfa=jsp.pdfa;pdfh=jsp.pdfh;pd=jsp.pd;let html=request(input);let baseList=pdfa(html,"body&&.result_item_v");baseList.forEach(function(it){let longText=pdfh(it,".result_title&&Text");let shortText=pdfh(it,".sub&&Text");let fromTag=pdfh(it,".result_source&&Text");let score=pdfh(it,".result_score&&Text");let content=pdfh(it,".desc_text&&Text");let url=pdfh(it,".result_title&&a&&href");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:"⭐"+longText.split(shortText)[1]+"-"+shortText+" "+score})}});setResult(d);',
- // 搜索:'json:item;word;dc;class;id;sn',
-}
\ No newline at end of file
+download rate exceeds the limit, please purchase high-speed traffic
\ No newline at end of file
diff --git a/tvboxqq/少儿频道/lives/redirect.txt b/tvboxqq/少儿频道/lives/redirect.txt
index aa85abe..6b6cf87 100644
--- a/tvboxqq/少儿频道/lives/redirect.txt
+++ b/tvboxqq/少儿频道/lives/redirect.txt
@@ -1,1161 +1 @@
-少儿频道,#genre#
-
-
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787
-
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/500k.m3u8
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/m3u8:500k/live.m3u8
-猫和老鼠,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c52_lb_83_600_t10/c52_lb_83_600_t10.m3u8?key=0b292c335e5837e94e2f0ba45f46717fa
-童年经典,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-玩具乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?key=051d9240247766709d65dde3fcd5cd7bb
-怀旧动画,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c53_lb_86_600_t10/c53_lb_86_600_t10.m3u8?key=0b292c335e5837e943a226d3c381f872a
-巧虎,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_135_600_t10/c55_lb_135_600_t10.m3u8?key=0f2a06793124310bcefefdf4e48b17f9a
-宝宝课堂,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key=0b292c335e5837e94abaa8d3135e83ce3
-奥特曼,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_210_600_t10/c57_lb_210_600_t10.m3u8?key=0b292c335e5837e94abe4b846218bbc95
-喜羊羊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_91_1080P_t10/c55_lb_91_1080P_t10.m3u8?key=0b292c335e5837e943e554ef181bdcec1
-名侦探柯南,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_157_600_t10/c54_lb_157_600_t10.m3u8?key=0b292c335e5837e948e91dd5d11efa525
-动画小天地,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_139_600_t10/c55_lb_139_600_t10.m3u8?key=0f2a06793124310bc475d77d809f3ab51
-兔小贝尔歌,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_136_600_t10/c54_lb_136_600_t10.m3u8?key=0b292c335e5837e94ae056154862a578b
-儿童乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?key=0b292c335e5837e943410c2bfa7a7387e
-儿歌大全,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key=0f2a06793124310bc8499ebf63370c51a
-倒霉熊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_140_600_t10/c54_lb_140_600_t10.m3u8?key=0f2a06793124310bccc587b5da61b57da
-亲子小游戏,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c56_lb_178_600_t10/c56_lb_178_600_t10.m3u8?key=0b292c335e5837e94ffc1113a2140b54
-亲子启蒙,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key=0f2a06793124310bc21adebc9f02a9735
-熊大过年,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ae265653fe149069c3b53e31caaf060/1200.m3u8
-金鹰卡通,http://121.51.249.6/4309-tx.otvstream.otvcloud.com/otv/skcc/live/channel43025/index.m3u8
-金鹰卡通,http://111.59.189.40:8445/tsfile/live/1016_1.m3u8
-金鹰卡通,http://39.134.115.163:8080/PLTV/88888910/224/3221225721/index.m3u8
-金鹰卡通,http://222.175.159.226:808/hls/72/index.m3u8
-金鹰卡通,http://39.134.115.163:8080/PLTV/88888910/224/3221225721/index.m3u8
-卡酷少儿,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225743/index.m3u8?
-卡酷少儿,http://39.135.138.60:18890/PLTV/88888888/224/3221225677/index.m3u8
-卡酷少儿,http://111.59.189.40:8445/tsfile/live/1015_1.m3u8
-卡酷少儿,http://222.175.159.226:808/hls/73/index.m3u8
-优漫卡通,http://222.175.159.226:808/hls/74/index.m3u8
-优漫卡通,https://live-hls.jstv.com/livezhuzhan/ymkt.m3u8?upt=230be0e52510710360
-哈哈炫动,http://lu1.cc/a/play/xjyx.php?id=hhxd
-哈哈炫动,http://lu1.cc/c/tv/sjtv/sh/bst5g.php?id=hhxd
-哈哈炫动,http://222.175.159.226:808/hls/75/index.m3u8
-哈哈炫动,http://39.135.138.59:18890/PLTV/88888910/224/3221225720/index.m3u8
-嘉佳卡通,http://hwrr.jx.chinamobile.com:8080/PLTV/88888888/224/3221226193/index.m3u8
-嘉佳卡通,http://39.135.138.58:18890/PLTV/88888888/224/3221226193/index.m3u8
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/500k.m3u8
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/m3u8:500k/live.m3u8
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/360p.m3u8
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/720p.m3u8
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787
-河北少儿,http://live6.plus.hebtv.com/sekjx/hd/live.m3u8
-江西少儿,http://39.134.115.191:8080/ysten.jx.chinamobile.com/PLTV/88888888/224/3221225577/2/index.m3u8?fmt=ts2hls
-河北少儿科教,http://live6.plus.hebtv.com/sekjx/hd/live.m3u8
-猫和老鼠,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c52_lb_83_600_t10/c52_lb_83_600_t10.m3u8?key=0b292c335e5837e94e2f0ba45f46717fa
-童年经典,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-玩具乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?key=051d9240247766709d65dde3fcd5cd7bb
-怀旧动画,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c53_lb_86_600_t10/c53_lb_86_600_t10.m3u8?key=0b292c335e5837e943a226d3c381f872a
-巧虎,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_135_600_t10/c55_lb_135_600_t10.m3u8?key=0f2a06793124310bcefefdf4e48b17f9a
-宝宝课堂,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key=0b292c335e5837e94abaa8d3135e83ce3
-奥特曼,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_210_600_t10/c57_lb_210_600_t10.m3u8?key=0b292c335e5837e94abe4b846218bbc95
-喜羊羊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_91_1080P_t10/c55_lb_91_1080P_t10.m3u8?key=0b292c335e5837e943e554ef181bdcec1
-名贞探柯南,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_157_600_t10/c54_lb_157_600_t10.m3u8?key=0b292c335e5837e948e91dd5d11efa525
-动画小天地,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_139_600_t10/c55_lb_139_600_t10.m3u8?key=0f2a06793124310bc475d77d809f3ab51
-兔小贝尔歌,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_136_600_t10/c54_lb_136_600_t10.m3u8?key=0b292c335e5837e94ae056154862a578b
-儿童乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?key=0b292c335e5837e943410c2bfa7a7387e
-儿歌大全,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key=0f2a06793124310bc8499ebf63370c51a
-倒霉熊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_140_600_t10/c54_lb_140_600_t10.m3u8?key=0f2a06793124310bccc587b5da61b57da
-亲子小游戏,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c56_lb_178_600_t10/c56_lb_178_600_t10.m3u8?key=0b292c335e5837e94ffc1113a2140b54
-亲子启蒙,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key=0f2a06793124310bc21adebc9f02a9735
-熊大过年,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ae265653fe149069c3b53e31caaf060/1200.m3u8
-少儿动画,#genre#
-
-爱奇艺兔小贝,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://aliyuncocsouth.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8
-爱奇艺兔小贝,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://rhcdn.verycloud.cn/baiducdncmn2.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://lvbaiducdncmn.inter.ptqy.gitv.tv/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://ib302.zjcdn.com/baiducdncmn3.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://[2409:8c54:1000:6:8000:0:b00:87]/baiducdncmn3.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8
-爱奇艺兔小贝,http://baiducdncmn3.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8
-爱奇艺兔小贝,http://baiducdncmn2.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://bdcdncmn3.inter.71edge.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://118.26.120.33:55336/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8
-爱奇艺兔小贝,http://wtv.weetai.cn/iptv/2022/tyzb04.php?id=1800623
-爱奇艺小猪佩奇,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8?key=08b3f8f3a31f12001f96a0f53163b0596
-爱奇艺小猪佩奇,http://aliyuncocsouth.inter.iqiyi.com/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺小猪佩奇,http://[2409:8c54:1000:6:8000:0:b00:87]/baiducdncmn3.inter.iqiyi.com/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺小猪佩奇,http://rhcdn.verycloud.cn/baiducdncmn2.inter.iqiyi.com/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺小猪佩奇,http://baiducdncmn3.inter.iqiyi.com/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺小猪佩奇,http://baiducdncmn2.inter.iqiyi.com/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8?key
-爱奇艺小猪佩奇,http://118.26.120.33:55336/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺小猪佩奇,http://wtv.weetai.cn/iptv/2022/tyzb04.php?id=1800487
-爱奇艺小猪佩奇,http://fangsong.live/hls/iqiyi.php?id=180048722
-爱奇艺贝瓦儿歌,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_188_600_t10/c56_lb_188_600_t10.m3u8?key
-爱奇艺贝瓦儿歌,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c56_lb_188_600_t10/c56_lb_188_600_t10.m3u8?key
-爱奇艺贝瓦儿歌,http://wtv.weetai.cn/iptv/2022/tyzb04.php?id=3800666
-爱奇艺宝宝巴士,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_153_720P_t10/c55_lb_153_720P_t10.m3u8?key
-爱奇艺宝宝巴士,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c55_lb_153_720P_t10/c55_lb_153_720P_t10.m3u8?key
-爱奇艺宝宝巴士,http://fangsong.live/hls/iqiyi.php?id=180064122
-爱奇艺宝宝巴士,http://wtv.weetai.cn/iptv/2022/tyzb04.php?id=1800641
-爱奇艺儿歌大全,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key
-爱奇艺儿歌大全,http://fangsong.live/hls/iqiyi.php?id=380069422
-爱奇艺儿歌大全,http://wtv.weetai.cn/iptv/2022/tyzb04.php?id=3800694
-龙珠z,http://txtest-xp2p.p2p.huya.com/src/146501201-146501201-629217867119722496-293125858-10057-A-0-1.xs
-龙珠Z,https://240ex945xdxx24.ourdvsss.com/ws.flv.huya.com/src/1199599168151-1199599168151-5597598952384888832-2399198459758-10057-A-0-1.flv?wsSecret=8910cf901b68f62c7bdaf38525a320e2&wsTime=63631eab&seqid=3132270029726&ctype=huya_live&ver=1&txyp=o%3Aczeic1%3B&fs=bgct&ratio=2000&u=1467400918030&t=100&sv=2211021019&wsiphost=ipdbme&wsrid_tag=63631ead_CS-000-01o9P27_30968-4850-s1t1667440301618&wsmp_tag=0&wsdcr_tag=0
-七龍珠改,http://txtest-xp2p.p2p.huya.com/src/1524418081-1524418081-6547325803326078976-3048959618-10057-A-0-1.xs
-七龍珠改,https://epg.112114.xyz/huya/11601966#https://epg.112114.xyz/huya/11601966
-喜羊羊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_91_1080P_t10/c55_lb_91_1080P_t10.m3u8?
-key=0b292c335e5837e943e554ef181bdcec1
-蜡笔小新国语轮播,http://zzy789.xyz/bili.php?id=22765729
-野原新之助蜡笔小新新番24H随机播放,http://zzy789.xyz/bili.php?id=21507503
-[蜡笔小新]高清国语24小时轮播,http://zzy789.xyz/bili.php?id=22683218
-樱桃小丸子-,http://fangsong.live/hls/bili.php?id=11765640
-蜡笔小新-,http://fangsong.live/hls/bili.php?id=11579951
-猫和老鼠,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c52_lb_83_600_t10/c52_lb_83_600_t10.m3u8?key=0b292c335e5837e94e2f0ba45f46717fa
-动漫秀场,http://58.34.204.67:9901/tsfile/live/1009_1.m3u8#http://183.207.255.188/live/program/live/dmxchd/4000000/mnf.m3u8#http://[2409:8087:3428:20:500::1009]:6610/PLTV/88888888/224/3221226741/index.m3u8?servicetype=1&IASHttpSessionId=RR423820220409134714119178
-淘BABY,http://111.13.42.6/PLTV/88888888/224/3221226554/1.m3u8
-黑莓动画,http://hwrr.jx.chinamobile.com:8080/PLTV/88888888/224/3221225672/index.m3u8
-卡酷少儿,http://39.135.138.60:18890/PLTV/88888888/224/3221225677/index.m3u8$超清1080P
-卡酷少儿,http://111.59.189.40:8445/tsfile/live/1015_1.m3u8$超清1080P
-卡酷少儿,http://222.175.159.226:808/hls/73/index.m3u8?$标清576P
-卡酷少兒,http://gxyl-dl001.8866.org:8181/tsfile/live/1091_1.m3u8
-卡酷少兒,http://111.13.42.230/PLTV/88888888/224/3221226558/1.m3u8
-金鹰卡通,http://111.59.189.40:8445/tsfile/live/1016_1.m3u8$超清1080P
-金鹰卡通,http://39.134.115.163:8080/PLTV/88888910/224/3221225721/index.m3u8$标清576P
-优漫卡通,http://222.175.159.226:808/hls/74/index.m3u8$标清576P
-嘉佳卡通,http://gxyl-dl001.8866.org:8181/tsfile/live/1068_1.m3u8
-嘉佳卡通,http://gxyl-dl001.8866.org:8181/tsfile/live/1006_1.m3u8
-優漫卡通,http://39.135.138.59:18890/PLTV/88888910/224/3221225665/index.m3u8
-優漫卡通,http://hwrr.jx.chinamobile.com:8080/PLTV/88888888/224/3221225665/index.m3u8
-優漫卡通,http://121.51.249.6/4403-tx.otvstream.otvcloud.com/otv/skcc/live/channel53/index.m3u8
-優漫卡通,http://183.207.249.15/PLTV/4/224/3221225933/index.m3u8
-優漫卡通,http://hwrr.jx.chinamobile.com:8080/PLTV/88888888/224/3221225665/index.m3u8
-優漫卡通,http://jyjxy.7766.org:808/hls/64/index.m3u8
-哈哈炫动,http://222.175.159.226:808/hls/75/index.m3u8$标清576P
-哈哈炫动,http://183.207.255.188/live/program/live/hhxdhd/4000000/mnf.m3u8$超清1080P
-哈哈炫动,http://111.40.196.32/PLTV/88888888/224/3221225534/index.m3u8$高清720P
-哈哈炫动,http://39.135.138.59:18890/PLTV/88888910/224/3221225720/index.m3u8$标清576P
-哈哈炫动,http://111.40.196.30/PLTV/88888888/224/3221225609/index.m3u8$标清540P
-哈哈炫动,http://hwrr.jx.chinamobile.com:8080/PLTV/88888888/224/3221225720/index.m3u8
-哈哈炫动,http://112.25.48.13/live/program/live/hhxdhd/4000000/mnf.m3u8
-靖天卡通,http://50.7.220.74:8278/jingtiancartoon_twn/playlist.m3u8?tid=m1465dab025b5&ct=18335&tsum=ba935e583d90bfbe1d1d9662e9ac600c
-新動漫,http://jyjxy.7766.org:808/hls/67/index.m3u8
-動漫輪播,http://epg.112114.xyz/douyu/206858
-福州少儿,http://live.zohi.tv/video/s10001-sepd-4/index.m3u8$高清720P
-福州少儿,http://live.zohi.tv/video/s10001-sepd-4/index.m3u8?zfud$高清720P
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/500k.m3u8$高清720P
-南京少儿,http://live.nbs.cn/channels/njtv/sepd/m3u8:500k/live.m3u8$高清720P
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8$高清720P
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/360p.m3u8$高清720P
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/720p.m3u8$高清720P
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787$高清720P
-浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787
-索尼+少儿动画,https://livecdn.fptplay.net/hda3/animaxport_2000.stream/.m3u8
-江西少儿,http://local.live.jxtvcn.com.cn/live-jxtv/tv_jxtv6.m3u8
-江西少儿,http://39.134.115.191:8080/ysten.jx.chinamobile.com/PLTV/88888888/224/3221225577/2/index.m3u8?fmt=ts2hls
-甘肃少儿,http://39.134.32.102:6610/270000001111/1110000327/index.m3u8?IASHttpSessionId=OTT
-河北少儿科教,http://live6.plus.hebtv.com/sekjx/hd/live.m3u8
-童年经典,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-玩具乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?
-key=051d9240247766709d65dde3fcd5cd7bb
-怀旧动画,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c53_lb_86_600_t10/c53_lb_86_600_t10.m3u8?
-key=0b292c335e5837e943a226d3c381f872a
-巧虎,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_135_600_t10/c55_lb_135_600_t10.m3u8?
-key=0f2a06793124310bcefefdf4e48b17f9a
-宝宝课堂,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?
-key=0b292c335e5837e94abaa8d3135e83ce3
-名贞探柯南,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_157_600_t10/c54_lb_157_600_t10.m3u8?
-key=0b292c335e5837e948e91dd5d11efa525
-动画小天地,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_139_600_t10/c55_lb_139_600_t10.m3u8?
-key=0f2a06793124310bc475d77d809f3ab51
-兔小贝尔歌,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_136_600_t10/c54_lb_136_600_t10.m3u8?
-key=0b292c335e5837e94ae056154862a578b
-儿童乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?
-key=0b292c335e5837e943410c2bfa7a7387e
-儿歌大全,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?
-key=0f2a06793124310bc8499ebf63370c51a
-倒霉熊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_140_600_t10/c54_lb_140_600_t10.m3u8?
-key=0f2a06793124310bccc587b5da61b57da
-亲子小游戏,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c56_lb_178_600_t10/c56_lb_178_600_t10.m3u8?
-key=0b292c335e5837e94ffc1113a2140b54
-亲子启蒙,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?
-key=0f2a06793124310bc21adebc9f02a9735
-熊大过年,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ae265653fe149069c3b53e31caaf060/1200.m3u8
-浙江少兒,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
-浙江少兒,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8
-浙江少兒,http://hw-m-l.cztv.com/channels/lantian/channel08/1080p.m3u8?k=1a7559a51eeb880b021619a07f463ac4&t=1577153787
-浙江少兒,http://hw-m-l.cztv.com/channels/lantian/channel08/360p.m3u8
-浙江少兒,http://hw-m-l.cztv.com/channels/lantian/channel08/720p.m3u8
-兒童樂園,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?key=0b292c335e5837e943410c2bfa7a7387e
-GOOD卡通,http://live.streamingfast.net/osmflivech45.m3u8
-GOOD卡通,https://dqhxk7sbp7xog.cloudfront.net/osmflivech45.m3u8
-動漫直播間,http://epg.112114.xyz/douyu/1487654
-動漫推薦官方直播間,http://epg.112114.xyz/douyu/5187099
-童年動漫點播,http://epg.112114.xyz/douyu/7256376
-童年經典,http://118.26.120.23:55336/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-童年經典,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-超燃懷舊經典,http://epg.112114.xyz/douyu/1174353
-大头儿子,#genre#
-大头儿子|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/252a7fe7786645b084271751a3f75725/1200.m3u8
-大头儿子|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8c6227ce3d1d4c9297d5cfd9a08a4fa9/1200.m3u8
-大头儿子|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1a86eb58a9e04c34a87f8c883932cfa2/1200.m3u8
-大头儿子|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/46e4d00d85fe4287b54c8015de46e102/1200.m3u8
-熊熊乐园,#genre#
-熊熊乐园|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b333914bfe2b49d793d41f3233505f5f/1200.m3u8
-熊熊乐园|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7d35b256e4794918837e184d35f34492/1200.m3u8
-熊熊乐园|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8da51eedd80c4c0b98765b20d1729d42/1200.m3u8
-熊熊乐园|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e86d503179254fc0ba5ebb6f44103d9d/1200.m3u8
-熊熊乐园|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f437da4d62e4708bc8892cd6f3c9bd8/1200.m3u8
-熊熊乐园|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7e38bf0a4c274a3c98abe1d79ca7c8ef/1200.m3u8
-熊熊乐园|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a14f86e6e1434908a12fd00a2c8b0b73/1200.m3u8
-熊熊乐园|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a7b458f35cd49a390faa0378d4ecde5/1200.m3u8
-熊熊乐园|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a35f12e8fb6420181c83cd1a847206b/1200.m3u8
-熊熊乐园|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/34cf417bf8d64ce8a993e8c5db16b914/1200.m3u8
-熊熊乐园|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f966ee5dac0d4393bcdd2483b24d06a3/1200.m3u8
-熊熊乐园|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/70344cd85dc34abf8400eb9738bec779/1200.m3u8
-熊熊乐园|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3976afaa79a14ede8dcf818ead874ac1/1200.m3u8
-熊熊乐园|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/50a132bdc16e47cfb6e292ace9dde5ee/1200.m3u8
-熊熊乐园|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8336c7ea1fd04a98aeb5bab0350f9855/1200.m3u8
-熊熊乐园|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5ed717fd676042cfb4c145423e1bb31b/1200.m3u8
-熊熊乐园|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/54371858578a45d9b9de4b64f81863eb/1200.m3u8
-熊熊乐园|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1e77c23aef1a4defa52bc76a56ac35bc/1200.m3u8
-熊熊乐园|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6c9cd714ab4b4a4b9695c17766470ee8/1200.m3u8
-熊熊乐园|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/97d9d7f096bc4b90bcdaf2b7ce9ea556/1200.m3u8
-熊熊乐园|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c5c9a732d2dd4179828895fb75a3ca08/1200.m3u8
-熊熊乐园|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9a7401b1279a4fa09135deaab29bf51d/1200.m3u8
-熊熊乐园|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3cfd36364d804fee8599aa72b970e9cd/1200.m3u8
-熊熊乐园|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ed010caa1668481ab5a7250291bb6f33/1200.m3u8
-熊熊乐园|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/adb82894c295447e86d12aeccdd17d50/1200.m3u8
-熊熊乐园|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4404b8b709f84c7fa045a0901f23a133/1200.m3u8
-熊熊乐园|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7e7b56d0d35a44dc807b9888cc37bce0/1200.m3u8
-熊熊乐园|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6b9d91ae03eb4348a9270aa0e5018135/1200.m3u8
-熊熊乐园|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/59c667667d2349c587db921d3f639223/1200.m3u8
-熊熊乐园|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/473591a6614e4a769ad912fbf58e79da/1200.m3u8
-熊熊乐园|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a99941f33164ea3aa11d5243a4a93ad/1200.m3u8
-熊熊乐园|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/84ab44d3c9af4460a1a9981a22489417/1200.m3u8
-熊熊乐园|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1d01816b5ae945bea728f10ee99d7c41/1200.m3u8
-熊熊乐园|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef0bb93b6d9a44f6b68f7abc15770a9e/1200.m3u8
-熊熊乐园|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5b0e9527423542efbe1ab81c3701c20e/1200.m3u8
-熊熊乐园|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/be17a82213094c1284570913c1cce887/1200.m3u8
-熊熊乐园|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d9925bccfeb84ab6ab090d56547a7a2d/1200.m3u8
-熊熊乐园|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f5148f0035d44d77b74aa58aa6d57c18/1200.m3u8
-熊熊乐园|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6cde3ec7780446e9a834a35772378ff8/1200.m3u8
-熊熊乐园|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c03ccf0e34b4476a80c2396ffe99a29/1200.m3u8
-熊熊乐园|41,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f986f8de576f487fb1febdcc7dfa87d8/1200.m3u8
-熊熊乐园|42,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c99361cb40a9457c9ca95beab9c780af/1200.m3u8
-熊熊乐园|43,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e9dbad5b80884597a721947629a9b169/1200.m3u8
-熊熊乐园|44,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e0a3c64fa73947289e5664984f4cf5e2/1200.m3u8
-熊熊乐园|45,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cea468a9e46f47f5bd232aef671a7d8e/1200.m3u8
-熊熊乐园|46,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f185a4cb6fec4e5fac0b7c3bda661cfa/1200.m3u8
-熊熊乐园|47,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1b3716f4a8ac42fda150b24e9266e7f2/1200.m3u8
-熊熊乐园|48,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1e3bb6fcc0b642d896b0bb51514a3545/1200.m3u8
-熊熊乐园|49,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4f7fa80c6686462cb3afcf9ce48b7678/1200.m3u8
-熊熊乐园|50,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f93cb9edd30544b78797b6dce897dbdc/1200.m3u8
-熊熊乐园|51,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7fc7a246576744e1b032622846c1fd43/1200.m3u8
-熊熊乐园|52,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/23d304c091184090b3b6ceef8822a273/1200.m3u8
-举兵长城,#genre#
-巨兵长城|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3a2b0ef61beb418eb4aec0d914f99b48/1200.m3u8
-巨兵长城|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1dd4062abaa94ca6b560e3ef56f8c409/1200.m3u8
-巨兵长城|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b07fdae486f74238bf25eb71e83f259c/1200.m3u8
-巨兵长城|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b931570cc1d14c2eab472692b5d47805/1200.m3u8
-巨兵长城|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ba5063ff4c147a2ad7301ef4ae0686b/1200.m3u8
-巨兵长城|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/129085d482de4098a2b9b942d6fe9ba7/1200.m3u8
-巨兵长城|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/55e90e0678694d7eb4167aa02c10a233/1200.m3u8
-巨兵长城|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/79996160a4d24e4f9e5b4682ad4425a9/1200.m3u8
-巨兵长城|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0098cc5c87c841b09bebbdc232aa35ad/1200.m3u8
-巨兵长城|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a612a45af6d24f4d9e7d77341acf1977/1200.m3u8
-巨兵长城|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b33535ecf347450f8b984b20bbb48c9c/1200.m3u8
-巨兵长城|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c015eabf40f24520bc44c35e72cb0d94/1200.m3u8
-巨兵长城|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9f2e29d5c7c549219adde55c9ed7fbb1/1200.m3u8
-巨兵长城|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf730026d34547fdb24b63ca2fcdf3a5/1200.m3u8
-巨兵长城|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30468b0e00a14458a6341370dba3388b/1200.m3u8
-巨兵长城|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cf9330c33ee34714987118e1f6c5d085/1200.m3u8
-巨兵长城|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/27189e1e66254071b690007a24a2b6a5/1200.m3u8
-巨兵长城|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cf5e44304d57424a8a0fa604f922dff0/1200.m3u8
-巨兵长城|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/01f76cdebd5640e7b6e5b05f239c8c06/1200.m3u8
-巨兵长城|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ad57cb6a0bda462d85b4ed75286fa175/1200.m3u8
-巨兵长城|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d89a2c0629fe4909b4d421b9f3f388ab/1200.m3u8
-巨兵长城|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/40161246244f41b7855d9b7c5908b56c/1200.m3u8
-巨兵长城|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c947a4a8b10d4cf79205e0692a10ca04/1200.m3u8
-巨兵长城|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5060c925088342f99fedff86563433db/1200.m3u8
-巨兵长城|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7e26aa91ba2f45bcabfb2eac4d20fcb4/1200.m3u8
-巨兵长城|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/517ae78b0da54686865387b76decf783/1200.m3u8
-巨兵长城|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4a049506f801441a9add649fc6209661/1200.m3u8
-巨兵长城|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aba5a0b8a7e44fda974b06f89a7f4fc5/1200.m3u8
-巨兵长城|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8655873e67aa49dca0d6c9c548e9e92c/1200.m3u8
-巨兵长城|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8bc9fab7bfb340c98435396d78260fd3/1200.m3u8
-巨兵长城|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b970cfe7f4f14beb85d8752c88c10c6c/1200.m3u8
-巨兵长城|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fc4921e7914a4aeda0feb72ec4a6d932/1200.m3u8
-巨兵长城|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/13aa74a77cb24b87b5f8afa867a1bbc4/1200.m3u8
-巨兵长城|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ff3c402020f145e58d37d00aceafc0bd/1200.m3u8
-巨兵长城|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/52666b9e129244b6aecd75efc6ed2bfb/1200.m3u8
-巨兵长城|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f5534105be4a4573bbadb383aff1c1bd/1200.m3u8
-巨兵长城|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d5a178970a064a1a9b5f0d4e424d8147/1200.m3u8
-巨兵长城|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3cc90241f6bc4f739c02996a98508030/1200.m3u8
-巨兵长城|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d3aa3a468a7c43bb93421e2965752cb7/1200.m3u8
-巨兵长城|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/afa9ac4cc6ea43f4ac78b8ea21d2b4f3/1200.m3u8
-小魔仙,#genre#
-小魔仙剧|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cdd0bb53dad24b3b946cbf82d1fb5255/1200.m3u8
-小魔仙剧|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/21848456dcbb4427a79635712a123d15/1200.m3u8
-小魔仙剧|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/706256cce8d741259e0a6f3538418f76/1200.m3u8
-小魔仙剧|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/698e44716ff84d94a13be04804a54326/1200.m3u8
-小魔仙剧|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/13d0b6c8bc1b437eaeba2b8f5e2cbaac/1200.m3u8
-小魔仙剧|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1635e17b60004f479a3bf0a3cf068e4a/1200.m3u8
-小魔仙剧|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/89afcba5ff1d485c95f8732d6d92c94e/1200.m3u8
-小魔仙剧|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/427e12baa22f45b8aff4205eee509bb2/1200.m3u8
-小魔仙剧|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dca26c157d3c4cc7805493084a867ba2/1200.m3u8
-小魔仙剧|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5805e831f0474ba09eaf87e4d6c64720/1200.m3u8
-小魔仙剧|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6e8f016e98d14991b075f4232dbbe2a2/1200.m3u8
-小魔仙剧|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d9759b9bdce549739804fd1a10505965/1200.m3u8
-小魔仙剧|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7839ef5284484fd8b9ac62372205a2e7/1200.m3u8
-小魔仙剧|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8e3b7ebeaf774863b19f8d72b4cb7de8/1200.m3u8
-小魔仙剧|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/40b7840b83c14f5c8ec302383bd0999b/1200.m3u8
-小魔仙剧|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/875b781dee14458f913ab58b1e798cc5/1200.m3u8
-小魔仙剧|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a6c488cb235747c3ab841cd827d808ed/1200.m3u8
-小魔仙剧|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/867e13db0c804ed9b226ca8c872213fd/1200.m3u8
-小魔仙剧|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ee6b8748db545a79306dca869d115a8/1200.m3u8
-小魔仙剧|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4619aaa5b1284705849e8a54d8d40184/1200.m3u8
-小魔仙剧|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d147851738084bd8b747975135237b04/1200.m3u8
-小魔仙剧|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9219fad6066a421c8c163244df7df9a0/1200.m3u8
-小魔仙剧|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b754307ff31e463fb12fce0f5c504f1b/1200.m3u8
-小魔仙剧|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/98cf3be578414d8ab55830cda11c30c2/1200.m3u8
-小魔仙剧|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/64a5084ac6c14fbeac9d7272121f3451/1200.m3u8
-小魔仙剧|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fb2239726d1e45d4a74e59a46e2d065b/1200.m3u8
-猪猪侠,#genre#
-猪猪侠剧|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/284947a4fa1f45dbafc2a4d54387cc7e/1200.m3u8
-猪猪侠剧|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a4b74cdcdee64c70a9c9f7f4c3619aeb/1200.m3u8
-猪猪侠剧|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/73a90ed2920b47589463bac9802bdf43/1200.m3u8
-猪猪侠剧|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9433024f26874cb4b2a1ffdbd0ca1f1c/1200.m3u8
-猪猪侠剧|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4be859da49d34b978d2973b640bc7d0d/1200.m3u8
-猪猪侠剧|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e11a17cd7364479abef8f2dfceb63411/1200.m3u8
-猪猪侠剧|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/00dff109c20f431b8b7a739699af8a77/1200.m3u8
-猪猪侠剧|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/73847c91bed14dc6883c438861b84b5f/1200.m3u8
-猪猪侠剧|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f04c2cadd1ae43a08de4f0e398ee28a0/1200.m3u8
-猪猪侠剧|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6e06d51e3d454ac8a62cacbac82d5fe2/1200.m3u8
-猪猪侠剧|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c6e3092ffd940ea910065e11334bc32/1200.m3u8
-猪猪侠剧|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/22a3d52a5e47482eb812e20620248741/1200.m3u8
-猪猪侠剧|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4ed0ef2435fc465e97127bdadbe8bcdb/1200.m3u8
-猪猪侠剧|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2c1982fa7d54416a90655b17afb27bc9/1200.m3u8
-猪猪侠剧|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee4efe1473a049809a9b42cd48680f4c/1200.m3u8
-猪猪侠剧|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1e04dd809684d76ae069f0d65f12829/1200.m3u8
-猪猪侠剧|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2b529717f4f64f0793b3f4b2d5370be4/1200.m3u8
-猪猪侠剧|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ead9dae0652043d0b861d5ea69b4c045/1200.m3u8
-猪猪侠剧|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/94b0326592024a759522450fea376aab/1200.m3u8
-猪猪侠剧|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd9526d2ad4d41b9aa89fa71953e8099/1200.m3u8
-猪猪侠剧|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d90630598ad14d1a9bf8575f4129eded/1200.m3u8
-猪猪侠剧|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2c2afa69af9b4a6aa28f91721b3ecd5b/1200.m3u8
-猪猪侠剧|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4ed4bb5d33094afa88baf5ce9518b2d8/1200.m3u8
-猪猪侠剧|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fc2546c3481a4f5e866a43af5f8222ac/1200.m3u8
-猪猪侠剧|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aab9cb537d464c6987710db633e28c6a/1200.m3u8
-猪猪侠剧|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6bf4cda0ebce4dfd91cb7b0296de7e90/1200.m3u8
-猪猪侠剧|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/935f3831de2e488ca2b0bbb93263b418/1200.m3u8
-猪猪侠剧|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30efdf633b1c422dab32fe274d67f320/1200.m3u8
-猪猪侠剧|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/257e72b4bf0f4560847e9b87d8645738/1200.m3u8
-猪猪侠剧|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4bffea35701146e6b3fb04f39a3747e3/1200.m3u8
-猪猪侠剧|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a72044f6fd404a9e83ce047522e01901/1200.m3u8
-猪猪侠剧|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7d5b4362a3ad428ea0d5b5771faf57c4/1200.m3u8
-猪猪侠剧|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8192f05fb2234318928521dd2ed83a38/1200.m3u8
-猪猪侠剧|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/32cf6f9a7e394a4a9af3b2c873326ac4/1200.m3u8
-猪猪侠剧|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/83f4db992dc1476997d576878254c26c/1200.m3u8
-猪猪侠剧|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e045414a95da4152b3ff060b55a2f992/1200.m3u8
-猪猪侠剧|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/eb43d993f450460dba555c9a46d27262/1200.m3u8
-猪猪侠剧|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/40fb5ea7cf8341fa86acf0df6c4ccb55/1200.m3u8
-猪猪侠剧|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/14ed213481bd4b3e8dc4715bf56876ba/1200.m3u8
-猪猪侠剧|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4519030fa05348e1ac56dffa4f337ae7/1200.m3u8
-猪猪侠剧|41,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4bcdfbf3d6784cc190771b8184a60e4e/1200.m3u8
-猪猪侠剧|42,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1ff32d21d2a544eab343902e9ba5d07d/1200.m3u8
-猪猪侠剧|43,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/caf54124ab0d47bdba256a7f46fd5c6c/1200.m3u8
-猪猪侠剧|44,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ac8838256cbd4636bce7190fe977f046/1200.m3u8
-猪猪侠剧|45,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3c04604ebc1d47eb847a6e935c977b0e/1200.m3u8
-猪猪侠剧|46,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7da850ad39f845cd8a9accd6a60206c8/1200.m3u8
-猪猪侠剧|47,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f7200e292cb84aeebfe012c0b2018082/1200.m3u8
-猪猪侠剧|48,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e820b499aa964d95a4cb151cbd63ee70/1200.m3u8
-猪猪侠剧|49,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8cb197de89e24bfaa751127e02e80cb5/1200.m3u8
-猪猪侠剧|50,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ba9822ccd234ad9b9075852e26ec66d/1200.m3u8
-猪猪侠剧|51,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/941bdb7064904d1db11d7f0d30959663/1200.m3u8
-猪猪侠剧|52,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b8c94517b17f4e769318e3aefbd2de78/1200.m3u8
-猪猪侠剧|53,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/44180ac9d51f4113b4c0859029cfca9e/1200.m3u8
-猪猪侠剧|54,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/01fa590200a942c182244eb0cbda1a08/1200.m3u8
-猪猪侠剧|55,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30b5fadd7cf5428c87a3c00bfe766c3c/1200.m3u8
-猪猪侠剧|56,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d33d57c10acd486a9a38572c82d61b83/1200.m3u8
-熊出没,#genre#
-熊大出没|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/95f892f4039f4ee8b8eae1ba953ab221/1200.m3u8
-熊大出没|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/65f81d39d8e747cdbe79520fc32afbb7/1200.m3u8
-熊大出没|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0ee7d2b6c2024b46927447054cf99c18/1200.m3u8
-熊大出没|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d7397021ec7d4a1a974285ddbafff400/1200.m3u8
-熊大出没|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ff8466b7e913492a8248ee04509972f0/1200.m3u8
-熊大出没|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ff8466b7e913492a8248ee04509972f0/1200.m3u8
-熊大出没|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9021cf58e50b4082a5c7aa576b3fa16f/1200.m3u8
-熊大出没|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee1611cbc2584331a85f2a9afe1dde0a/1200.m3u8
-熊大出没|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/211ae89613ff4f788d3a6fc4029e6345/1200.m3u8
-熊大出没|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1a6426d6c8474cb8a5241ca2827c40cc/1200.m3u8
-熊大出没|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f561e66e0ce14dbf9c6245cf6107ed3a/1200.m3u8
-熊大出没|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4cf851d712a2403fbb27c5dfe9f81111/1200.m3u8
-熊大出没|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b76da0f7842e4f63b8b39e34be85d3dd/1200.m3u8
-熊大出没|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0c8a2806397946e0a1551ddf4022fe93/1200.m3u8
-熊大出没|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4a42ed626c574e68bf7c38617fa7ee24/1200.m3u8
-熊大出没|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f62f7113ae80448d9a63b36ddf50da6d/1200.m3u8
-熊大出没|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f6754fef90bd4fef928a059d5de85168/1200.m3u8
-熊大出没|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a8751e81ca514ac78f617d5c7220191e/1200.m3u8
-熊大出没|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a94822373c040d5aa5e1bb360d0a88a/1200.m3u8
-熊大出没|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5074157535e74086a3203ebdc591d1eb/1200.m3u8
-熊大出没|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a0f4a63b5dd743c9ae2f870ad7b9e2dd/1200.m3u8
-熊大出没|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5c70f014090e464d8b100457f020e0ee/1200.m3u8
-熊大出没|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5154176ec8a742cc9596f529dc1fdbd1/1200.m3u8
-熊大出没|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/efadc7c80573485e91a685e092b82d36/1200.m3u8
-熊大出没|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e57ccc74e25643509d4e49df1cd02e00/1200.m3u8
-熊大出没|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f26ac7d9f77140b38c178db893855f8a/1200.m3u8
-熊大出没|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ab56247060c47a8bc46ff4ef1e6d162/1200.m3u8
-熊大出没|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/752a4f8385b04fb6bdb103164f033db4/1200.m3u8
-熊大出没|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ffedbf675e8e4c28916921a935b39e55/1200.m3u8
-熊大出没|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/230242ff2ed843948c7c4033757d7287/1200.m3u8
-熊大出没|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/018ada23b5674e6ca718b3cd615debeb/1200.m3u8
-熊大出没|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a9eed935fe7b4f0f81f90066b6e87563/1200.m3u8
-熊大出没|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a8016b0f94d54d0c83f006f1fa1582e1/1200.m3u8
-熊大出没|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a10bf5024121486d8a077c12a93cde01/1200.m3u8
-熊大出没|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a823dd5fd0294c6d8b4b4ac1538fdf59/1200.m3u8
-熊大出没|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a12d2d42b5644370b2564919496d517a/1200.m3u8
-熊大出没|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c3df6cae78142a19999aaf11543c6ee/1200.m3u8
-熊大出没|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b90b87d6e4104c23868e343bceda1977/1200.m3u8
-熊大出没|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b9b25a6846bc452c8486ee50ff9166d5/1200.m3u8
-熊大出没|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6f7125d109484f95a3dcee1d715bdd42/1200.m3u8
-熊大出没|41,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0c70e2a6267a43b5afd3bf7971b98aab/1200.m3u8
-熊大出没|42,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/71c1281bf5ef4f3f9c6ba8d55895e8b2/1200.m3u8
-熊大出没|43,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/12b3877caa7b4f29ac39489b0bc91c67/1200.m3u8
-熊大出没|44,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f202fe0b1c20436188c5301990133795/1200.m3u8
-熊大出没|45,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/75e8c6b6c9474f348b479ca796123328/1200.m3u8
-熊大出没|46,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/abf336741df145e1a01be1e82ec68293/1200.m3u8
-熊大出没|47,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ef34c76839c54953902442e6655e2aad/1200.m3u8
-熊大出没|48,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c7004c20a5014c4f8d9a6e28b504231f/1200.m3u8
-熊大出没|49,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/48b16b04ae504d5a8fa3a96d561230ce/1200.m3u8
-熊大出没|50,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e88ebcb5fb9f441cb140c300f00fbfa0/1200.m3u8
-熊大出没|51,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/58f82bd26db4484887be5b37438d7c9b/1200.m3u8
-熊大出没|52,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/617de11ef3d94cc8bb8d77f91ab47ff6/1200.m3u8
-愚公移山,#genre#
-愚公移山|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9cde53f7f35e487695bff36d2cb5ef15/1200.m3u8
-愚公移山|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/35598461938d4fb988dbb494171ca78e/1200.m3u8
-愚公移山|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b1a69484f9c1425e82b63f31a5d8dd4f/1200.m3u8
-愚公移山|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5a370582c2f849a78abd7d96023d340f/1200.m3u8
-愚公移山|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c5a4f221752d4c358592fd0f0c51696e/1200.m3u8
-愚公移山|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/39cca4ce26ac48c0ba87c43b033d28d6/1200.m3u8
-愚公移山|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2a1de300611e4afba55add95ac60c22b/1200.m3u8
-愚公移山|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/53e06c3311284ab296a9160bd9d5ee81/1200.m3u8
-愚公移山|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/968f89a0f24e4759ae469e0c935de19c/1200.m3u8
-愚公移山|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/04b51f2b5b574799a293a157651333fb/1200.m3u8
-愚公移山|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/78a9bf4753dd45a1ac0a01f4e9c2b378/1200.m3u8
-愚公移山|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1f3bff7e01bd4c7aa58e04ab69e23da3/1200.m3u8
-愚公移山|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb8db0ea3d7b478ba84f4450eeb9d250/1200.m3u8
-愚公移山|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/23f287bc542246fea76dda6d5f9f4d5e/1200.m3u8
-愚公移山|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e066c4012d50448abdc50ec66fcd5ab6/1200.m3u8
-愚公移山|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bbeaccceb6fc4a45b5cd7c7518516bc9/1200.m3u8
-愚公移山|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e4d760c594c04a1e8d8d023f535175d6/1200.m3u8
-愚公移山|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f5bb71448d54827953b32f132104e53/1200.m3u8
-愚公移山|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/17552f078eda4913b37684f6f3952f3f/1200.m3u8
-愚公移山|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b167c008eabc4b05807814a8c1dcf16f/1200.m3u8
-愚公移山|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4fb0ad5a89d4489c8ed8f43f066b7f47/1200.m3u8
-愚公移山|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6bed5950d3a548dab17611d3de52359f/1200.m3u8
-愚公移山|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1df62aeff7064b0e92338bb9cd4e123c/1200.m3u8
-愚公移山|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fe1791727b3747ad952d173697102e2c/1200.m3u8
-愚公移山|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/baa81ee5f6584bf3bea95aa91bc082c9/1200.m3u8
-愚公移山|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/09ac5a9658904abaa1a78e787831ab18/1200.m3u8
-愚公移山|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ffd496b21249464fa9ea4cf84ae168ec/1200.m3u8
-愚公移山|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d284e122339244858dbdebb2fcbc270d/1200.m3u8
-愚公移山|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e96c7b1769de47a290316cd8bb94b41b/1200.m3u8
-愚公移山|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8279c43b2101406eb7af2dbc3dab52c6/1200.m3u8
-宇宙守护,#genre#
-宇宙护卫|01,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/06fa2fb9502140a0b61165fbdd49c9bb/1200.m3u8
-宇宙护卫|02,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/eebf840e9b36468b926acbe405da0d3c/1200.m3u8
-宇宙护卫|03,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fb9e2a8e0adc459d8b89aa77ceed9f6f/1200.m3u8
-宇宙护卫|04,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c3570f41f8264993bbec975106eb73b4/1200.m3u8
-宇宙护卫|05,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e9ed57d40c3f46019a9ff625d31b22d4/1200.m3u8
-宇宙护卫|06,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5ee2e42722b4410e8f4c0a5da503529f/1200.m3u8
-宇宙护卫|07,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9562008a93954e669a258c83f1fe9a57/1200.m3u8
-宇宙护卫|08,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b80d3c65b2424d249b2f4f624051f9ab/1200.m3u8
-宇宙护卫|09,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e7f92301882149e280f7619154110448/1200.m3u8
-宇宙护卫|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aaa1b58887f84bafb8367a6f16b756f7/1200.m3u8
-宇宙护卫|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d6ba9f07ee554923b4edd3ee5a10eccc/1200.m3u8
-宇宙护卫|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5c90c70dd4534b7b8b3403d53c782aa2/1200.m3u8
-宇宙护卫|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/31379475197d4f15a9c9f85a0fb40980/1200.m3u8
-宇宙护卫|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/25724fb6f81f49e0b9450587cfd4e642/1200.m3u8
-宇宙护卫|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/508ef4865c6c4b9eb34ff3bbe49220ae/1200.m3u8
-宇宙护卫|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/641181c2b7114af9b5daf4c15d78c07f/1200.m3u8
-宇宙护卫|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/10313a824c2246cba9a32d379ccbf024/1200.m3u8
-宇宙护卫|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/90dcc239d38e4647b6b4b4f4f82be019/1200.m3u8
-宇宙护卫|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d26a3038a2d34177a8578d2db50514df/1200.m3u8
-宇宙护卫|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ad882e7d239244298e0f22a6a9bfd319/1200.m3u8
-宇宙护卫|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2358958012a04bb18da05ed5af876fac/1200.m3u8
-宇宙护卫|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/96760f5ad6ca43448f8c18862a6c8804/1200.m3u8
-宇宙护卫|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/99f70578447449428161a74dcf3b0819/1200.m3u8
-宇宙护卫|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf2aceae2e284e30a507432b895cde3f/1200.m3u8
-宇宙护卫|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c6e8f463bed4f8abbbec96c40ee6d65/1200.m3u8
-宇宙护卫|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5ee4f1f3e8104b6aba27bda24ea9bebe/1200.m3u8
-宇宙护卫|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5f7dd3266e574406bfbc8134fbf4e6df/1200.m3u8
-宇宙护卫|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2b80f677ffae4e239016eae11dcc7957/1200.m3u8
-宇宙护卫|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a79f788566f46ef9edce4f493b98098/1200.m3u8
-宇宙护卫|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b4c1aae982a6456699ee997a8e653e0e/1200.m3u8
-宇宙护卫|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dfd1958da1a044fc9f0968fd28865e18/1200.m3u8
-宇宙护卫|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/146dd6c04ebd461bafee086e155bf983/1200.m3u8
-宇宙护卫|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3b127f02d590495ea9ebfc3f46a64ec1/1200.m3u8
-宇宙护卫|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d19895ea529c4ae49fbf7a78b8773a84/1200.m3u8
-宇宙护卫|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a16c755bc1c472a89d1a557cb6f5b3a/1200.m3u8
-宇宙护卫|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1595a231d49e48ffa332140d20d245f2/1200.m3u8
-宇宙护卫|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/153bf920b96644f2a5805c9532bdd46a/1200.m3u8
-宇宙护卫|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6ac6ea1a55854ac196f7b64c63e51d6f/1200.m3u8
-宇宙护卫|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6fc7718427354df89fd69824b45883f2/1200.m3u8
-宇宙护卫|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/27f7751fd0d84e5a99a252b3b8a10903/1200.m3u8
-宇宙护卫|41,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3d9becfade8e4c4fb65a343e6bf01fc0/1200.m3u8
-宇宙护卫|42,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/61e70ece8b354c749d292e16d5c59e5a/1200.m3u8
-宇宙护卫|43,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b367366420bb4e50bbc08671a3623eef/1200.m3u8
-宇宙护卫|44,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dd44a2daeb6f4c65baeafe5261913fc7/1200.m3u8
-宇宙护卫|45,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e5d5ec844adc4335abb2b9a0c55cab04/1200.m3u8
-宇宙护卫|46,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6e275cc659d44ff4983dde280389ee7f/1200.m3u8
-宇宙护卫|47,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/191e6c5de5da4f4cbb1eaee674b9e116/1200.m3u8
-宇宙护卫|48,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e17cd361fd89477eb6fffe41c2da1d0f/1200.m3u8
-宇宙护卫|49,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fa75c5f191ba4ebbade8cae50049470c/1200.m3u8
-宇宙护卫|50,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1262effaa5964410a28ecec4054dcbdb/1200.m3u8
-宇宙护卫|51,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/153e436f5ee64875b6d9e20292124212/1200.m3u8
-宇宙护卫|52,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/008d24751fc64c5da513b6f4248bffa2/1200.m3u8
-小猪佩奇,#genre#
-小猪佩奇|138,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5287727718f54fd89eb3d991bc41b3fb/850.m3u8
-小猪佩奇|137,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/037e08be80de4302bef5b571fd9bd52a/850.m3u8
-小猪佩奇|136,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b5ce5c0cd3df4ee699882698fbcd11e4/850.m3u8
-小猪佩奇|135,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/85a9a74972ea4e8bbecd4199636cc0d4/850.m3u8
-小猪佩奇|134,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/64b7ae2783304840ae35d2f99b99d3e3/850.m3u8
-小猪佩奇|133,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0a62e89444604eec9b52d473dc3d22c5/850.m3u8
-小猪佩奇|132,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/117fbce4c4cb4e6c89337ca320ae5d10/850.m3u8
-小猪佩奇|131,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/87b12c44ea6348ad9eb48abd69e2c7d8/850.m3u8
-小猪佩奇|130,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/038fa4751114435aa5321b33d598f848/850.m3u8
-小猪佩奇|129,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e22b1713a27c453c88ea98a10ac213fc/850.m3u8
-小猪佩奇|128,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/ac2c4e8a334c412e9239452856e05cb9/850.m3u8
-小猪佩奇|127,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/f04b49538a414d8cb1623378591c9caa/850.m3u8
-小猪佩奇|126,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/73f50baa610d4bffaf9eca7de19a9b60/850.m3u8
-小猪佩奇|125,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/249e95c062954e459abf385ef1eeb41d/850.m3u8
-小猪佩奇|124,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/884003dff4b045efa3d1f31c4cf1fee2/850.m3u8
-小猪佩奇|123,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/90509ea71b5a4e91896df3ecf8afd50c/850.m3u8
-小猪佩奇|122,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/d55ed5548d96472893b06559a6b7df2e/850.m3u8
-小猪佩奇|121,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/75c3cc367b9843cfb34b898ceda322dd/850.m3u8
-小猪佩奇|120,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/846f9d28bdb7405e804ede6e1c10bb73/850.m3u8
-小猪佩奇|119,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/859bb1238f5b426883367467cf936e16/850.m3u8
-小猪佩奇|118,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a0fd3a23c66646ec895c0a78873ab639/850.m3u8
-小猪佩奇|117,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e8ad348b61664ed0a85cd28876b8747b/850.m3u8
-小猪佩奇|116,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c36a515424724675ac0bf6b34c793424/850.m3u8
-小猪佩奇|115,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/dc172b95a651469ab8327396c50c629c/850.m3u8
-小猪佩奇|114,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/27f40b9d936345ac85bf31f21fb3198a/850.m3u8
-小猪佩奇|113,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/90c6a419361b4d44b6746a40d73f0440/850.m3u8
-小猪佩奇|112,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5979524f6a0d488f961d72cede0b046d/850.m3u8
-小猪佩奇|111,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e6fbde84a0ce4475b50ba96948be3d8c/850.m3u8
-小猪佩奇|110,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8ac9cd0737a147939dee4d8434fcd2a6/850.m3u8
-小猪佩奇|109,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c3b64fd37bf94d3e852c6d52c648d33e/850.m3u8
-小猪佩奇|108,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/d1d55bc1af494428bdc451ba44bfd30a/850.m3u8
-小猪佩奇|107,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/dfc52662573242ceaaf0f7a1e1e80492/850.m3u8
-小猪佩奇|106,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/3691429ebf294738bf538d1685b3b8da/850.m3u8
-小猪佩奇|105,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/9fdc0405c08244c29fa88eee46bddfd0/850.m3u8
-小猪佩奇|104,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/d24d1bfbb2ab4668b596d2b2f3b77378/850.m3u8
-小猪佩奇|103,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e0df8257c0cd48e287dd949c7b374fd1/850.m3u8
-小猪佩奇|102,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/05db258445ce4a8e8f8843ced507808f/850.m3u8
-小猪佩奇|101,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/44e96003de8b43fdb7ef3d306950bb91/850.m3u8
-小猪佩奇|100,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c455119e0dfd488f8576161a1e2b82fb/850.m3u8
-小猪佩奇|099,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/6cd8f17629844963bf7e9ef551d1b597/850.m3u8
-小猪佩奇|098,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/da71ae191fb64df38acec69d16eb8957/850.m3u8
-小猪佩奇|097,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7b13a9a0510e42bebf494dab8effa292/850.m3u8
-小猪佩奇|096,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5ddd6dd6209145418e25cc69546c4a86/850.m3u8
-小猪佩奇|095,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e3f11e3ccc1149ada61b53565e9d435d/850.m3u8
-小猪佩奇|094,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/684a89ac2aa94701a3273514583c9d07/850.m3u8
-小猪佩奇|093,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0c2bba4a1f3543fbb8adf1d33f4e5166/850.m3u8
-小猪佩奇|092,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b2f44a23dd4c47608c94a30ae18aa219/850.m3u8
-小猪佩奇|091,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/32656ee7909e41adaba6d0af02f1224c/850.m3u8
-小猪佩奇|090,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/adfd241128654b83a40e36d8b59544d8/850.m3u8
-小猪佩奇|089,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0e6d89e7867441b2a2eb6c6cedc88ea6/850.m3u8
-小猪佩奇|088,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/fc2ba1aa649148208964f09b457829c5/850.m3u8
-小猪佩奇|087,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b29757d9cfb848b0866f67e7344ddb60/850.m3u8
-小猪佩奇|086,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0acc31e365314726b0b38d0f02e95194/850.m3u8
-小猪佩奇|085,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b6a54925de4541e7809ec4694b9548f5/850.m3u8
-小猪佩奇|084,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8f5a7db4f3fa4259a8eff2cd44eaa950/850.m3u8
-小猪佩奇|083,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/33ab04721302470e9b1ba127179c270d/850.m3u8
-小猪佩奇|082,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/9be2819d80cf4efb98d5f6a7072033e6/850.m3u8
-小猪佩奇|081,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7498338e180749659aff5dd555c2e19e/850.m3u8
-小猪佩奇|080,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a3a409fc5a2c4eb69ca0ee9735be8c2c/850.m3u8
-小猪佩奇|079,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/9cbef271f6c64f0fa94a3f1ffb749db0/850.m3u8
-小猪佩奇|078,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/fe93bc7e48b4488cbe50a9a560414f97/850.m3u8
-小猪佩奇|077,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/2dc0df4df73746bf8b788132675c13b2/850.m3u8
-小猪佩奇|076,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/30cab45e8e9e4a728ff9f56a4b4d6c0e/850.m3u8
-小猪佩奇|075,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c27a9b899f2f48bda9e580d965f7cc8a/850.m3u8
-小猪佩奇|074,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/f8155e099fd349c7966ea0d4f0852e13/850.m3u8
-小猪佩奇|073,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c467b01342e94190936edcd8d8af65b3/850.m3u8
-小猪佩奇|072,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/aae3ff18c6544cfcb7eec2f09bfe974e/850.m3u8
-小猪佩奇|071,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/494f8e0690244ba89f9af61371c47dc2/850.m3u8
-小猪佩奇|070,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a444d153d355414ba7ed52c66e989481/850.m3u8
-小猪佩奇|069,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/aa1235a6e3bd499480096cfabec04573/850.m3u8
-小猪佩奇|068,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/fa4aa467b33d4e7cb1ab3bf2bcf4c0e6/850.m3u8
-小猪佩奇|067,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/ba468ac532e541f1be3a27573694fdb7/850.m3u8
-小猪佩奇|066,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/d7b90b3547c144899102b1db9e8a6895/850.m3u8
-小猪佩奇|065,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5dcff44f533f438d96703a48139257f0/850.m3u8
-小猪佩奇|064,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5e987a5eb7bc4304bbadb60344864fc6/850.m3u8
-小猪佩奇|063,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/dfe0a80c77fd4536bd8a7577b1de7d56/850.m3u8
-小猪佩奇|062,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/4a26960eea5246049503569fd702a237/850.m3u8
-小猪佩奇|061,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/fce8209fc39d411b930b8d412fd6a987/850.m3u8
-小猪佩奇|060,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/07d68f1ef54546d4b3ad60cf20b83069/850.m3u8
-小猪佩奇|059,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/843b03be25614b17a74420903b217161/850.m3u8
-小猪佩奇|058,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/87bb8af590764470bad93e87dfbecd29/850.m3u8
-小猪佩奇|057,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8a3f5f5e2edc4095ab6d4ffa356e1fec/850.m3u8
-小猪佩奇|056,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/9cfddc0e51b5497f8805d027eaad8fd1/850.m3u8
-小猪佩奇|055,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/48225b52a6b0487dbabc669200d1a213/850.m3u8
-小猪佩奇|054,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/afaa408084ec492d93de69c9a2722b1d/850.m3u8
-小猪佩奇|053,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b59df8a7bbb343a89b3255a6934c64a5/850.m3u8
-小猪佩奇|052,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/508181f7e58d45e3b452a09ac08ae062/850.m3u8
-小猪佩奇|051,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/4deb8a8a99324ce881aceeeca6f644cb/850.m3u8
-小猪佩奇|050,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/3fb7645aa0f347bfa4f422badf369c58/850.m3u8
-小猪佩奇|049,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a1a6c0ace4d347068885c0c841e4fccb/850.m3u8
-小猪佩奇|048,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/db52787837354dadbd9b1a7f1c2ab900/850.m3u8
-小猪佩奇|047,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b941693131214d6e8ecf1dafb0d24d78/850.m3u8
-小猪佩奇|046,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/2056d17a69c844c39c83c3a1cb451fd8/850.m3u8
-小猪佩奇|045,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/70b4e666e3ae44f5bb6db621206c89df/850.m3u8
-小猪佩奇|044,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/510bd104865046d1bc72c79aeef5b008/850.m3u8
-小猪佩奇|043,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/4b82b45071fc4cea9005562df5e1b945/850.m3u8
-小猪佩奇|042,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7312219c6da94b27b200461d652ade18/850.m3u8
-小猪佩奇|041,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/18ec8d83a02541c99239be9463bcefd8/850.m3u8
-小猪佩奇|040,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/726e959e8cf54204bc965a7821940def/850.m3u8
-小猪佩奇|039,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/dccc088cadd44293b15435d40fc5ca70/850.m3u8
-小猪佩奇|038,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8201f66f865c42df957a0986fb762e9b/850.m3u8
-小猪佩奇|037,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0cbe5036c96c4e1288a387e0d2ac94e0/850.m3u8
-小猪佩奇|036,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/ca662a8fc2784767a04661f35480eae2/850.m3u8
-小猪佩奇|035,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e1b00e6818fb4b7fa90f43b3083256ec/850.m3u8
-小猪佩奇|034,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5ab833c5ab074896b37b27afedd372b2/850.m3u8
-小猪佩奇|033,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/886e8a5cfb3a4c6cb07eb977849057a5/850.m3u8
-小猪佩奇|032,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/fcc1a658704e46399af85d3734b88dd7/850.m3u8
-小猪佩奇|031,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/2d47faa5fd6048258dbd5521658c8aeb/850.m3u8
-小猪佩奇|030,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/44827089946e47458b14f738ef5ad75c/850.m3u8
-小猪佩奇|029,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5f35f5e7ea7941c5a23931291e3b8b43/850.m3u8
-小猪佩奇|028,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/323e94884d92487c888de167ba56d0fb/850.m3u8
-小猪佩奇|027,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7007b7345cc6466c8689181ded8743e8/850.m3u8
-小猪佩奇|026,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/db6f0d7768e2469db3e4918fbf581a20/850.m3u8
-小猪佩奇|025,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/84647431d2ee451bb25bff92e85ba6ac/850.m3u8
-小猪佩奇|024,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a70f7eb8e70f4740b8f9319683ddfae2/850.m3u8
-小猪佩奇|023,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a704b004d8444fa8b9f25e1b283fc553/850.m3u8
-小猪佩奇|022,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/573615f532644ffe92663f3560d147ab/850.m3u8
-小猪佩奇|021,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8084e57cfac444e8a9a32818a0fc6bf3/850.m3u8
-小猪佩奇|020,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/5dcb55cede734b9e8ac61d38ff7d8a49/850.m3u8
-小猪佩奇|019,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7c7909eacda94ad091f99dd4f6581222/850.m3u8
-小猪佩奇|018,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/2411e6fb6eab406b9616a2a06096160d/850.m3u8
-小猪佩奇|017,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/b7c20322e3c542f8b36b6be709504568/850.m3u8
-小猪佩奇|016,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/e323ffc96be244458a1cc9aa1693751b/850.m3u8
-小猪佩奇|015,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/71bf6c88c4c149da88885d08e4493063/850.m3u8
-小猪佩奇|014,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/7b0585d4acdb48deb861ef3cbafa4cf7/850.m3u8
-小猪佩奇|013,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/0f2739e728ec468e90ac7f7b38a8932d/850.m3u8
-小猪佩奇|012,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/61e8b761f540453896cca0b44f94b7d7/850.m3u8
-小猪佩奇|011,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/8b28655c23ba4c97a26ab39a7fad7b8a/850.m3u8
-小猪佩奇|010,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/4ee1975fae814bb183db93af59223bd2/850.m3u8
-小猪佩奇|009,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/933fe890e678410d9e1dbcc1577bba1e/850.m3u8
-小猪佩奇|008,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c474b2a647044e89aa982d05abc7470e/850.m3u8
-小猪佩奇|007,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/50adf8eed8824cec96d693e755f26878/850.m3u8
-小猪佩奇|006,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/9ef314447b4f49ecabecf745f24947bf/850.m3u8
-小猪佩奇|005,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/bc9e3dd496f342de977b68ed9199e00e/850.m3u8
-小猪佩奇|004,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/cacee61eeac643ff8c3512f2044b9366/850.m3u8
-小猪佩奇|003,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/a81fae2a8d1141ca9d041715fdba3e26/850.m3u8
-小猪佩奇|002,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/405b104872d94b3a91395ccb32ab54c8/850.m3u8
-小猪佩奇|001,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/91226e8d4f664fefa888e31d72ed8cd5/850.m3u8
-汪汪队,#genre#
-汪汪队长|001,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f96cb7c6f8354da1ab9c67a92bd03296/1200.m3u8
-汪汪队长|002,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/11a3110e23b546878b9fc34ab087fc99/1200.m3u8
-汪汪队长|003,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a076bfa8f5534589a6a32a1211d526f6/1200.m3u8
-汪汪队长|004,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1e628c3b1c7f41ef9569439bbc20c3b1/1200.m3u8
-汪汪队长|005,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a02cb85d5c0a4840ae320f189fef9ad5/1200.m3u8
-汪汪队长|006,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b361d95253e04a75b5c262c067e26e7a/1200.m3u8
-汪汪队长|007,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1ae53296a16475c8bc2667fccf1718f/1200.m3u8
-汪汪队长|008,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb462eedab924864bb52a076eff3f35a/1200.m3u8
-汪汪队长|009,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/667dc8e9785047f4a2bf2008759a0d41/1200.m3u8
-汪汪队长|010,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c7bdfb0bacfc4b76b6492b371645bec9/1200.m3u8
-汪汪队长|011,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/104718fde00347c0bdf3892056f6c424/1200.m3u8
-汪汪队长|012,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/10bcc3bdf9534b86a3ecc558eb88e8c1/1200.m3u8
-汪汪队长|013,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9e862c5952b24af6b11e2ff5c82e3ef6/1200.m3u8
-汪汪队长|014,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf22bd5354eb4eceb751698f1197a443/1200.m3u8
-汪汪队长|015,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e708bd144bc040968a0697d401c55721/1200.m3u8
-汪汪队长|016,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e358bc63629a4da0b571f09c1758632f/1200.m3u8
-汪汪队长|017,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aab9e8b4cb15456395344f0bf506b7e5/1200.m3u8
-汪汪队长|018,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6de71403ea864646b457f6fb55eb7a7d/1200.m3u8
-汪汪队长|019,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a6ce466f26941cbb9d49fa58a742395/1200.m3u8
-汪汪队长|020,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ff6bb3e89ece439991951d4fb5ba0b69/1200.m3u8
-汪汪队长|021,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b731bdafeb81400591a9ed620320d745/1200.m3u8
-汪汪队长|022,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c064f62c75954d3583195caa67b68b49/1200.m3u8
-汪汪队长|023,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cc40c88c98ec49398f4359dfa371adbf/1200.m3u8
-汪汪队长|024,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/02f23f6dc67b463a8b0ae74dae52b3f7/1200.m3u8
-汪汪队长|025,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bbb24743a4e64b18a2156cccc21987af/1200.m3u8
-汪汪队长|026,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c100256a0b3e4193b5f92a43693dbc77/1200.m3u8
-汪汪队长|027,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e670a68ddb92483bbef8b1683edee4a3/1200.m3u8
-汪汪队长|028,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cd67233519ea43da9174ae05ca1ccf57/1200.m3u8
-汪汪队长|029,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fdb0c5306cd242ac9b12070e65412e50/1200.m3u8
-汪汪队长|030,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ec904e499d8046e0b5d53fa014d72a4c/1200.m3u8
-汪汪队长|031,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/34145495b3104941805df790e3b40719/1200.m3u8
-汪汪队长|032,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/44d516bca92e4845aef4a419097e007a/1200.m3u8
-汪汪队长|033,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/637ac17e2b2f47a5a2333834dafa6e3f/1200.m3u8
-汪汪队长|034,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9a2d0ebd3ffb419fb02ff0c0e59e0209/1200.m3u8
-汪汪队长|035,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fa54ffb0b7114bc9a93a22a5796518a9/1200.m3u8
-汪汪队长|036,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6e9224d87c2e4065837bd18fd4603650/1200.m3u8
-汪汪队长|037,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/85fedbfc85d848e9ae08ca74697443d7/1200.m3u8
-汪汪队长|038,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/57069bf2d17e4340b7e865c9c958de6e/1200.m3u8
-汪汪队长|039,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aa25758ec7d44282be2860fb91f6a443/1200.m3u8
-汪汪队长|040,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f1e068184532473bb8b3594ab52473f6/1200.m3u8
-汪汪队长|041,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b49f6e0cbce64287bc0822855dd5e427/1200.m3u8
-汪汪队长|042,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/735a493eb20b480cb244f8d1e76a7aee/1200.m3u8
-汪汪队长|043,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5f55300db9b24cf4b217665674eb91db/1200.m3u8
-汪汪队长|044,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bb132688ccb4498b8bd757dc2becd7c1/1200.m3u8
-汪汪队长|045,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/708e12616f6e48a3adf59ca2a2fee0f6/1200.m3u8
-汪汪队长|046,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0d68f04232644c84b93996de169a71cf/1200.m3u8
-汪汪队长|047,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3c8b90d10b6345cda0be4eff0e0bf93b/1200.m3u8
-汪汪队长|048,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/01a6644dd1594449b17433c282698e3c/1200.m3u8
-汪汪队长|049,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f9a25d444289482d91b91bf18c403b7e/1200.m3u8
-汪汪队长|050,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/34011c8212d2486789428ecd59fbfa8b/1200.m3u8
-汪汪队长|051,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0826fc10e6ac46d49924d543d458b8cc/1200.m3u8
-汪汪队长|052,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9ea7f5101a00485d9f23ddaf46ac8947/1200.m3u8
-汪汪队长|053,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8871a98bee374512a100e54754e5f399/1200.m3u8
-汪汪队长|054,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f2e9c3a65fb5402180d926773837f872/1200.m3u8
-汪汪队长|055,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4588ae5cbe6f4f6e8c19c99a35b7d452/1200.m3u8
-汪汪队长|056,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/df2e5d595f9f4b359c523e1d4281a09e/1200.m3u8
-汪汪队长|057,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ede03064fc404259af277bc23f132b2a/1200.m3u8
-汪汪队长|058,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3fef33e46ed4ca5b89d4cfe00dc6df4/1200.m3u8
-汪汪队长|059,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/76e23ba93e054dac87bd10f0e40d6cec/1200.m3u8
-汪汪队长|060,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/85ce09072ff145edada93afb64fa387f/1200.m3u8
-汪汪队长|061,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3beadd023ab84420b006d46b6185b27d/1200.m3u8
-汪汪队长|062,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/92b01218824e42b29b1b68e2a5def767/1200.m3u8
-汪汪队长|063,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/503fffe097444ddf9c5f1371a97c664e/1200.m3u8
-汪汪队长|064,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4d1e0ae397cc44b5ad798c5d75191f90/1200.m3u8
-汪汪队长|065,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ebfbf6facb9d4f02ad787fcd67ad4bb7/1200.m3u8
-汪汪队长|066,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6307519ee3aa4fe2857358e46defdfe3/1200.m3u8
-汪汪队长|067,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/32334a133c1b4bfb97e6111ce76a3478/1200.m3u8
-汪汪队长|068,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2c98fa9bd9bb48989651f86061d81a2e/1200.m3u8
-汪汪队长|069,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/748934c34a784ab48c3bf444ab81317d/1200.m3u8
-汪汪队长|070,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a9ef05da096c4fdbb1e2554d9796c778/1200.m3u8
-汪汪队长|071,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f49c4c190496429ea84dccc8198e5b14/1200.m3u8
-汪汪队长|072,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b0c7ea4cecc94deb9d2ca354be0eefb6/1200.m3u8
-汪汪队长|073,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9133de5a83c4451785d038ea1a2299fc/1200.m3u8
-汪汪队长|074,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d0231ddf43e8478eb5100daa51dc9e4c/1200.m3u8
-汪汪队长|075,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2b0668368958433da128ebd3ac2078a9/1200.m3u8
-汪汪队长|076,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/44608193b55b4af6a0f33101615cca99/1200.m3u8
-汪汪队长|077,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1934704afe9b40ea91ab404690454a4c/1200.m3u8
-汪汪队长|078,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/df69d5886444407191e7e711d3e6187d/1200.m3u8
-汪汪队长|079,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/08d7b6c522624269843ad614c2a2525c/1200.m3u8
-汪汪队长|080,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f063f2b839d248d19e45c2fe5c42ae2b/1200.m3u8
-汪汪队长|081,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6948d4eb317c4b2caf41139d8ce43fa3/1200.m3u8
-汪汪队长|082,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee0a23f908f5428dbe3bc86310e99522/1200.m3u8
-汪汪队长|083,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ad76ffe7f7a44f6fbeea3ddc3ed7918e/1200.m3u8
-汪汪队长|084,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e9fe924139d044d39313c5e0bc98e57e/1200.m3u8
-汪汪队长|085,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3936b3902d0a4005a36a53cf69308f8b/1200.m3u8
-汪汪队长|086,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/53b32d9b7697455c9183590257069418/1200.m3u8
-汪汪队长|087,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/90843453fd6e49498abc8e86bb282e05/1200.m3u8
-汪汪队长|088,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3b4a9c7d2681432fac5c8284f99d3215/1200.m3u8
-汪汪队长|089,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb05c611282c4878a6becc42177830e4/1200.m3u8
-汪汪队长|090,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1be2af150915484ab8074088bed531fe/1200.m3u8
-汪汪队长|091,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2f3aba478fad40f480595392139cf0c2/1200.m3u8
-汪汪队长|092,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/da01c5616bf543848d1a0515205a5186/1200.m3u8
-汪汪队长|093,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/24079359a62640af9a9066323a606d8d/1200.m3u8
-汪汪队长|094,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/306a276e33f24aa999082842a8298278/1200.m3u8
-汪汪队长|095,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9e63b38e57d64c62a317d5e4bcadcedc/1200.m3u8
-汪汪队长|096,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/56e2077c51294c97bceaf985483d446f/1200.m3u8
-汪汪队长|097,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1630c51673764987aa22610dafd27611/1200.m3u8
-汪汪队长|098,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ede03064fc404259af277bc23f132b2a/1200.m3u8
-汪汪队长|099,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3fef33e46ed4ca5b89d4cfe00dc6df4/1200.m3u8
-汪汪队长|100,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/76e23ba93e054dac87bd10f0e40d6cec/1200.m3u8
-汪汪队长|101,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c7bdfb0bacfc4b76b6492b371645bec9/1200.m3u8
-汪汪队长|102,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/85ce09072ff145edada93afb64fa387f/1200.m3u8
-汪汪队长|103,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/11a3110e23b546878b9fc34ab087fc99/1200.m3u8
-汪汪队长|104,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a076bfa8f5534589a6a32a1211d526f6/1200.m3u8
-汪汪队长|105,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1e628c3b1c7f41ef9569439bbc20c3b1/1200.m3u8
-汪汪队长|106,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a02cb85d5c0a4840ae320f189fef9ad5/1200.m3u8
-汪汪队长|107,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b361d95253e04a75b5c262c067e26e7a/1200.m3u8
-汪汪队长|108,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1ae53296a16475c8bc2667fccf1718f/1200.m3u8
-汪汪队长|109,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb462eedab924864bb52a076eff3f35a/1200.m3u8
-汪汪队长|110,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/667dc8e9785047f4a2bf2008759a0d41/1200.m3u8
-汪汪队长|111,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b1565ee90f7041f68f7b0b8e7ea20b5c/1200.m3u8
-汪汪队长|112,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b45db88225664f4caa3cfbb78e59f518/1200.m3u8
-汪汪队长|113,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/99721ccfa68a4a86af68785667b73448/1200.m3u8
-汪汪队长|114,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6baf2da9c3f64ee3b61876984fb3a17b/1200.m3u8
-汪汪队长|115,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1f949da0589e42fdb548a8b25f731271/1200.m3u8
-汪汪队长|116,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2695a8c996b44da78f2e798087867e0b/1200.m3u8
-汪汪队长|117,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bd42703cc55545be999b776afc0dad2a/1200.m3u8
-汪汪队长|118,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/826bb2829f5b4006905090789000dcbd/1200.m3u8
-汪汪队长|119,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e0130d3876634e44bcc1ff137b96afb5/1200.m3u8
-汪汪队长|120,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a4310f33881422583f905bc3e8f7792/1200.m3u8
-汪汪队长|121,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8b8e54cb3c56410c81b13780612aa97d/1200.m3u8
-汪汪队长|122,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8bab90a799724e28a2737f022afac229/1200.m3u8
-汪汪队长|123,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b7aef8afa43d4fdd980e3a22218a624c/1200.m3u8
-汪汪队长|124,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/198c0b9732a24411876512297e52fd17/1200.m3u8
-汪汪队长|125,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d8cd089e93b8420b9eb09c20638010f3/1200.m3u8
-汪汪队长|126,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a1c4f3c1fa4040aaa231de944652669b/1200.m3u8
-汪汪队长|127,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/703c8fa3b2584becbb626380a5f7868e/1200.m3u8
-汪汪队长|128,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a01e900a410342b696d268c5b53df252/1200.m3u8
-汪汪队长|129,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9e2a4f715ace4daa8e8639f564f7b0bb/1200.m3u8
-汪汪队长|130,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2ed8f6ae82db4fb3b928ec3947a39d93/1200.m3u8
-汪汪队长|131,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cd09d63781a743dd8023e34d6975c7ef/1200.m3u8
-汪汪队长|132,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f1ac7e133bba454c8d9c1ebd64686a6f/1200.m3u8
-汪汪队长|133,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/95e9640f88254fceaeb152838f1bc98d/1200.m3u8
-汪汪队长|134,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/50b62eff67984708a82cd5d2d8647dbb/1200.m3u8
-汪汪队长|135,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c2d21262d0314c7aa56b437971bd47c4/1200.m3u8
-汪汪队长|136,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bebe3e1a4f2d46c2b925a53c8c42c517/1200.m3u8
-汪汪队长|137,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a0e38715b1be470a8600d8ffc18e748c/1200.m3u8
-汪汪队长|138,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c02368a7bbff4f98ad965c19ac3623d1/1200.m3u8
-汪汪队长|139,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a1c181289aa7415d8a2a6bcb8ae26c08/1200.m3u8
-汪汪队长|140,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1dafa7d67aef4050ab794b493fa6401d/1200.m3u8
-汪汪队长|141,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/af37184bf0364abba0ec422d20062d1c/1200.m3u8
-汪汪队长|142,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bd6100554bac41b8981912cb75acb3e2/1200.m3u8
-汪汪队长|143,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/01384039706a4293b893737c50db9b6a/1200.m3u8
-汪汪队长|144,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2a37dbb7254a4902996cec33d8f3e9a7/1200.m3u8
-汪汪队长|145,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/becfaf4e646741ceba2ab5222a43aaa0/1200.m3u8
-汪汪队长|146,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4363040f37734671a6ffbca562acdb94/1200.m3u8
-汪汪队长|147,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2594d4c89b924d63a16b1a7cebe9a818/1200.m3u8
-汪汪队长|148,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/008bfa240bef41b1bc5142a15e2addae/1200.m3u8
-汪汪队长|149,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/558f46f87d8944bbbb2a39f109258f3e/1200.m3u8
-汪汪队长|150,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/83b739a1fda6486bb94c6c715e8ac432/1200.m3u8
-汪汪队长|151,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a1da6b13f1ab488aa1b9b1289342fd11/1200.m3u8
-汪汪队长|152,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cb63c15fcafd46aaaefd113c1972444b/1200.m3u8
-汪汪队长|153,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dbe4359df0e746eb9100ed53d0457726/1200.m3u8
-汪汪队长|154,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2217d3f78e274d1a9d27a15a3eba46c8/1200.m3u8
-汪汪队长|155,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3cfa0410519a475f8fb156b6c5ea8b66/1200.m3u8
-汪汪队长|156,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4e4e2d0eed0c44dfbac96be4592cde1a/1200.m3u8
-汪汪队长|157,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0739508836274a82acab1629038ca833/1200.m3u8
-汪汪队长|158,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/94141755bcdc466ea7573ccf8d9cfac7/1200.m3u8
-汪汪队长|159,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d259eaaf6bec4f6b959b7a9934cf5d09/1200.m3u8
-汪汪队长|160,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/238e547277a4437c806bbf7e3fa0fd4b/1200.m3u8
-汪汪队长|161,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/feab755faa9344eb9e58f0b8e8602621/1200.m3u8
-汪汪队长|162,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d208a1294c534ecda8cf705164ad72f7/1200.m3u8
-汪汪队长|163,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8fe481ea2155419abc47a18b46fa96f5/1200.m3u8
-汪汪队长|164,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8e699928bcdf42af858be041cdc2cd29/1200.m3u8
-汪汪队长|165,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c8b6626e31e84facad547c07b4bfbcbb/1200.m3u8
-汪汪队长|166,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/efe1fb2a97b04ed7aa4729fd53f528a8/1200.m3u8
-汪汪队长|167,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/042e3752c9f0471f9ad9d5ed0a27979e/1200.m3u8
-汪汪队长|168,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/507762f2a33a46c8b5b7750825faecb4/1200.m3u8
-汪汪队长|169,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4f8330d2716947228efcb63242a4fa6a/1200.m3u8
-汪汪队长|170,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f19f82dd5a5f4361b0d461f16a402701/1200.m3u8
-汪汪队长|171,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e2cc371ffbee44f4b1950492f8e99bda/1200.m3u8
-汪汪队长|172,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/84d874c15f9b4cdcb68b8fabda9f5d82/1200.m3u8
-汪汪队长|173,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fe25e9b6543547b59e7551258db48eb0/1200.m3u8
-汪汪队长|174,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b3d687043c1c41de87b33af620235202/1200.m3u8
-汪汪队长|175,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4fa57b923f2d4a64912558b7b697d4d6/1200.m3u8
-汪汪队长|176,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d93b6abb8e1742f3bcafab3a6144bf21/1200.m3u8
-汪汪队长|177,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/60a9d036de8a47dbaf508f9374037a68/1200.m3u8
-汪汪队长|178,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4d07a1fed16e4d3fb74e097adf0def42/1200.m3u8
-汪汪队长|179,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1a5a836bf31747f5bb1592d18de17e21/1200.m3u8
-汪汪队长|180,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/243d474025db4156bdd0837bd886872d/1200.m3u8
-汪汪队长|181,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/89a30ed616ba409b8077f19a110f5d62/1200.m3u8
-汪汪队长|182,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/41c98cb9de454fe1bde5cb39dc9a6fe6/1200.m3u8
-汪汪队长|183,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6b0f3706c64349ad87125afca1f2aaad/1200.m3u8
-汪汪队长|184,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8c302ed372c24020b89bc49615f8553a/1200.m3u8
-汪汪队长|185,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/581e0bbcbd844e78bd907fa416aca7f4/1200.m3u8
-汪汪队长|186,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/868cf1282401478da172530aea5b11a6/1200.m3u8
-汪汪队长|187,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5b8c4987305042e5aa10044f31952aae/1200.m3u8
-汪汪队长|188,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2293e8dc252c4523a0c7ec0e2a1e0df8/1200.m3u8
-汪汪队长|189,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9390e44c0fa74772b78d30029510873e/1200.m3u8
-汪汪队长|190,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/414e977cad634e6a93133410c4f9441e/1200.m3u8
-汪汪队长|191,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f5050ab4a1ce45049ceb35c7890eae92/1200.m3u8
-汪汪队长|192,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/359f7327663549448d12ef03124f00da/1200.m3u8
-汪汪队长|193,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d9dc0878224449608145884243c95f89/1200.m3u8
-汪汪队长|194,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/56662fd507ce4808a6c260cd97fc76ce/1200.m3u8
-汪汪队长|195,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3053f538efda44ee80c2f3c70a75547d/1200.m3u8
-汪汪队长|196,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/362499b6b5a2473a9aa41605d57c2ef5/1200.m3u8
-汪汪队长|197,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a7c2beec0c564c718f0992e3083dcdb3/1200.m3u8
-汪汪队长|198,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aefb4ea477ec4e5798b3bcdde21cb572/1200.m3u8
-汪汪队长|199,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d1eabd94abd34450ab45468e0f1b8b62/1200.m3u8
-汪汪队长|200,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/12931e843f3e4032a8557ea0437a4c7e/1200.m3u8
-汪汪队长|201,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f439f27e151e450fb8a23c17df04a2e4/1200.m3u8
-汪汪队长|202,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aa268326cfce4703b77bd899b5314301/1200.m3u8
-汪汪队长|203,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/99eb9baa803e4aad98804d4a82a04e86/1200.m3u8
-汪汪队长|204,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ab3ada6f1f5b498099fcb2a51be260df/1200.m3u8
-汪汪队长|205,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4fbe78e68fd4479faab69a1e4ef8bbda/1200.m3u8
-汪汪队长|206,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/71d880f884d142aab61115952f761a75/1200.m3u8
-旺旺队长|297,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6c438ef0a3cc492fa136ae39a4da941e/1200.m3u8
-乐翻天,#genre#
-动画乐翻天|1,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b4667f3a746e4d2382835b3d2c2a2ff7/1200.m3u8
-动画乐翻天|2,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/584d0536b3914dabb03a60d7426c46e6/1200.m3u8
-动画乐翻天|3,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/904892bff8ab4de894eb46685fc6fe87/1200.m3u8
-动画乐翻天|4,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e272be58a0694991bbdb2131ae20b5ed/1200.m3u8
-动画乐翻天|5,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/29d4a442c38042a1a924183e87ae534e/1200.m3u8
-动画乐翻天|6,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/57b9734dedbc472dac166ad1ae90f58f/1200.m3u8
-动画乐翻天|7,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ca3f5b58da1845919ce457665c609d7b/1200.m3u8
-动画乐翻天|8,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d95f0e7ae4014c289aed82e0a2c57690/1200.m3u8
-动画乐翻天|9,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e55f52ff4cae44cda78051bf28b040fd/1200.m3u8
-动画乐翻天|10,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b83ba09ba1d64cc7b4c942050895367f/1200.m3u8
-动画乐翻天|11,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1db00bd5298a4f0e8d4532c9151c2aba/1200.m3u8
-动画乐翻天|12,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/26c969818c694784b2c6f6fb8958e255/1200.m3u8
-动画乐翻天|13,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ec5f37043ef44b86ba926bd67896cc4f/1200.m3u8
-动画乐翻天|14,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e0db2445002a4b67b57d12b4c33c1529/1200.m3u8
-动画乐翻天|15,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b759cd1e63d8451b83abd147309ee3db/1200.m3u8
-动画乐翻天|16,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a782842e5a094048a3a62edd92ff37dc/1200.m3u8
-动画乐翻天|17,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a072fb46e9474a26babeb0644d5e8dc3/1200.m3u8
-动画乐翻天|18,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/671f284dffe04d518e1f047aac5916c8/1200.m3u8
-动画乐翻天|19,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/53877bcf360845ab9c61b6809aa3132e/1200.m3u8
-动画乐翻天|20,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8675adb6c9284dbeb9f0f600feafd555/1200.m3u8
-动画乐翻天|21,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0f9ac8e8b891441a9ea32d1b0585cc3c/1200.m3u8
-动画乐翻天|22,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4393a42c78574308aec953c6609410c1/1200.m3u8
-动画乐翻天|23,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/79d0862e69934cea8ba411e7a7f8b010/1200.m3u8
-动画乐翻天|24,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1c27b0871b1a43a09eb3a354f5cc6350/1200.m3u8
-动画乐翻天|25,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b765d2bf8944411a99112c5aaeef374e/1200.m3u8
-动画乐翻天|26,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3a35a4f130dd409590b68e6bd90e5cb7/1200.m3u8
-动画乐翻天|27,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/62ae9373c9d349d98cfd06bdd7e0b1fb/1200.m3u8
-动画乐翻天|28,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7fad1b2a5103404289df3357430fe8b6/1200.m3u8
-动画乐翻天|29,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/900a6d895d884a00b9d90baee0d28060/1200.m3u8
-动画乐翻天|30,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/edece10a914641c18ea9e5bd43da3b21/1200.m3u8
-动画乐翻天|31,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a1c81709e2674081b574849d7dc6ea8d/1200.m3u8
-动画乐翻天|32,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6cdd79d9c0f24ae1bddc428861bb25b2/1200.m3u8
-动画乐翻天|33,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/51b344ad1ba441f592c92c0a57b3dbaf/1200.m3u8
-动画乐翻天|34,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5a794d63f7364a6fa21343f7dd63d984/1200.m3u8
-动画乐翻天|35,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3983c39b16a4241a0ee3245f85aa418/1200.m3u8
-动画乐翻天|36,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/de975ff372664c16966a16bf1fd77017/1200.m3u8
-动画乐翻天|37,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e42ec6ee0b2d4dcb99e7051039ae7df7/1200.m3u8
-动画乐翻天|38,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd8a89db077a43d8a2adf07e96a1d357/1200.m3u8
-动画乐翻天|39,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf1b88525a174043a9e738a131ebf0f4/1200.m3u8
-动画乐翻天|40,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/822ac70688e8418cbbbc065be2f480ff/1200.m3u8
-动画乐翻天|41,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/059997364e294b8e95dfb6634ca94dd5/1200.m3u8
-动画乐翻天|42,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/59575c7a2bec4a6a94f81c360f518176/1200.m3u8
-动画乐翻天|43,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1f15a6144a8b41e0a2a2476912cedcb5/1200.m3u8
-动画乐翻天|44,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f345af2c1c14129a6ff1cb255e806ae/1200.m3u8
-动画乐翻天|45,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8a295020be35467e9496303ed8cbecc6/1200.m3u8
-动画乐翻天|46,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c35ea628e33c4df9a48aa0cc003afe72/1200.m3u8
-动画乐翻天|47,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e4a14c9006a146d0a5594c04cd19b25b/1200.m3u8
-动画乐翻天|48,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1075bd4eac7248a2b5e78613c27ff6f3/1200.m3u8
-动画乐翻天|49,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b37b06579bbe462999d516b4ffca854e/1200.m3u8
-动画乐翻天|50,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7cf4ce2778e34fb49c313cbff1e99a1b/1200.m3u8
-动画乐翻天|51,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5f45db998ce24206a9314f135d6cad7f/1200.m3u8
-动画乐翻天|52,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/688dc59b964d4daeb1569747bdc1d3ae/1200.m3u8
-动画乐翻天|53,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/224dba8abd374a47929aec00e6f0eb8a/1200.m3u8
-动画乐翻天|54,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b02a892510364e10b051aaf3a6444ba7/1200.m3u8
-动画乐翻天|55,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1bc4e0c9f5ea44ca86cd4fde526021f1/1200.m3u8
-动画乐翻天|56,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d5dc18fd13d44320b29f275d60f1bee7/1200.m3u8
-动画乐翻天|57,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1fcd870590f94d0d89499f31be82a3cc/1200.m3u8
-动画乐翻天|58,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7c9af2a471e449c48c84decc85aaa9dd/1200.m3u8
-动画乐翻天|59,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/600618e043984d48b6d5a44e8c1b201a/1200.m3u8
-动画乐翻天|60,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a29145e7093440afa76ea83f85e4a383/1200.m3u8
-动画乐翻天|61,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cf73954bb307408a8f7f68f1ecea8232/1200.m3u8
-动画乐翻天|62,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e0cbdc48e09244a7afeb4445ef2b7f56/1200.m3u8
-动画乐翻天|63,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/65b3bc9da9464b4997b26a3d3791b378/1200.m3u8
-动画乐翻天|64,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/913dcbf029914c4785583764c9cd57f3/1200.m3u8
-动画乐翻天|65,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/80004432036f4b80a48b01cf71938155/1200.m3u8
-动画乐翻天|66,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d5bd0b00cd7c49ee90b80218de5f8923/1200.m3u8
-动画乐翻天|67,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/062654fb7d10499b81d93c5003937cea/1200.m3u8
-动画乐翻天|68,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d07bc18a56104698a1dc899c0474786b/1200.m3u8
-动画乐翻天|69,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/eaccc1f694e3447ea99f2ca3704f8a5d/1200.m3u8
-动画乐翻天|70,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/541797b800604546accd553c29136c84/1200.m3u8
-动画乐翻天|71,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/470c2318e6ad44cba60a37c10421c4d3/1200.m3u8
-动画乐翻天|72,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c9829766056c4389a1838fa44813bb91/1200.m3u8
-动画乐翻天|73,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d2a9049edcfa4154abc1de1fb49fae30/1200.m3u8
-动画乐翻天|74,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4ed4e4ba3e6346cbba1ceeae0c4278f8/1200.m3u8
-动画乐翻天|75,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/13ab7aa7d7c448f49f56e6296f7ae719/1200.m3u8
-动画乐翻天|76,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/dd63ff54aee940ba8fdab87d21e5f60c/1200.m3u8
-动画乐翻天|77,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/046598839aee4fbd91180177778c4e81/1200.m3u8
-动画乐翻天|78,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d4d48904958c42d78390afb6b630d042/1200.m3u8
-动画乐翻天|79,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/de65a80f06f54c2897f808c9abf00bd4/1200.m3u8
-动画乐翻天|80,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7855d47f343d42a9b3ac5bc24ec2c7e4/1200.m3u8
-动画乐翻天|81,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/763dc6802b664f07b781b03ca1ed8571/1200.m3u8
-动画乐翻天|82,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/769a15d6da26470ba1c73e07ad306373/1200.m3u8
-动画乐翻天|83,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3c86fd9091a74094b69af0bacb40cd04/1200.m3u8
-动画乐翻天|84,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2ac7fcf2fd3d42b3a26fa2047d39185f/1200.m3u8
-动画乐翻天|85,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d48b15036a4b4a42b430025c696a7fad/1200.m3u8
-动画乐翻天|86,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a231f707a36e4024bb1ccf6bc118108d/1200.m3u8
-动画乐翻天|87,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a833e8d317d4431f8c8faf0d64de10da/1200.m3u8
-动画乐翻天|88,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c4463d644ab5424d85b52f7279583861/1200.m3u8
-动画乐翻天|89,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1a016666a3b24cc3bfb38a26aab2edbe/1200.m3u8
-动画乐翻天|90,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/212d6e5c4bf048c98c50fedb5f38cb48/1200.m3u8
-动画乐翻天|91,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4cf4fd8fb93a44df971f6f22b0442cb1/1200.m3u8
-动画乐翻天|92,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/419f7dddce084932bbe3e6df38b4f990/1200.m3u8
-动画乐翻天|93,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7cd84a1f6a584c5598a0a30c55351acd/1200.m3u8
-动画乐翻天|94,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9e9f40d572f34e10b8374edf8bff57e3/1200.m3u8
-动画乐翻天|95,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a0efda3572b240c19109dfd3f1f737f2/1200.m3u8
-动画乐翻天|96,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7e6d6cc44a2a44abbd685244aea7460b/1200.m3u8
-动画乐翻天|97,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/124ae5351e6145bb9d4a972bcd704a13/1200.m3u8
-动画乐翻天|98,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3823b0a397454309b1b9c6118a335f08/1200.m3u8
-动画乐翻天|99,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1ab5c7452a4e4d6687de962ed01912bd/1200.m3u8
-动画乐翻天|100,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9c000151418147b5b7234d696b190fd8/1200.m3u8
-动画乐翻天|101,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ca726ae3d085424a8b2a7fc23cf5ee62/1200.m3u8
-动画乐翻天|102,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/20dba9f4dffb41db97798450272df4f0/1200.m3u8
-动画乐翻天|103,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/81372bfab60445e3b96f70e180713404/1200.m3u8
-动画乐翻天|104,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ed36cbcc875642d8af0b6c9deeb19873/1200.m3u8
-动画乐翻天|105,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/83db2565751549cf903b2563cc764a3e/1200.m3u8
-动画乐翻天|106,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/279aea90032d47dabe7985e99983d6ba/1200.m3u8
-动画乐翻天|107,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee4e2d36a84c438aa9290327781f9c8d/1200.m3u8
-动画乐翻天|108,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f2b86a03bb684c3db425af2df3d50e31/1200.m3u8
-动画乐翻天|109,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/401f3bbb22a943efa7c323ed22be1aaf/1200.m3u8
-动画乐翻天|110,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a63504042c954870abfc8e76d3c1f91b/1200.m3u8
-动画乐翻天|111,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/044a1e2e01194502823de6999da45749/1200.m3u8
-动画乐翻天|112,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0be2fc2baf834f2d88cb979deab624fe/1200.m3u8
-动画乐翻天|113,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e019ca856e0f48ff97a774a515a2e04d/1200.m3u8
-动画乐翻天|114,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/183fb53d0d3a4ef6939c92ca708224bf/1200.m3u8
-动画乐翻天|115,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9b38c18ee03b49c593fbec37e7b3b485/1200.m3u8
-动画乐翻天|116,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3d4025a50e7f49529e8603d19878e1b5/1200.m3u8
-动画乐翻天|117,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/30d67f76482d4d3fa3d1cfd8da4fc628/1200.m3u8
-动画乐翻天|118,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/584e0cdcb21a4d74986e5d28390e17ef/1200.m3u8
-动画乐翻天|119,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1945ff42f51340b1ab6ee79b226c35bf/1200.m3u8
-动画乐翻天|120,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/61f652d827474671907dafe0d2187637/1200.m3u8
-动画乐翻天|121,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0c3cfa0fc0444cb9b1094d16ce359ad0/1200.m3u8
-动画乐翻天|122,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3c4f857bb1e948cfa92d27fd0bd1b199/1200.m3u8
-动画乐翻天|123,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f5bd7b5ce86e42db8e9f5bd510f6f7c6/1200.m3u8
-动画乐翻天|124,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/97466d588c004c229df7294cf401ab62/1200.m3u8
-动画乐翻天|125,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b073ed3127cf4b8b966215bc715fdcbd/1200.m3u8
-动画乐翻天|126,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/827f3492219645ca9010b7241a3d9f12/1200.m3u8
-动画乐翻天|127,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/776058e8ae2041338955d4bf9ebad1bd/1200.m3u8
-动画乐翻天|128,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/737493dbc8e64023aeb70bafa0ee89ae/1200.m3u8
-动画乐翻天|129,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b2e88d4b1079494bb7ab39a180f9ab09/1200.m3u8
-动画乐翻天|130,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ed07072fe684345870ff452479b0092/1200.m3u8
-动画乐翻天|131,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/be70b405aa5b429a8f116ac64fff213e/1200.m3u8
-动画乐翻天|132,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/07d123b6b48045f8a03cc8048e82c316/1200.m3u8
-动画乐翻天|133,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ee50f5dd8a51454cb1e30b97b27681c8/1200.m3u8
-动画乐翻天|134,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/825dc8077a4846219eb60eb9a251a6de/1200.m3u8
-动画乐翻天|135,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/12bd2a38810d49a693c5ec1654a6a0e4/1200.m3u8
-动画乐翻天|136,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/555d01d4d3ef41858384193e82686bf6/1200.m3u8
-动画乐翻天|137,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2ae263a82f534908b0bc7565c4384188/1200.m3u8
-动画乐翻天|138,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6ab60beb6ff74063a7c8a290384ed3a4/1200.m3u8
-动画乐翻天|139,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1cbec41fc50740e398e3a666ab663420/1200.m3u8
-动画乐翻天|140,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f173715b6c7b44b891aa18f92c01095e/1200.m3u8
-动画乐翻天|141,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/02059de0ff2d4f56969aed1e1f4ac9e2/1200.m3u8
-动画乐翻天|142,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3500f74e6189458f9ff6e5b7f4064734/1200.m3u8
-动画乐翻天|143,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/098e39c11709457187bf1c43e689ffbb/1200.m3u8
-动画乐翻天|144,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6b65cf85a22b41dea32a5635b56ed064/1200.m3u8
-动画乐翻天|145,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/144ab3f925d9498f91c2f847a3c99236/1200.m3u8
-动画乐翻天|146,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5d1d2cc09ad74ecbaf7a909b04dc2eff/1200.m3u8
-动画乐翻天|147,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b88184bbd2314803af3f55edd8520760/1200.m3u8
-动画乐翻天|148,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cc8f54144cb04cde828f37fc744701e6/1200.m3u8
-动画乐翻天|149,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9d54938ac47c418f972adba6ab12cc34/1200.m3u8
-动画乐翻天|150,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9951a25dfd414c999519ac87ff166246/1200.m3u8
-动画乐翻天|151,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/de6b589b1c6647deab8bbf993c2f0c02/1200.m3u8
-动画乐翻天|152,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/193e0d1b4ee24d26b3a458a11c626c2e/1200.m3u8
-动画乐翻天|153,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8b6ba81978cf4e73b30289f18350a6fa/1200.m3u8
-动画乐翻天|154,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/77111c1722834f4291278926d1a0c226/1200.m3u8
-动画乐翻天|155,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/efbd040e94c144bb8a74e2d63845c5b4/1200.m3u8
-动画乐翻天|156,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9139376bb98d495aabcfb7ba95b9947e/1200.m3u8
-动画乐翻天|157,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4790548ce4e84fc189e2485860431b93/1200.m3u8
-动画乐翻天|158,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2ff5cbee41c04a2fa336f263291d69c1/1200.m3u8
-动画乐翻天|159,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/eda1c82647e54c2196aa15dc80def270/1200.m3u8
-动画乐翻天|160,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/963ade9aede54d2da53f48f2f3c4cf37/1200.m3u8
-动画乐翻天|161,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5df26c4c7b754ba2aba3f0a9b1d9fe3d/1200.m3u8
-动画乐翻天|162,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1be4e0932fb4418ebb333083dac8533d/1200.m3u8
-动画乐翻天|163,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/644926d099f341848883bfebb29d3010/1200.m3u8
-动画乐翻天|164,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bf418ebed81c46d29562c58b29b140d2/1200.m3u8
-动画乐翻天|165,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/08289beaa8c845ba98a59547550914bc/1200.m3u8
-动画乐翻天|166,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e220f245fddc42e4bb23ee09c043c06f/1200.m3u8
-动画乐翻天|167,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/45803c4f41ab4b9cb57e44bf20024059/1200.m3u8
-动画乐翻天|168,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aed789146853437dbc0a5e38028ef1b5/1200.m3u8
-动画乐翻天|169,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3f4de59bfda842448bc634309cbb7e99/1200.m3u8
-动画乐翻天|170,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/362365997b474c0b9a500dc5c0c685b0/1200.m3u8
-动画乐翻天|171,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0a70541aba5f4536a3495eb00e53b4cb/1200.m3u8
-动画乐翻天|172,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/badc399a148e46d4a6baba912c45efaa/1200.m3u8
-动画乐翻天|173,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aad9a3a99b0d497989c38b7e52d372ed/1200.m3u8
-动画乐翻天|174,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3c610fa5b9684f0b8f3d992ec4774e4c/1200.m3u8
-动画乐翻天|175,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a80afe9037214643a05476a18dd2916f/1200.m3u8
-动画乐翻天|176,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aca4c80f2e1348b3a638a384cb3dacbd/1200.m3u8
-动画乐翻天|177,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5eaefcf83fd5407cbf5719e9ef505c53/1200.m3u8
-动画乐翻天|178,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f31f1e326d8643448e5e1b39ee4faf91/1200.m3u8
-动画乐翻天|179,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7f0a8f917bec4783b406ecc4214c7641/1200.m3u8
-动画乐翻天|180,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a015d52f7eb44b03bc406ea8bac3f317/1200.m3u8
-动画乐翻天|181,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/adce80895aa64878b7ae713ddae9e5f2/1200.m3u8
-动画乐翻天|182,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/374067cee0644903a1b31836e61913e8/1200.m3u8
-动画乐翻天|183,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4b595ee9decb4d6086376b725952c1f9/1200.m3u8
-动画乐翻天|184,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/af8ed11f0c944ea6ba248d685064c099/1200.m3u8
-动画乐翻天|185,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/14a4a9eb73cd48f6bdf1d5f7bad4046e/1200.m3u8
-动画乐翻天|186,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b0d509eab8574af2babe8eab7e2f5250/1200.m3u8
-动画乐翻天|187,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fe13c974471a4ec68ca6462c43787c93/1200.m3u8
-动画乐翻天|188,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/94d7ee66e6964f8c983aff81ce8ae406/1200.m3u8
-动画乐翻天|189,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/265d19936ade47db973a218ec5197e6c/1200.m3u8
-动画乐翻天|190,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/890751db6caa4634b3e9e03581e54427/1200.m3u8
-动画乐翻天|191,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd5f0efd8bea482b84169226abd88e52/1200.m3u8
-动画乐翻天|192,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b3f970893d4845caba9cf45fbfd3af00/1200.m3u8
-动画乐翻天|193,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d25210f374a14012b0ec804cc5bf1ba0/1200.m3u8
-动画乐翻天|194,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7eef4a68db6d442a94c4bfbc36299218/1200.m3u8
-动画乐翻天|195,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/66c1e11b967d49c4a2c3512e21d7044a/1200.m3u8
-动画乐翻天|196,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ff72a540dc0f4c5898edecb5e88c0263/1200.m3u8
-动画乐翻天|197,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/496d7f65fa0d4339915b3af7367a1482/1200.m3u8
-动画乐翻天|198,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/715b69bd822446ee8910964b42289ecf/1200.m3u8
-动画乐翻天|199,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/cdc1fc85529e4baab4b8c1e5d34a3f51/1200.m3u8
-动画乐翻天|200,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/159852f01b974cc5be92a7acb66c4a09/1200.m3u8
-动画乐翻天|201,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/af5b013a600445118a2033a20c219709/1200.m3u8
-动画乐翻天|202,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7279660d2bcf4e7cb10bc48c06429d46/1200.m3u8
-动画乐翻天|203,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0a5a6f6404f6474daa7d7d463265c5bf/1200.m3u8
-动画乐翻天|204,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/080415be349c430a96fa35b652ec4c3d/1200.m3u8
-动画乐翻天|205,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8e769619ca1c4d3a82abdaf257a62399/1200.m3u8
-动画乐翻天|206,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/71bf8601e7eb46f4a000314aaf37eeed/1200.m3u8
-动画乐翻天|207,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/931e0312bed446f5815c395f34729471/1200.m3u8
-动画乐翻天|208,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fc171bc40d624664b26f7cb80cb5414d/1200.m3u8
-动画乐翻天|209,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f414050993f34cc595c444c19ed89b10/1200.m3u8
-动画乐翻天|210,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4f06c8d8f3c7406f96045a23cc8f035c/1200.m3u8
-动画乐翻天|211,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f0dc2767c77d4fa9b422993d9255fc2b/1200.m3u8
-动画乐翻天|212,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0c6b4090fece42f4bfd56b7b6a74e11a/1200.m3u8
-动画乐翻天|213,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/82aa037a8f9b4cc98eb989b2287009e6/1200.m3u8
-动画乐翻天|214,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c7d98b6e78cf4d6f90b09bbc3412b261/1200.m3u8
-动画乐翻天|215,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e4d38d61d9b24154af2720d07132fb4d/1200.m3u8
-动画乐翻天|216,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/edcd57aba0974db1af57241dd51a8efd/1200.m3u8
-动画乐翻天|217,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aca8e41683d14d869cd4cc12df766b3a/1200.m3u8
-动画乐翻天|218,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3a0ddf7ba4654449b8be85fb40cf1377/1200.m3u8
-动画乐翻天|219,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6aa2a85040044f7fb4d000af9dafd9b7/1200.m3u8
-动画乐翻天|220,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/25ee52ed1aa641d88762002bad24471a/1200.m3u8
-动画乐翻天|221,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/97a18fa7d9804f45bd16d5778e9d9fbd/1200.m3u8
-动画乐翻天|222,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6a42513e617a4d5ba4d61176c5a15d0d/1200.m3u8
-动画乐翻天|223,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1025b33f3b5f493295b2338f01538d09/1200.m3u8
-动画乐翻天|224,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8536002cf6d5476b965f755a6c38d23a/1200.m3u8
-动画乐翻天|225,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/26a50724bf21436aad6388084fb1cf19/1200.m3u8
-动画乐翻天|226,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0b250a314e024fc19a4f5e6c6df0c986/1200.m3u8
-动画乐翻天|227,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/86d29b91818c40d0967d2f33b590c3ff/1200.m3u8
-动画乐翻天|228,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b0c423a6205d44ab937f9f910f802262/1200.m3u8
-动画乐翻天|229,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4c64079f1618406294ee3ea5976daa92/1200.m3u8
-动画乐翻天|230,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9ee9a1fa0d254c22953a8e122d7f05c3/1200.m3u8
-动画乐翻天|231,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8b18418a7f2749a8ba26598953ba4911/1200.m3u8
-动画乐翻天|232,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/14d409519abd4622a900586e2d2181bf/1200.m3u8
-动画乐翻天|233,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0623ec14b214414786458b6b84784b0d/1200.m3u8
-动画乐翻天|234,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b911e2dede1a4f5981c3bdb393213702/1200.m3u8
-动画乐翻天|235,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/37e717453e0344348ad5590fb05ddb60/1200.m3u8
-动画乐翻天|236,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6feab632ab164c6e89fb56355f503a18/1200.m3u8
-动画乐翻天|237,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/8271a788a49549e08d27b30e81a617e5/1200.m3u8
-动画乐翻天|238,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/ca2b40e69f924dff818426f39fa454de/1200.m3u8
-动画乐翻天|239,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a2faed4da4894271ad9b896e3b3dc158/1200.m3u8
-动画乐翻天|240,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0ae9808afd6c4febbbad467e616fc79a/1200.m3u8
-动画乐翻天|241,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3458006dfafe492180a3f368e9d69f8b/1200.m3u8
-动画乐翻天|242,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b79bce75766743b5b16bdf46cecb6b83/1200.m3u8
-动画乐翻天|243,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e658f7fb22144878a239020142b1f6ce/1200.m3u8
-动画乐翻天|244,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f9266d9565a24296820e3644318905bf/1200.m3u8
-动画乐翻天|245,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b815d420c6074c208da155ee5c4b5c7e/1200.m3u8
-动画乐翻天|246,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f8f158101f93409b94e13aa7b74ea06b/1200.m3u8
-动画乐翻天|247,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c3e556a7b0e9453c9fe66d9dc9266ad9/1200.m3u8
-动画乐翻天|248,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b67ce3eee20b42e8afc39d7e1c68c0fa/1200.m3u8
-动画乐翻天|249,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9243ef89ab844dafb4e02477ba72b4f2/1200.m3u8
-动画乐翻天|250,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3bd225db76e7406294c56ddef54ec8ea/1200.m3u8
-动画乐翻天|251,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5fdff8c43bde4b019fc1052db39c798c/1200.m3u8
-动画乐翻天|252,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bee8cedaa4ec4de8a7e248ab7b5fe7e6/1200.m3u8
-动画乐翻天|253,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/509d8132c8d14b03a9aa6de7b39b6860/1200.m3u8
-动画乐翻天|254,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9ab55ca0a3444f32a4d98a2aa6ea0423/1200.m3u8
-动画乐翻天|255,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0acf9842317c4f638f999d1e4bbf3cf1/1200.m3u8
-动画乐翻天|256,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7a694da8ab7e425bac21bbf2e5dd42ce/1200.m3u8
-动画乐翻天|257,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3aa5589f462c4e6eb55e9b0b368be6f2/1200.m3u8
-动画乐翻天|258,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0a92c4996f6940b782dac7cbbcb33d36/1200.m3u8
-动画乐翻天|259,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a6fae1a0e0864ac8bc606b2c05814b79/1200.m3u8
-动画乐翻天|260,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4447a70b142c43bd8559d28674aa5a6a/1200.m3u8
-动画乐翻天|261,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2df005835c9740e4830b723cad3dde79/1200.m3u8
-动画乐翻天|262,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3e24853e7434b389bae7b12eaabceab/1200.m3u8
-动画乐翻天|263,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a0510c0c4e254d269c933f84d3c8c548/1200.m3u8
-动画乐翻天|264,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/33e9e9c87b87475a891f3bae9280ec15/1200.m3u8
-动画乐翻天|265,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a78ae97e8c9d4805aed0327180641818/1200.m3u8
-动画乐翻天|266,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/519455fb59d5472782af0d968028a481/1200.m3u8
-动画乐翻天|267,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/986d1aedf2d14761a5ad588c3dcdf099/1200.m3u8
-动画乐翻天|268,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e3145610b8d24bc0a9b7362cc05ed199/1200.m3u8
-动画乐翻天|269,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4d5daba25f2b4e4ca7d4aff866b4e913/1200.m3u8
-动画乐翻天|270,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/c5a9178fc3dc45a0b21fe068c11e4e44/1200.m3u8
-动画乐翻天|271,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0a9e441a704e400790c1a3f9abe34cfc/1200.m3u8
-动画乐翻天|272,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/88ec2b256b4148e497f8f971cb5ec380/1200.m3u8
-动画乐翻天|273,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/24d21d92d1fb4966b07e8da572da8b63/1200.m3u8
-动画乐翻天|274,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/41edfdcb6b584ca4a532a0c37577740d/1200.m3u8
-动画乐翻天|275,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/6fc961176ebe4a698484639a553aad88/1200.m3u8
-动画乐翻天|276,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/92604ba1911e4433987596f3f55b8644/1200.m3u8
-动画乐翻天|277,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/40090c57d7ca452aaf1017ff70dac2be/1200.m3u8
-动画乐翻天|278,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/2009e97d08eb42ea90a714857e5a48a4/1200.m3u8
-动画乐翻天|279,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/5109d005998b46c78016f92f2bde9172/1200.m3u8
-动画乐翻天|280,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/0713f51d96784a5b9fea6779af0741e3/1200.m3u8
-动画乐翻天|281,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d583fa912765405e99e87d37efa7ae4e/1200.m3u8
-动画乐翻天|282,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/88a72b128e5c4b2bba2a6defbdc9efd1/1200.m3u8
-动画乐翻天|283,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/a8e7fb17e374468aaddebb92fbef7673/1200.m3u8
-动画乐翻天|284,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/bef85f1ef8e94aa8a9daa01cab940450/1200.m3u8
-动画乐翻天|285,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/4232f67de07c4a5d81286a31ea47455c/1200.m3u8
-动画乐翻天|286,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/aadbf26193344582bf76b2b5f8b22a22/1200.m3u8
-动画乐翻天|287,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b993adc90a2f44938e798a5ea2e031bc/1200.m3u8
-动画乐翻天|288,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/46fd359667344b2093c6b4801626ee98/1200.m3u8
-动画乐翻天|289,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/597c06ec153d4387a7601a10e42b7826/1200.m3u8
-动画乐翻天|290,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/b50fbd52005747ecad0929751a889b12/1200.m3u8
-动画乐翻天|291,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/e608b9ad077847ba89dad7e77065cb36/1200.m3u8
-动画乐翻天|292,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/fd0f0557d6684a76bce2981cb856d5fe/1200.m3u8
-动画乐翻天|293,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d41be15b5f414ac79cd8e7637dee69ef/1200.m3u8
-动画乐翻天|294,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/02a7169eb3004e19b9e82c23d14cd5b2/1200.m3u8
-动画乐翻天|295,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/f812104b48504fae91fe9377945fd01e/1200.m3u8
-动画乐翻天|296,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/9fbd06a9f19542dda886b65a65731fc4/1200.m3u8
+download rate exceeds the limit, please purchase high-speed traffic
\ No newline at end of file
diff --git a/tvboxqq/少儿频道/py/py_cctv_1.py b/tvboxqq/少儿频道/py/py_cctv_1.py
index f7b2542..6b6cf87 100644
--- a/tvboxqq/少儿频道/py/py_cctv_1.py
+++ b/tvboxqq/少儿频道/py/py_cctv_1.py
@@ -1,192 +1 @@
-#coding=utf-8
-#!/usr/bin/python
-import sys
-sys.path.append('..')
-from base.spider import Spider
-import json
-import time
-import base64
-import re
-
-class Spider(Spider): # 元类 默认的元类 type
- def getName(self):
- return "央视片库"
- def init(self,extend=""):
- print("============{0}============".format(extend))
- pass
- def isVideoFormat(self,url):
- pass
- def manualVideoCheck(self):
- pass
- def homeContent(self,filter):
- result = {}
- cateManual = {
-
- "动画片": "动画片",
-
- #"特别节目": "特别节目"
- }
- classes = []
- for k in cateManual:
- classes.append({
- 'type_name':k,
- 'type_id':cateManual[k]
- })
- result['class'] = classes
- if(filter):
- result['filters'] = self.config['filter']
- return result
- def homeVideoContent(self):
- result = {
- 'list':[]
- }
- return result
- def categoryContent(self,tid,pg,filter,extend):
- result = {}
- month = ""
- year = ""
- if 'month' in extend.keys():
- month = extend['month']
- if 'year' in extend.keys():
- year = extend['year']
- if year == '':
- month = ''
- prefix = year + month
-
- url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955899450127&area=&sc=&fc=%E5%8A%A8%E7%94%BB%E7%89%87&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
- if tid=="电视剧":
- url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955853485115&area=&sc=&fc=%E7%94%B5%E8%A7%86%E5%89%A7&year=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
- elif tid=="纪录片":
- url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955924871139&fc=%E7%BA%AA%E5%BD%95%E7%89%87&channel=&sc=&year=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
- elif tid=="4":
- url="https://api.cntv.cn/list/getVideoAlbumList?channelid=CHAL1460955953877151&channel=&sc=&fc=%E7%89%B9%E5%88%AB%E8%8A%82%E7%9B%AE&bigday=&letter=&p={0}&n=24&serviceId=tvcctv&topv=1&t=json"
- suffix = ""
- jo = self.fetch(url.format(pg),headers=self.header).json()
- vodList=jo["data"]["list"]
- videos = []
- for vod in vodList:
- lastVideo =vod['url']
- brief=vod['brief']
- if len(brief) == 0:
- brief = ' '
- if len(lastVideo) == 0:
- lastVideo = '_'
- guid = tid+'###'+vod["title"]+'###'+lastVideo+'###'+vod['image']+'###'+brief
- title = vod["title"]
- img = vod['image']
- videos.append({
- "vod_id":guid,
- "vod_name":title,
- "vod_pic":img,
- "vod_remarks":''
- })
- result['list'] = videos
- result['page'] = pg
- result['pagecount'] = 9999
- result['limit'] = 90
- result['total'] = 999999
- return result
- def detailContent(self,array):
- aid = array[0].split('###')
- if aid[2].find("http")<0:
- return {}
- tid = aid[0]
- logo = aid[3]
- lastVideo = aid[2]
- title = aid[1]
- date = aid[0]
- if lastVideo == '_':
- return {}
- rsp = self.fetch(lastVideo)
- htmlTxt=rsp.text
- column_id = ""
- videoList = []
- patternTxt=r"'title':\s*'(.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'url':\s*'(.+?)'"
- titleIndex=0
- UrlIndex=3
- if tid=="电视剧" or tid=="纪录片":
- patternTxt=r"'title':\s*'(.+?)',\n{0,1}\s*'brief':\s*'(.+?)',\n{0,1}\s*'img':\s*'(.+?)',\n{0,1}\s*'url':\s*'(.+?)'"
- titleIndex=0
- UrlIndex=3
- elif tid=="特别节目":
- patternTxt=r'class="tp1">'
- titleIndex=1
- UrlIndex=0
- #https://api.cntv.cn/NewVideo/getVideoListByAlbumIdNew?id=VIDA3YcIusJ9mh4c9mw5XHyx230113&serviceId=tvcctv//由于方式不同暂时不做
- pattern = re.compile(patternTxt)
- ListRe=pattern.findall(htmlTxt)
- for value in ListRe:
- videoList.append(value[titleIndex]+"$"+value[UrlIndex])
- if len(videoList) == 0:
- return {}
- vod = {
- "vod_id":array[0],
- "vod_name":title,
- "vod_pic":logo,
- "type_name":tid,
- "vod_year":date,
- "vod_area":"",
- "vod_remarks":date,
- "vod_actor":"",
- "vod_director":column_id,
- "vod_content":aid[4]
- }
- vod['vod_play_from'] = 'CCTV'
- vod['vod_play_url'] = "#".join(videoList)
- result = {
- 'list':[
- vod
- ]
- }
- return result
-
- def searchContent(self,key,quick):
- result = {
- 'list':[]
- }
- return result
- def playerContent(self,flag,id,vipFlags):
- result = {}
- rsp = self.fetch(id)
- htmlTxt=rsp.text
- pattern = re.compile(r'var\sguid\s*=\s*"(.+?)";')
- ListRe=pattern.findall(htmlTxt)
- if ListRe==[]:
- return result
- url = "https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid={0}".format(ListRe[0])
- jo = self.fetch(url,headers=self.header).json()
- link = jo['hls_url'].strip()
- rsp = self.fetch(link,headers=self.header)
- content = rsp.text.strip()
- arr = content.split('\n')
- urlPrefix = self.regStr(link,'(http[s]?://[a-zA-z0-9.]+)/')
-
- subUrl = arr[-1].split('/')
- subUrl[3] = '1200'
- subUrl[-1] = '1200.m3u8'
- hdUrl = urlPrefix + '/'.join(subUrl)
-
- url = urlPrefix + arr[-1]
-
- hdRsp = self.fetch(hdUrl,headers=self.header)
- if hdRsp.status_code == 200:
- url = hdUrl
-
- result["parse"] = 0
- result["playUrl"] = ''
- result["url"] = url
- result["header"] = ''
- return result
-
- config = {
- "player": {},
- "filter": {"CCTV":[{"key":"cid","name":"频道","value":[{"n":"全部","v":""},{"n":"CCTV-1综合","v":"EPGC1386744804340101"},{"n":"CCTV-2财经","v":"EPGC1386744804340102"},{"n":"CCTV-3综艺","v":"EPGC1386744804340103"},{"n":"CCTV-4中文国际","v":"EPGC1386744804340104"},{"n":"CCTV-5体育","v":"EPGC1386744804340107"},{"n":"CCTV-6电影","v":"EPGC1386744804340108"},{"n":"CCTV-7国防军事","v":"EPGC1386744804340109"},{"n":"CCTV-8电视剧","v":"EPGC1386744804340110"},{"n":"CCTV-9纪录","v":"EPGC1386744804340112"},{"n":"CCTV-10科教","v":"EPGC1386744804340113"},{"n":"CCTV-11戏曲","v":"EPGC1386744804340114"},{"n":"CCTV-12社会与法","v":"EPGC1386744804340115"},{"n":"CCTV-13新闻","v":"EPGC1386744804340116"},{"n":"CCTV-14少儿","v":"EPGC1386744804340117"},{"n":"CCTV-15音乐","v":"EPGC1386744804340118"},{"n":"CCTV-16奥林匹克","v":"EPGC1634630207058998"},{"n":"CCTV-17农业农村","v":"EPGC1563932742616872"},{"n":"CCTV-5+体育赛事","v":"EPGC1468294755566101"}]},{"key":"fc","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":"fl","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":"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":"month","name":"月份","value":[{"n":"全部","v":""},{"n":"12","v":"12"},{"n":"11","v":"11"},{"n":"10","v":"10"},{"n":"09","v":"09"},{"n":"08","v":"08"},{"n":"07","v":"07"},{"n":"06","v":"06"},{"n":"05","v":"05"},{"n":"04","v":"04"},{"n":"03","v":"03"},{"n":"02","v":"02"},{"n":"01","v":"01"}]}]}
- }
- header = {
- "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36",
- "Origin": "https://tv.cctv.com",
- "Referer": "https://tv.cctv.com/"
- }
-
- def localProxy(self,param):
- return [200, "video/MP2T", action, ""]
\ No newline at end of file
+download rate exceeds the limit, please purchase high-speed traffic
\ No newline at end of file
diff --git a/tvboxqq/肥猫/api.json b/tvboxqq/肥猫/api.json
index d5b04ba..a9564be 100644
--- a/tvboxqq/肥猫/api.json
+++ b/tvboxqq/肥猫/api.json
@@ -20,11 +20,11 @@
"quickSearch": 0
},
{
- "key": " 短剧┃网",
- "name": "⏯️┃短剧┃视频",
+ "key": "葡萄剧场",
+ "name": "🍇┃短剧┃视频",
"type": 3,
- "api": "./api/ddrpy2.m.js",
- "ext": "./js/短剧网.js"
+ "api": "csp_XBPQ",
+ "ext": "数组:class=\"stui-vodlist__box&&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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/肥猫/api/drpy2.min.js b/tvboxqq/肥猫/api/drpy2.min.js
index 982dcfb..ae9fdc5 100644
--- a/tvboxqq/肥猫/api/drpy2.min.js
+++ b/tvboxqq/肥猫/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./moban.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.43beta1 20230607";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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("/");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)}}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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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)}}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);pre();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="";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){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: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"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./moban.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.43beta1 20230607";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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{let muban=模板.getMubans();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("/");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)}}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;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}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.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};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)}}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);pre();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="";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){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: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/tvboxqq/荷城茶秀/api.json b/tvboxqq/荷城茶秀/api.json
index d742281..2c551bd 100644
--- a/tvboxqq/荷城茶秀/api.json
+++ b/tvboxqq/荷城茶秀/api.json
@@ -7,7 +7,7 @@
"sites": [
{
"key": "js_豆瓣热播",
- "name": "🅱️追剧影院|T热播 QQ①群:532127696",
+ "name": "🅱️追剧影院|T热播",
"type": 3,
"api": "./api/Api.js",
"searchable": 0,
diff --git a/tvboxqq/荷城茶秀/api/Api.js b/tvboxqq/荷城茶秀/api/Api.js
index 0e07d97..95034d7 100644
--- a/tvboxqq/荷城茶秀/api/Api.js
+++ b/tvboxqq/荷城茶秀/api/Api.js
@@ -1 +1 @@
-import cheerio from"cheerio.min.js";import"crypto-js.js";import 模板 from"模板.js";import{gbkTool}from"gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.46beta12 20230709";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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.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)}}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);pre();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="";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){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: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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,DRPY:DRPY};
+import cheerio from"cheerio.min.js";import"crypto-js.js";import 模板 from"模板.js";import{gbkTool}from"gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.46beta12 20230709";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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]}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)){if(/http/.test(ret)){ret=ret.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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 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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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}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.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.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)}}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);pre();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="";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){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: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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,DRPY:DRPY};
diff --git a/tvboxqq/荷城茶秀/json/91影视.json b/tvboxqq/荷城茶秀/json/91影视.json
index a0f953e..4bd057e 100644
--- a/tvboxqq/荷城茶秀/json/91影视.json
+++ b/tvboxqq/荷城茶秀/json/91影视.json
@@ -4,7 +4,7 @@
"站名":"91影视",
- "主页url":"https://91free.vip/",
+ "主页url":"https://4k8.top/",
"简介":"【荷城茶秀】提醒您请勿相信影片中的广告,以免上当受骗!欢迎加入QQ交流群:869277279,公众号:日后魔改,获取更多影视资源。+&&
",
@@ -28,7 +28,7 @@
"搜索模式":"1",
- "搜索url":"https://91free.vip/vodsearch/-------------.html?wd={wd}",
+ "搜索url":"https://4k8.top/vodsearch/-------------.html?wd={wd}",
"搜索数组":"module-card-item-class\">&&",
@@ -50,7 +50,7 @@
"播放列表":"",
- "分类url":"https://91free.vip/vodshow/{cateId}-{area}-{by}--{lang}----{catePg}---{year}.html;;ak",
+ "分类url":"https://4k8.top/vodshow/{cateId}-{area}-{by}--{lang}----{catePg}---{year}.html;;ak",
"分类":"电影$20#电视剧$21#综艺$22#动漫$23#体育$52",
diff --git a/tvboxqq/荷城茶秀/json/万达影视.json b/tvboxqq/荷城茶秀/json/万达影视.json
index 96fa799..5f2c790 100644
--- a/tvboxqq/荷城茶秀/json/万达影视.json
+++ b/tvboxqq/荷城茶秀/json/万达影视.json
@@ -4,7 +4,7 @@
"站名":"万达影视",
- "主页url":"https://www.w1988.cc/",
+ "主页url":"https://web.w1988.cc/",
"简介":"【荷城茶秀】提醒您请勿相信影片中的广告,以免上当受骗!欢迎加入QQ交流群:869277279,公众号:日后魔改,获取更多影视资源。+",
@@ -18,32 +18,32 @@
"影片年代":"无年份",
- "二次截取":"
",
+ //"二次截取":"",
- "数组":"[不包含:Clicky]",
+ //"数组":"[不包含:Clicky]",
- "图片":"url(&&)",
+ //"图片":"url(&&)",
- "标题":"text-one-line\">&&",
+ //"标题":"text-one-line\">&&",
- "链接":"href=\"&&\"",
+ //"链接":"href=\"&&\"",
- "副标题":"play-icon\">&&",
+ //"副标题":"play-icon\">&&",
"搜索模式":"1",
"搜索url":"/index.php/vod/search/wd/{wd}.html",
- "搜索数组":"content\">&&",
+ //"搜索数组":"content\">&&
",
- "搜索标题":"text-one-line\">&&",
+ //"搜索标题":"text-one-line\">&&",
- "搜索图片":"url(&&)",
+ //"搜索图片":"url(&&)",
- "线路数组":"play-btn&&/a>[排序:腾>达][不包含:优#奇#芒]",
+ "线路数组":"module-tab-item tab-item&&",
- "线路标题":"🌸荷城茶秀接口🌸+>&&<[替换:线路1>>万达专线]",
+ "线路标题":"🌸荷城茶秀接口🌸+&&[替换:kuaiyun>>快云#>>共]+集",
- "分类url":"https://www.w1988.cc/index.php/vod/show/by/{by}/id/{cateId}/page/{catePg}.html;;ak",
+ "分类url":"https://web.w1988.cc/index.php/vod/type/id/{cateId}.html;;ak",
- "分类":"热播新剧$62#电影$1#电视剧$2#综艺$3#动漫$4"}
\ No newline at end of file
+ "分类":"电影$1#电视剧$2#综艺$3#动漫$4"}
\ No newline at end of file
diff --git a/tvboxqq/荷城茶秀/json/玩偶哥哥.json b/tvboxqq/荷城茶秀/json/玩偶哥哥.json
index e223ee1..9425423 100644
--- a/tvboxqq/荷城茶秀/json/玩偶哥哥.json
+++ b/tvboxqq/荷城茶秀/json/玩偶哥哥.json
@@ -1,11 +1,11 @@
{
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.56",
// 首页地址 用于获取 分类和首页推荐
- "homeUrl": "http://wogg.xyz/",
+ "homeUrl": "http://wogg.link/",
// 手动设置分类,如果手动设置了分类则不使用上面的分类xpath获取分类 例如 "cateManual": {"电影": "1", "电视剧": "2"},
"cateManual": {"自营电影":"1","自营电视剧":"2","综艺":"4","动漫":"3","音乐":"5","自营短剧":"6"},
// 分类页地址 {cateId} 分类id {catePg} 当前页
- "cateUrl": "http://wogg.xyz/index.php/vodshow/{cateId}--------{catePg}---.html",
+ "cateUrl": "http://wogg.link/index.php/vodshow/{cateId}--------{catePg}---.html",
// 同上面的homeVod字段 分类列表中的视频信息
"cateVodNode": "//div[@class='module-items']/div",
"cateVodName": "/div[@class='module-item-cover']/div[@class='module-item-pic']/a/@title",
@@ -15,7 +15,7 @@
"cateVodMark": "//div[@class='module-item-text']/text()",
//"cateVodMark": "/div[@class='module-item-cover']/div[@class='module-item-caption']/span/text()",
// 详情页地址 用于获取详情页信息 及 播放列表和地址
- "dtUrl": "http://wogg.xyz/{vid}",
+ "dtUrl": "http://wogg.link/{vid}",
// 详情节点
"dtNode": "//div[@class='box view-heading']",
// 视频名
@@ -64,7 +64,7 @@
// 播放页面的地址 {playUrl} 对应上面 dtUrlId 获取到的地址
"playUrl": "{playUrl}",
//搜索
- "searchUrl": "http://wogg.xyz/index.php/vodsearch/-------------.html?wd={wd}",
+ "searchUrl": "http://wogg.link/index.php/vodsearch/-------------.html?wd={wd}",
"scVodNode": "//div[@class='module-items']/div",
"scVodName": "/div[@class='video-info']/div[@class='video-info-header']/a/@title",
"scVodId": "/div[@class='video-info']/div[@class='video-info-header']/a/@href",
diff --git a/tvboxqq/菜妮丝/api.json b/tvboxqq/菜妮丝/api.json
index eaa7659..9d27c3a 100644
--- a/tvboxqq/菜妮丝/api.json
+++ b/tvboxqq/菜妮丝/api.json
@@ -16,15 +16,6 @@
"ext": "./json/douban.json",
"jar": "./jars/豆瓣.jar"
},
- {
- "key": "360影视",
- "name": "360┃官源",
- "type": 3,
- "api": "csp_XBPQ",
- "searchable": 1,
- "changeable": 1,
- "ext": "./json/360影视.json"
- },
{
"key": "玩偶",
"name": "玩偶┃云盘",
@@ -183,6 +174,15 @@
"changeable": 0,
"jar": "./jars/豆瓣.jar"
},
+ {
+ "key": "360影视",
+ "name": "360┃解析",
+ "type": 3,
+ "api": "csp_SP360",
+ "searchable": 1,
+ "changeable": 1,
+ "jar": "./jars/360影视.jar"
+ },
{
"key": "厂长资源",
"name": "厂长┃影视",
@@ -218,7 +218,7 @@
"searchable": 1,
"changeable": 0,
"ext": "./json/电影港磁力.json",
- "jar": "./jars/电影港.jar"
+ "jar": "./jars/360影视.jar"
},
{
"key": "低端影视",
@@ -855,7 +855,7 @@
"api": "csp_YiSo",
"searchable": 1,
"changeable": 0,
- "ext": "http://127.0.0.1:9978/file/tvboxqq/token.txt+4k|fhd|auto"
+ "ext": "http://127.0.0.1:9978/file/cainisi/token.txt+4k|fhd|auto"
},
{
"key": "csp_search_Zhaozy",
@@ -864,7 +864,7 @@
"api": "csp_Zhaozy",
"searchable": 1,
"changeable": 0,
- "ext": "http://127.0.0.1:9978/file/tvboxqq/token.txt+4k|fhd|auto$$$fanty$$$qqq111"
+ "ext": "http://127.0.0.1:9978/file/tvfan/token.txt+4k|fhd|auto$$$fanty$$$qqq111"
},
{
"key": "push_agent",
@@ -959,7 +959,9 @@
"sohu",
"imgo",
"mgtv",
- "bilibili"
+ "bilibili",
+ "pptv",
+ "PPTV"
],
"rules": [
{
diff --git a/tvboxqq/菜妮丝/api/drpy2.min.js b/tvboxqq/菜妮丝/api/drpy2.min.js
index 5d8fcad..6d4a7d2 100644
--- a/tvboxqq/菜妮丝/api/drpy2.min.js
+++ b/tvboxqq/菜妮丝/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.49beta2 20231122";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/菜妮丝/api/js_模板.js b/tvboxqq/菜妮丝/api/js_模板.js
index 82b037b..2eef97d 100644
--- a/tvboxqq/菜妮丝/api/js_模板.js
+++ b/tvboxqq/菜妮丝/api/js_模板.js
@@ -21,7 +21,7 @@ function getMubans() {
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
@@ -50,7 +50,7 @@ function getMubans() {
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
@@ -75,7 +75,7 @@ function getMubans() {
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
@@ -104,7 +104,7 @@ function getMubans() {
url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
@@ -136,7 +136,7 @@ function getMubans() {
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/-------------.html?wd=**',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'MOBILE_UA',
@@ -152,7 +152,7 @@ function getMubans() {
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
@@ -202,7 +202,7 @@ function getMubans() {
},
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
海螺2: {
@@ -231,7 +231,7 @@ function getMubans() {
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
短视: {
@@ -241,7 +241,7 @@ function getMubans() {
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
@@ -272,7 +272,7 @@ function getMubans() {
class_url:'1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
- quickSearch: 0,
+ quickSearch: 1,
headers:{'User-Agent':'MOBILE_UA'},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable:0,//是否启用分类筛选,
diff --git a/tvboxqq/菜妮丝/jars/360影视.jar b/tvboxqq/菜妮丝/jars/360影视.jar
new file mode 100644
index 0000000..514046b
Binary files /dev/null and b/tvboxqq/菜妮丝/jars/360影视.jar differ
diff --git a/tvboxqq/菜妮丝/jars/豆瓣.jar b/tvboxqq/菜妮丝/jars/豆瓣.jar
index 63d86bb..6ca021c 100644
Binary files a/tvboxqq/菜妮丝/jars/豆瓣.jar and b/tvboxqq/菜妮丝/jars/豆瓣.jar differ
diff --git a/tvboxqq/菜妮丝/js/007影视.js b/tvboxqq/菜妮丝/js/007影视.js
index 6e4b606..9f5e96b 100644
--- a/tvboxqq/菜妮丝/js/007影视.js
+++ b/tvboxqq/菜妮丝/js/007影视.js
@@ -42,6 +42,7 @@ var rule = {
// searchUrl:'/search/**----------fypage---.html',
searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50',
+ // searchUrl:'/VSP/V3/SearchContent#{"contentTypes":["VOD"],"searchScopes":["CONTENT_NAME","ACTOR"],"sortType":["RELEVANCE"],"count":8,"offset":0,"SearchKey":"**","subjectID":"10000100000000090000000000001323"};postjson',
detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
搜索:'json:list;name;pic;;id',
}
\ No newline at end of file
diff --git a/tvboxqq/菜妮丝/js/310直播.js b/tvboxqq/菜妮丝/js/310直播.js
index 0f73404..48bb903 100644
--- a/tvboxqq/菜妮丝/js/310直播.js
+++ b/tvboxqq/菜妮丝/js/310直播.js
@@ -4,7 +4,7 @@ var rule = {
url:'/?s=0&t=1&a=fyclass&g=fypage',
searchUrl:'',
searchable:0,
- quickSearch:0,
+ quickSearch:1,
class_name:'热门&足球&篮球',
class_url:'0&1&2',
headers:{
diff --git a/tvboxqq/菜妮丝/js/69美剧[V2].js b/tvboxqq/菜妮丝/js/69美剧[V2].js
index 2b904de..49403fc 100644
--- a/tvboxqq/菜妮丝/js/69美剧[V2].js
+++ b/tvboxqq/菜妮丝/js/69美剧[V2].js
@@ -14,7 +14,7 @@ var rule = {
detailUrl:'/xgapp.php/v2/video_detail?id=fyid',
searchUrl: '/xgapp.php/v2/search?text=**&pg=fypage',
searchable: 2,
- quickSearch: 0,
+ quickSearch: 1,
filterable:1,//是否启用分类筛选,
headers:{'User-Agent':'Dart/2.14 (dart:io)'},
timeout:5000,
diff --git a/tvboxqq/菜妮丝/js/A8音乐.js b/tvboxqq/菜妮丝/js/A8音乐.js
index de01205..2dd4442 100644
--- a/tvboxqq/菜妮丝/js/A8音乐.js
+++ b/tvboxqq/菜妮丝/js/A8音乐.js
@@ -4,7 +4,7 @@ var rule = {
url:'/category/fyclass?p=fypage',
searchUrl:'/search?t=**',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent':'MOBILE_UA',
},
diff --git a/tvboxqq/菜妮丝/js/B站影视.js b/tvboxqq/菜妮丝/js/B站影视.js
index d11e3d0..6d7bace 100644
--- a/tvboxqq/菜妮丝/js/B站影视.js
+++ b/tvboxqq/菜妮丝/js/B站影视.js
@@ -21,7 +21,7 @@ var rule = {
// 4:{cateId:'4'}
// },
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
headers:{
'User-Agent':'MOBILE_UA'
},
diff --git a/tvboxqq/菜妮丝/js/DJ音乐.js b/tvboxqq/菜妮丝/js/DJ音乐.js
index 4201a5d..5445360 100644
--- a/tvboxqq/菜妮丝/js/DJ音乐.js
+++ b/tvboxqq/菜妮丝/js/DJ音乐.js
@@ -1,7 +1,7 @@
// 道长 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://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
+// 道长 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
@@ -19,7 +19,7 @@ var rule = {
url:'/djlist/fyclass_fypage.html',
searchUrl:'/search?musicname=**',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
class_parse:'#top_banner_bg div;a&&Text;a&&href;/djlist/(\\d+)_1.html',
headers:{
'User-Agent':'PC_UA'
diff --git a/tvboxqq/菜妮丝/js/JangoIndex.js b/tvboxqq/菜妮丝/js/JangoIndex.js
index acefa59..e6789da 100644
--- a/tvboxqq/菜妮丝/js/JangoIndex.js
+++ b/tvboxqq/菜妮丝/js/JangoIndex.js
@@ -5,7 +5,7 @@ var rule = {
url: 'fyclass',
searchUrl: '/?search=**',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
filterable:0,
headers:{
'User-Agent': 'MOBILE_UA'
diff --git a/tvboxqq/菜妮丝/js/JustLive.js b/tvboxqq/菜妮丝/js/JustLive.js
index b47a4d2..e69de29 100644
--- a/tvboxqq/菜妮丝/js/JustLive.js
+++ b/tvboxqq/菜妮丝/js/JustLive.js
@@ -1,158 +0,0 @@
-// 搜索功能需登录使用
-var rule = {
- title: 'JustLive',
- host: 'http://live.yj1211.work',
- // homeUrl: '/api/live/getRecommend?page=1&size=20',//网站的首页链接,用于分类获取和推荐获取
- homeUrl: '/api/live/getRecommendByPlatformArea?platform=bilibili&area=舞见&page=1&size=20',//网站的首页链接,用于分类获取和推荐获取
- url: '/api/live/getRecommendByPlatformArea?platform=fyclass&area=fyfilter&page=fypage&size=20', //网站的分类页面链接
- class_name: '斗鱼&虎牙&哔哩&网易&抖音',
- class_url: 'douyu&huya&bilibili&cc&douyin',
- filterable: 1,
- filter_url: '{{fl.area}}',
- filter: {
- "douyu":[{"key":"area","name":"分区","value":[{"n":"原创IP","v":"原创IP"},{"n":"一起看","v":"一起看"},{"n":"二次元","v":"二次元"},{"n":"音乐","v":"音乐"},{"n":"户外","v":"户外"},{"n":"美食","v":"美食"},{"n":"心动派对","v":"心动派对"},{"n":"音遇恋人","v":"音遇恋人"},{"n":"星秀","v":"星秀"},{"n":"心动FM","v":"心动FM"},{"n":"娱乐推荐","v":"娱乐推荐"},{"n":"中国地质大学(武汉)","v":"中国地质大学(武汉)"},{"n":"颜值","v":"颜值"},{"n":"企鹅直播","v":"企鹅直播"},{"n":"数码科技","v":"数码科技"},{"n":"纪录片","v":"纪录片"},{"n":"成年教育","v":"成年教育"},{"n":"人文社科","v":"人文社科"},{"n":"派对","v":"派对"},{"n":"心动FM.","v":"心动FM."},{"n":"一起玩","v":"一起玩"},{"n":"语音交友","v":"语音交友"},{"n":"音乐之声","v":"音乐之声"},{"n":"连麦互动","v":"连麦互动"},{"n":"娱乐开黑","v":"娱乐开黑"},{"n":"正能量","v":"正能量"},{"n":"英雄联盟","v":"英雄联盟"},{"n":"热门游戏","v":"热门游戏"},{"n":"穿越火线","v":"穿越火线"},{"n":"重生边缘","v":"重生边缘"},{"n":"无畏契约","v":"无畏契约"},{"n":"CFHD","v":"CFHD"},{"n":"命运方舟","v":"命运方舟"},{"n":"DNF","v":"DNF"},{"n":"DOTA2","v":"DOTA2"},{"n":"使命召唤","v":"使命召唤"},{"n":"炉石传说","v":"炉石传说"},{"n":"CS2","v":"CS2"},{"n":"lol云顶之弈","v":"lol云顶之弈"},{"n":"魔兽争霸","v":"魔兽争霸"},{"n":"魔兽怀旧服","v":"魔兽怀旧服"},{"n":"自走棋","v":"自走棋"},{"n":"传奇","v":"传奇"},{"n":"跑跑卡丁车","v":"跑跑卡丁车"},{"n":"网易游戏","v":"网易游戏"},{"n":"星际争霸","v":"星际争霸"},{"n":"守望先锋","v":"守望先锋"},{"n":"DOTA","v":"DOTA"},{"n":"魔兽世界","v":"魔兽世界"},{"n":"剑网3","v":"剑网3"},{"n":"我的世界","v":"我的世界"},{"n":"超激斗梦境","v":"超激斗梦境"},{"n":"冒险岛","v":"冒险岛"},{"n":"三国杀","v":"三国杀"},{"n":"梦幻西游","v":"梦幻西游"},{"n":"天涯明月刀","v":"天涯明月刀"},{"n":"街头篮球","v":"街头篮球"},{"n":"NBA2KOL2","v":"NBA2KOL2"},{"n":"QQ飞车端游","v":"QQ飞车端游"},{"n":"军事游戏","v":"军事游戏"},{"n":"棋牌娱乐","v":"棋牌娱乐"},{"n":"FC ONLINE","v":"FC ONLINE"},{"n":"热门网游","v":"热门网游"},{"n":"卡拉彼丘","v":"卡拉彼丘"},{"n":"诛仙世界","v":"诛仙世界"},{"n":"APEX","v":"APEX"},{"n":"流放之路POE","v":"流放之路POE"},{"n":"剑网3缘起","v":"剑网3缘起"},{"n":"逆水寒","v":"逆水寒"},{"n":"风暴英雄","v":"风暴英雄"},{"n":"逆战","v":"逆战"},{"n":"坦克世界","v":"坦克世界"},{"n":"战舰世界","v":"战舰世界"},{"n":"反恐精英Online","v":"反恐精英Online"},{"n":"暗黑破坏神","v":"暗黑破坏神"},{"n":"梦三国2","v":"梦三国2"},{"n":"传奇世界","v":"传奇世界"},{"n":"方舟:生存进化","v":"方舟:生存进化"},{"n":"神武4电脑版","v":"神武4电脑版"},{"n":"群雄逐鹿","v":"群雄逐鹿"},{"n":"堡垒之夜","v":"堡垒之夜"},{"n":"无限法则","v":"无限法则"},{"n":"问道电脑版","v":"问道电脑版"},{"n":"西山居游戏","v":"西山居游戏"},{"n":"最终幻想14","v":"最终幻想14"},{"n":"战意","v":"战意"},{"n":"剑灵","v":"剑灵"},{"n":"星际战甲","v":"星际战甲"},{"n":"龙之谷","v":"龙之谷"},{"n":"铁甲雄兵","v":"铁甲雄兵"},{"n":"古剑奇谭网络版","v":"古剑奇谭网络版"},{"n":"轩辕传奇","v":"轩辕传奇"},{"n":"神途","v":"神途"},{"n":"激战2","v":"激战2"},{"n":"高达文化区","v":"高达文化区"},{"n":"忍者村大战2","v":"忍者村大战2"},{"n":"RPG网游专区","v":"RPG网游专区"},{"n":"诛仙3","v":"诛仙3"},{"n":"笑傲江湖OL","v":"笑傲江湖OL"},{"n":"冒险岛2","v":"冒险岛2"},{"n":"超击突破","v":"超击突破"},{"n":"无尽战区","v":"无尽战区"},{"n":"永恒之塔","v":"永恒之塔"},{"n":"竞速游戏","v":"竞速游戏"},{"n":"FPS综合网游","v":"FPS综合网游"},{"n":"劲舞团","v":"劲舞团"},{"n":"天下","v":"天下"},{"n":"火箭联盟","v":"火箭联盟"},{"n":"泡泡堂","v":"泡泡堂"},{"n":"音乐游戏","v":"音乐游戏"},{"n":"新倩女幽魂","v":"新倩女幽魂"},{"n":"天谕","v":"天谕"},{"n":"QQ炫舞","v":"QQ炫舞"},{"n":"大唐无双","v":"大唐无双"},{"n":"怪物猎人ol","v":"怪物猎人ol"},{"n":"手工星球","v":"手工星球"},{"n":"热血传奇:本源","v":"热血传奇:本源"},{"n":"彩虹岛","v":"彩虹岛"},{"n":"御龙在天","v":"御龙在天"},{"n":"自由篮球","v":"自由篮球"},{"n":"洛奇英雄传","v":"洛奇英雄传"},{"n":"洛奇","v":"洛奇"},{"n":"封印者","v":"封印者"},{"n":"合金弹头","v":"合金弹头"},{"n":"新英雄年代","v":"新英雄年代"},{"n":"盛趣游戏","v":"盛趣游戏"},{"n":"新热血英豪","v":"新热血英豪"},{"n":"沙盒游戏","v":"沙盒游戏"},{"n":"恐鬼症","v":"恐鬼症"},{"n":"领地人生","v":"领地人生"},{"n":"大话西游2","v":"大话西游2"},{"n":"猎人","v":"猎人"},{"n":"热血江湖online","v":"热血江湖online"},{"n":"千年3","v":"千年3"},{"n":"逍遥情缘","v":"逍遥情缘"},{"n":"快乐西游","v":"快乐西游"},{"n":"诺亚传说","v":"诺亚传说"},{"n":"鹿鼎记","v":"鹿鼎记"},{"n":"武魂2电脑版","v":"武魂2电脑版"},{"n":"奇迹世界sun","v":"奇迹世界sun"},{"n":"剑侠世界2电脑版","v":"剑侠世界2电脑版"},{"n":"斩魂","v":"斩魂"},{"n":"大唐2","v":"大唐2"},{"n":"幻想神域电脑版","v":"幻想神域电脑版"},{"n":"蜀山:初章","v":"蜀山:初章"},{"n":"狼人对决网游","v":"狼人对决网游"},{"n":"武林群侠传","v":"武林群侠传"},{"n":"飘流幻境","v":"飘流幻境"},{"n":"破天一剑","v":"破天一剑"},{"n":"四国军棋","v":"四国军棋"},{"n":"新大话西游3","v":"新大话西游3"},{"n":"装甲战争","v":"装甲战争"},{"n":"暴雪游戏综合","v":"暴雪游戏综合"},{"n":"HypeSquad","v":"HypeSquad"},{"n":"长尾4部虚拟分区","v":"长尾4部虚拟分区"},{"n":"燕云十六声","v":"燕云十六声"},{"n":"THE FINALS","v":"THE FINALS"},{"n":"NBA2K Online","v":"NBA2K Online"},{"n":"跑跑卡丁车:漂移","v":"跑跑卡丁车:漂移"},{"n":"传奇永恒","v":"传奇永恒"},{"n":"盛趣传奇","v":"盛趣传奇"},{"n":"火爆热游","v":"火爆热游"},{"n":"主机游戏","v":"主机游戏"},{"n":"刺客信条:英灵殿","v":"刺客信条:英灵殿"},{"n":"马里奥制造","v":"马里奥制造"},{"n":"逃离塔科夫","v":"逃离塔科夫"},{"n":"命运2","v":"命运2"},{"n":"恐怖游戏","v":"恐怖游戏"},{"n":"荒野大镖客","v":"荒野大镖客"},{"n":"灵魂筹码","v":"灵魂筹码"},{"n":"骑马与砍杀","v":"骑马与砍杀"},{"n":"只狼","v":"只狼"},{"n":"格斗游戏","v":"格斗游戏"},{"n":"饥荒","v":"饥荒"},{"n":"全境封锁","v":"全境封锁"},{"n":"怀旧游戏","v":"怀旧游戏"},{"n":"NBA2K","v":"NBA2K"},{"n":"八方旅人","v":"八方旅人"},{"n":"人类一败涂地","v":"人类一败涂地"},{"n":"环世界","v":"环世界"},{"n":"古墓丽影","v":"古墓丽影"},{"n":"鬼泣","v":"鬼泣"},{"n":"往日不再","v":"往日不再"},{"n":"仙剑奇侠传","v":"仙剑奇侠传"},{"n":"神秘海域","v":"神秘海域"},{"n":"塞尔达系列","v":"塞尔达系列"},{"n":"僵尸世界大战","v":"僵尸世界大战"},{"n":"足球游戏","v":"足球游戏"},{"n":"橙光","v":"橙光"},{"n":"了不起的修仙模拟器","v":"了不起的修仙模拟器"},{"n":"超级马里奥","v":"超级马里奥"},{"n":"三国志系列","v":"三国志系列"},{"n":"星际公民","v":"星际公民"},{"n":"最终幻想","v":"最终幻想"},{"n":"中土世界:战争之影","v":"中土世界:战争之影"},{"n":"流放者柯南","v":"流放者柯南"},{"n":"三国群英传","v":"三国群英传"},{"n":"无主之地","v":"无主之地"},{"n":"辐射","v":"辐射"},{"n":"太吾绘卷","v":"太吾绘卷"},{"n":"SCUM","v":"SCUM"},{"n":"正当防卫","v":"正当防卫"},{"n":"以撒的结合","v":"以撒的结合"},{"n":"文明","v":"文明"},{"n":"仁王","v":"仁王"},{"n":"缺氧","v":"缺氧"},{"n":"皇牌空战","v":"皇牌空战"},{"n":"体育游戏","v":"体育游戏"},{"n":"海岛大亨","v":"海岛大亨"},{"n":"植物大战僵尸:花园战争系列","v":"植物大战僵尸:花园战争系列"},{"n":"蜘蛛侠","v":"蜘蛛侠"},{"n":"勇者斗恶龙:建造者2","v":"勇者斗恶龙:建造者2"},{"n":"遗迹:灰烬重生","v":"遗迹:灰烬重生"},{"n":"血源","v":"血源"},{"n":"旺达与巨像","v":"旺达与巨像"},{"n":"模拟人生","v":"模拟人生"},{"n":"空洞骑士","v":"空洞骑士"},{"n":"极品飞车","v":"极品飞车"},{"n":"胡闹厨房","v":"胡闹厨房"},{"n":"地铁:离去","v":"地铁:离去"},{"n":"生死狙击2","v":"生死狙击2"},{"n":"三国战纪","v":"三国战纪"},{"n":"怀旧FC","v":"怀旧FC"},{"n":"经典单机","v":"经典单机"},{"n":"英雄无敌","v":"英雄无敌"},{"n":"街机游戏","v":"街机游戏"},{"n":"合金装备","v":"合金装备"},{"n":"红色警戒","v":"红色警戒"},{"n":"镜之边缘","v":"镜之边缘"},{"n":"火焰纹章系列","v":"火焰纹章系列"},{"n":"星露谷物语","v":"星露谷物语"},{"n":"赛博朋克2077","v":"赛博朋克2077"},{"n":"中国式家长","v":"中国式家长"},{"n":"尼尔:机械纪元","v":"尼尔:机械纪元"},{"n":"无人深空","v":"无人深空"},{"n":"EVOTINCTION","v":"EVOTINCTION"},{"n":"GT赛车7","v":"GT赛车7"},{"n":"超级机器人大战","v":"超级机器人大战"},{"n":"信长之野望","v":"信长之野望"},{"n":"这是我的战争","v":"这是我的战争"},{"n":"杀戮尖塔","v":"杀戮尖塔"},{"n":"冰汽时代","v":"冰汽时代"},{"n":"帝国时代","v":"帝国时代"},{"n":"死亡空间","v":"死亡空间"},{"n":"凯瑟琳Full Body","v":"凯瑟琳Full Body"},{"n":"足球经理","v":"足球经理"},{"n":"雨中冒险","v":"雨中冒险"},{"n":"亿万僵尸","v":"亿万僵尸"},{"n":"武装突袭","v":"武装突袭"},{"n":"石油大亨","v":"石油大亨"},{"n":"荣耀战魂","v":"荣耀战魂"},{"n":"欧洲卡车模拟器","v":"欧洲卡车模拟器"},{"n":"美国逃亡者","v":"美国逃亡者"},{"n":"漫漫长夜","v":"漫漫长夜"},{"n":"永恒轮回","v":"永恒轮回"},{"n":"孤岛惊魂","v":"孤岛惊魂"},{"n":"都市:天际线","v":"都市:天际线"},{"n":"盗贼之海","v":"盗贼之海"},{"n":"Dayz","v":"Dayz"},{"n":"60秒","v":"60秒"},{"n":"俄罗斯钓鱼","v":"俄罗斯钓鱼"},{"n":"猎人:荒野的召唤","v":"猎人:荒野的召唤"},{"n":"恐怖黎明","v":"恐怖黎明"},{"n":"看门狗","v":"看门狗"},{"n":"真三国无双","v":"真三国无双"},{"n":"泰拉瑞亚","v":"泰拉瑞亚"},{"n":"UFC","v":"UFC"},{"n":"底特律:变人","v":"底特律:变人"},{"n":"恶魔城","v":"恶魔城"},{"n":"毁灭战士","v":"毁灭战士"},{"n":"火影忍者:究极忍者风暴","v":"火影忍者:究极忍者风暴"},{"n":"无尽地牢","v":"无尽地牢"},{"n":"坎巴拉太空计划","v":"坎巴拉太空计划"},{"n":"龙珠:超宇宙","v":"龙珠:超宇宙"},{"n":"马里奥赛车","v":"马里奥赛车"},{"n":"模拟山羊","v":"模拟山羊"},{"n":"欧陆风云","v":"欧陆风云"},{"n":"乞丐模拟器","v":"乞丐模拟器"},{"n":"小偷模拟器","v":"小偷模拟器"},{"n":"逆转裁判","v":"逆转裁判"},{"n":"超越光速","v":"超越光速"},{"n":"植物大战僵尸","v":"植物大战僵尸"},{"n":"游戏开发者","v":"游戏开发者"},{"n":"最后的绿洲","v":"最后的绿洲"},{"n":"大富翁","v":"大富翁"},{"n":"英雄连","v":"英雄连"},{"n":"永劫无间","v":"永劫无间"},{"n":"部落与弯刀","v":"部落与弯刀"},{"n":"森林","v":"森林"},{"n":"只只大冒险","v":"只只大冒险"},{"n":"一起开火车!","v":"一起开火车!"},{"n":"主机其他游戏","v":"主机其他游戏"},{"n":"北境之地","v":"北境之地"},{"n":"temtem","v":"temtem"},{"n":"弹丸论破","v":"弹丸论破"},{"n":"基佬大乱斗","v":"基佬大乱斗"},{"n":"僵尸毁灭工程","v":"僵尸毁灭工程"},{"n":"神力科莎","v":"神力科莎"},{"n":"超级兔子人","v":"超级兔子人"},{"n":"岛屿生存者","v":"岛屿生存者"},{"n":"盟军敢死队","v":"盟军敢死队"},{"n":"冬日计划","v":"冬日计划"},{"n":"泰坦陨落","v":"泰坦陨落"},{"n":"四海兄弟","v":"四海兄弟"},{"n":"创世理想乡","v":"创世理想乡"},{"n":"柯娜:精神之桥","v":"柯娜:精神之桥"},{"n":"幽灵线:东京","v":"幽灵线:东京"},{"n":"Solar Ash","v":"Solar Ash"},{"n":"BUGSNAX","v":"BUGSNAX"},{"n":"生化危机4重制版","v":"生化危机4重制版"},{"n":"Grounded","v":"Grounded"},{"n":"Superliminal","v":"Superliminal"},{"n":"Omno","v":"Omno"},{"n":"Röki","v":"Röki"},{"n":"Undungeon","v":"Undungeon"},{"n":"糖豆人","v":"糖豆人"},{"n":"渡神纪","v":"渡神纪"},{"n":"Aeolis Tournament","v":"Aeolis Tournament"},{"n":"猛兽派对","v":"猛兽派对"},{"n":"Olija","v":"Olija"},{"n":"Creaks","v":"Creaks"},{"n":"暗影火炬城","v":"暗影火炬城"},{"n":"阿尔比恩","v":"阿尔比恩"},{"n":"Uragun","v":"Uragun"},{"n":"鬼谷八荒","v":"鬼谷八荒"},{"n":"Muse Dash","v":"Muse Dash"},{"n":"恐惧之间","v":"恐惧之间"},{"n":"孤岛惊魂6","v":"孤岛惊魂6"},{"n":"怪物猎人","v":"怪物猎人"},{"n":"黑神话:悟空","v":"黑神话:悟空"},{"n":"仁王2","v":"仁王2"},{"n":"三国志14","v":"三国志14"},{"n":"杀手3","v":"杀手3"},{"n":"双人成行","v":"双人成行"},{"n":"Scrapnaut","v":"Scrapnaut"},{"n":"租房达人","v":"租房达人"},{"n":"狙击手:幽灵战士契约2","v":"狙击手:幽灵战士契约2"},{"n":"全面战争","v":"全面战争"},{"n":"复体","v":"复体"},{"n":"战争机器:战术小队","v":"战争机器:战术小队"},{"n":"侠之道","v":"侠之道"},{"n":"海绵宝宝:比奇堡的冒险","v":"海绵宝宝:比奇堡的冒险"},{"n":"奇妙探险队2","v":"奇妙探险队2"},{"n":"刺客信条:奥德赛","v":"刺客信条:奥德赛"},{"n":"星球大战:前线","v":"星球大战:前线"},{"n":"Moonray","v":"Moonray"},{"n":"灵魂旅人","v":"灵魂旅人"},{"n":"面容","v":"面容"},{"n":"破门而入2:北方特遣队","v":"破门而入2:北方特遣队"},{"n":"俄罗斯方块效应:连接","v":"俄罗斯方块效应:连接"},{"n":"SD高达G世纪:起源","v":"SD高达G世纪:起源"},{"n":"东方计划:不可思议的幻想乡","v":"东方计划:不可思议的幻想乡"},{"n":"Fate/EXTELLA","v":"Fate/EXTELLA"},{"n":"临终:重生试炼","v":"临终:重生试炼"},{"n":"虚拟现实乐园","v":"虚拟现实乐园"},{"n":"妖精剑士F","v":"妖精剑士F"},{"n":"苍翼默示录:神观之梦","v":"苍翼默示录:神观之梦"},{"n":"晚班","v":"晚班"},{"n":"子弹风暴","v":"子弹风暴"},{"n":"巡警","v":"巡警"},{"n":"耻辱之日","v":"耻辱之日"},{"n":"狙击精英4","v":"狙击精英4"},{"n":"三国志13:威力加强版","v":"三国志13:威力加强版"},{"n":"热血物语:地下世界","v":"热血物语:地下世界"},{"n":"史诗战争模拟器","v":"史诗战争模拟器"},{"n":"银河护卫队","v":"银河护卫队"},{"n":"闪乱神乐:少女们的选择","v":"闪乱神乐:少女们的选择"},{"n":"幽灵行动:荒野","v":"幽灵行动:荒野"},{"n":"白色情人节","v":"白色情人节"},{"n":"美国职业摔角联盟2K17","v":"美国职业摔角联盟2K17"},{"n":"誓死坚守","v":"誓死坚守"},{"n":"喷射侠","v":"喷射侠"},{"n":"双截龙4","v":"双截龙4"},{"n":"地下蚁国","v":"地下蚁国"},{"n":"九张羊皮纸","v":"九张羊皮纸"},{"n":"咒语力量3","v":"咒语力量3"},{"n":"小兵大战","v":"小兵大战"},{"n":"维京人 人中之狼","v":"维京人 人中之狼"},{"n":"你好邻居","v":"你好邻居"},{"n":"寻找天堂","v":"寻找天堂"},{"n":"画中世界","v":"画中世界"},{"n":"桥梁工程师传送门","v":"桥梁工程师传送门"},{"n":"现代战争","v":"现代战争"},{"n":"SCP:秘密实验室","v":"SCP:秘密实验室"},{"n":"绯红结系","v":"绯红结系"},{"n":"罪恶装备:STRIVE","v":"罪恶装备:STRIVE"},{"n":"骑士精神2","v":"骑士精神2"},{"n":"Rune Knights","v":"Rune Knights"},{"n":"最后的咒语","v":"最后的咒语"},{"n":"红至日2:幸存者","v":"红至日2:幸存者"},{"n":"真女神转生3","v":"真女神转生3"},{"n":"速降王者","v":"速降王者"},{"n":"工业崛起","v":"工业崛起"},{"n":"征服的荣耀:围城","v":"征服的荣耀:围城"},{"n":"前往中世纪","v":"前往中世纪"},{"n":"Arid","v":"Arid"},{"n":"伊始之地","v":"伊始之地"},{"n":"进击的巨人2","v":"进击的巨人2"},{"n":"航海日记2","v":"航海日记2"},{"n":"隐龙传:影踪","v":"隐龙传:影踪"},{"n":"魔域之书","v":"魔域之书"},{"n":"诸神灰烬:救赎","v":"诸神灰烬:救赎"},{"n":"自由人:游击战争","v":"自由人:游击战争"},{"n":"战国无双5","v":"战国无双5"},{"n":"死亡教堂","v":"死亡教堂"},{"n":"灵魂能力6","v":"灵魂能力6"},{"n":"不要喂食猴子","v":"不要喂食猴子"},{"n":"古剑奇谭3","v":"古剑奇谭3"},{"n":"迷城重生","v":"迷城重生"},{"n":"剑士","v":"剑士"},{"n":"GRIS","v":"GRIS"},{"n":"古剑奇谭:永夜","v":"古剑奇谭:永夜"},{"n":"核爆RPG","v":"核爆RPG"},{"n":"Below","v":"Below"},{"n":"嗜血印","v":"嗜血印"},{"n":"伊苏9","v":"伊苏9"},{"n":"兽人必须死3","v":"兽人必须死3"},{"n":"狙击精英VR","v":"狙击精英VR"},{"n":"遗忘之城","v":"遗忘之城"},{"n":"Last Stop","v":"Last Stop"},{"n":"从军","v":"从军"},{"n":"石炉","v":"石炉"},{"n":"狂热运输2","v":"狂热运输2"},{"n":"机甲战士5","v":"机甲战士5"},{"n":"分手装修","v":"分手装修"},{"n":"PICO PARK","v":"PICO PARK"},{"n":"光明记忆:无限","v":"光明记忆:无限"},{"n":"秘馆疑踪","v":"秘馆疑踪"},{"n":"英雄传说:创之轨迹","v":"英雄传说:创之轨迹"},{"n":"战地系列","v":"战地系列"},{"n":"塞尔达传说:天空之剑HD","v":"塞尔达传说:天空之剑HD"},{"n":"国王的恩赐2","v":"国王的恩赐2"},{"n":"脑航员2","v":"脑航员2"},{"n":"九十六号公路","v":"九十六号公路"},{"n":"FORECLOSED","v":"FORECLOSED"},{"n":"RiMS Racing","v":"RiMS Racing"},{"n":"漫威银河护卫队","v":"漫威银河护卫队"},{"n":"剑侠图","v":"剑侠图"},{"n":"审判之逝","v":"审判之逝"},{"n":"艾尔登法环","v":"艾尔登法环"},{"n":"互动派对","v":"互动派对"},{"n":"极限竞速:地平线5","v":"极限竞速:地平线5"},{"n":"使命召唤系列","v":"使命召唤系列"},{"n":"网吧模拟器","v":"网吧模拟器"},{"n":"The Anacrusis","v":"The Anacrusis"},{"n":"文字游戏","v":"文字游戏"},{"n":"消逝的光芒2","v":"消逝的光芒2"},{"n":"战神:诸神黄昏","v":"战神:诸神黄昏"},{"n":"师父","v":"师父"},{"n":"海上狼人杀","v":"海上狼人杀"},{"n":"最终幻想:起源","v":"最终幻想:起源"},{"n":"HordeCore","v":"HordeCore"},{"n":"Indies’ Lies","v":"Indies’ Lies"},{"n":"霍格沃茨之遗","v":"霍格沃茨之遗"},{"n":"太荒初境","v":"太荒初境"},{"n":"Deck of Ashes","v":"Deck of Ashes"},{"n":"星空","v":"星空"},{"n":"隐秘的角落","v":"隐秘的角落"},{"n":"江湖客栈","v":"江湖客栈"},{"n":"Ilysia","v":"Ilysia"},{"n":"Project Q","v":"Project Q"},{"n":"Pummel Party","v":"Pummel Party"},{"n":"Holomento","v":"Holomento"},{"n":"Overprime","v":"Overprime"},{"n":"森林之子","v":"森林之子"},{"n":"弈仙牌","v":"弈仙牌"},{"n":"夜族崛起","v":"夜族崛起"},{"n":"漫威SNAP","v":"漫威SNAP"},{"n":"魔力宝贝","v":"魔力宝贝"},{"n":"木卫四协议","v":"木卫四协议"},{"n":"罗马复兴","v":"罗马复兴"},{"n":"风暴之门","v":"风暴之门"},{"n":"暗邪西部","v":"暗邪西部"},{"n":"堕落之主","v":"堕落之主"},{"n":"High on Life","v":"High on Life"},{"n":"匹诺曹的谎言","v":"匹诺曹的谎言"},{"n":"逃生:试炼","v":"逃生:试炼"},{"n":"战锤40K:暗潮","v":"战锤40K:暗潮"},{"n":"Isonzo","v":"Isonzo"},{"n":"索尼克 未知边境","v":"索尼克 未知边境"},{"n":"漂泊牧歌","v":"漂泊牧歌"},{"n":"塞尔达传说:王国之泪","v":"塞尔达传说:王国之泪"},{"n":"破碎线","v":"破碎线"},{"n":"卧龙:苍天陨落","v":"卧龙:苍天陨落"},{"n":"卡库远古封印","v":"卡库远古封印"},{"n":"原子之心","v":"原子之心"},{"n":"霓虹入侵者","v":"霓虹入侵者"},{"n":"Warhaven","v":"Warhaven"},{"n":"宝可梦:朱/紫","v":"宝可梦:朱/紫"},{"n":"第一后裔","v":"第一后裔"},{"n":"铳墓G.O.R.E.","v":"铳墓G.O.R.E."},{"n":"Kingshunt","v":"Kingshunt"},{"n":"漫威暗夜之子","v":"漫威暗夜之子"},{"n":"奇怪的RPG","v":"奇怪的RPG"},{"n":"Evercore Heroes","v":"Evercore Heroes"},{"n":"东方:平野孤鸿","v":"东方:平野孤鸿"},{"n":"神之天平","v":"神之天平"},{"n":"伊克西翁","v":"伊克西翁"},{"n":"主机一起看","v":"主机一起看"},{"n":"社交互动游戏","v":"社交互动游戏"},{"n":"Divine Knockout","v":"Divine Knockout"},{"n":"巫师系列","v":"巫师系列"},{"n":"至暗时刻","v":"至暗时刻"},{"n":"江湖十一","v":"江湖十一"},{"n":"XDefiant","v":"XDefiant"},{"n":"刺客信条:幻景","v":"刺客信条:幻景"},{"n":"Warlander","v":"Warlander"},{"n":"狂野之心","v":"狂野之心"},{"n":"Scars Above","v":"Scars Above"},{"n":"Pacific Drive","v":"Pacific Drive"},{"n":"收获日3","v":"收获日3"},{"n":"浮生箓2:九九行歌","v":"浮生箓2:九九行歌"},{"n":"The Front","v":"The Front"},{"n":"最终幻想16","v":"最终幻想16"},{"n":"街头霸王","v":"街头霸王"},{"n":"Tchia","v":"Tchia"},{"n":"魔戒:咕噜","v":"魔戒:咕噜"},{"n":"Prison Life 2","v":"Prison Life 2"},{"n":"Innchanted","v":"Innchanted"},{"n":"Life by You","v":"Life by You"},{"n":"Eresys","v":"Eresys"},{"n":"Pax Dei","v":"Pax Dei"},{"n":"Teravit","v":"Teravit"},{"n":"Caliber","v":"Caliber"},{"n":"沙盒与副本:英勇之地","v":"沙盒与副本:英勇之地"},{"n":"Coridden","v":"Coridden"},{"n":"Unrecord","v":"Unrecord"},{"n":"Deducto 2","v":"Deducto 2"},{"n":"装甲核心6:境界天火","v":"装甲核心6:境界天火"},{"n":"Wayfinder","v":"Wayfinder"},{"n":"迷瘴纪事","v":"迷瘴纪事"},{"n":"Minigame Madness","v":"Minigame Madness"},{"n":"Only Up","v":"Only Up"},{"n":"天文世界","v":"天文世界"},{"n":"学园构想家","v":"学园构想家"},{"n":"Jusant","v":"Jusant"},{"n":"潜水员戴夫","v":"潜水员戴夫"},{"n":"GYLT","v":"GYLT"},{"n":"遗迹2","v":"遗迹2"},{"n":"索利斯堡","v":"索利斯堡"},{"n":"Towerborne","v":"Towerborne"},{"n":"33 Immortals","v":"33 Immortals"},{"n":"Wildmender","v":"Wildmender"},{"n":"How 2 Escape","v":"How 2 Escape"},{"n":"漫威蜘蛛侠2","v":"漫威蜘蛛侠2"},{"n":"博德之门3","v":"博德之门3"},{"n":"Eternights","v":"Eternights"},{"n":"Project F","v":"Project F"},{"n":"BaldMan Climbs Up","v":"BaldMan Climbs Up"},{"n":"FC24","v":"FC24"},{"n":"NBA 2K24","v":"NBA 2K24"},{"n":"超级马里奥兄弟:惊奇","v":"超级马里奥兄弟:惊奇"},{"n":"蛮荒志异","v":"蛮荒志异"},{"n":"王者荣耀","v":"王者荣耀"},{"n":"LOL手游","v":"LOL手游"},{"n":"崩坏:星穹铁道","v":"崩坏:星穹铁道"},{"n":"逆水寒手游","v":"逆水寒手游"},{"n":"和平精英","v":"和平精英"},{"n":"暗区突围","v":"暗区突围"},{"n":"蛋仔派对","v":"蛋仔派对"},{"n":"高能英雄","v":"高能英雄"},{"n":"幻塔","v":"幻塔"},{"n":"火影忍者","v":"火影忍者"},{"n":"COD手游","v":"COD手游"},{"n":"lol电竞经理","v":"lol电竞经理"},{"n":"DNF手游","v":"DNF手游"},{"n":"金铲铲之战","v":"金铲铲之战"},{"n":"天刀手游","v":"天刀手游"},{"n":"原神","v":"原神"},{"n":"航海王热血航线","v":"航海王热血航线"},{"n":"元梦之星","v":"元梦之星"},{"n":"鸿图之下","v":"鸿图之下"},{"n":"欢乐麻将","v":"欢乐麻将"},{"n":"王者模拟战","v":"王者模拟战"},{"n":"中国象棋","v":"中国象棋"},{"n":"天谕手游","v":"天谕手游"},{"n":"巅峰坦克","v":"巅峰坦克"},{"n":"新游中心","v":"新游中心"},{"n":"热门手游","v":"热门手游"},{"n":"梦幻手游","v":"梦幻手游"},{"n":"QQ飞车","v":"QQ飞车"},{"n":"第五人格","v":"第五人格"},{"n":"欢乐斗地主","v":"欢乐斗地主"},{"n":"荒野乱斗","v":"荒野乱斗"},{"n":"阴阳师","v":"阴阳师"},{"n":"狼人杀","v":"狼人杀"},{"n":"JJ斗地主","v":"JJ斗地主"},{"n":"梦幻新诛仙","v":"梦幻新诛仙"},{"n":"多多自走棋","v":"多多自走棋"},{"n":"崩坏3","v":"崩坏3"},{"n":"风云岛行动","v":"风云岛行动"},{"n":"云游戏","v":"云游戏"},{"n":"跑跑手游","v":"跑跑手游"},{"n":"率土之滨","v":"率土之滨"},{"n":"灌篮高手","v":"灌篮高手"},{"n":"皇室战争","v":"皇室战争"},{"n":"忍者必须死3","v":"忍者必须死3"},{"n":"神武4手游","v":"神武4手游"},{"n":"梦幻模拟战","v":"梦幻模拟战"},{"n":"实况足球","v":"实况足球"},{"n":"航海王:燃烧意志","v":"航海王:燃烧意志"},{"n":"球球大作战","v":"球球大作战"},{"n":"英雄杀","v":"英雄杀"},{"n":"魔域口袋版","v":"魔域口袋版"},{"n":"口袋新旅程","v":"口袋新旅程"},{"n":"剑网3:指尖江湖","v":"剑网3:指尖江湖"},{"n":"部落冲突","v":"部落冲突"},{"n":"剑与家园","v":"剑与家园"},{"n":"新笑傲江湖","v":"新笑傲江湖"},{"n":"猫和老鼠","v":"猫和老鼠"},{"n":"猎人手游","v":"猎人手游"},{"n":"明日之后","v":"明日之后"},{"n":"影之诗","v":"影之诗"},{"n":"决战平安京","v":"决战平安京"},{"n":"魂斗罗归来","v":"魂斗罗归来"},{"n":"圣斗士星矢","v":"圣斗士星矢"},{"n":"魔力宝贝手游","v":"魔力宝贝手游"},{"n":"哈利波特:魔法觉醒","v":"哈利波特:魔法觉醒"},{"n":"手游推广","v":"手游推广"},{"n":"魔灵召唤","v":"魔灵召唤"},{"n":"香肠派对","v":"香肠派对"},{"n":"迷你世界","v":"迷你世界"},{"n":"FC足球世界","v":"FC足球世界"},{"n":"街篮","v":"街篮"},{"n":"明日方舟","v":"明日方舟"},{"n":"一梦江湖","v":"一梦江湖"},{"n":"完美世界手游","v":"完美世界手游"},{"n":"拳皇98OL","v":"拳皇98OL"},{"n":"赛尔号","v":"赛尔号"},{"n":"仙境传说","v":"仙境传说"},{"n":"流星群侠传","v":"流星群侠传"},{"n":"逃跑吧少年","v":"逃跑吧少年"},{"n":"石器时代","v":"石器时代"},{"n":"RPG手游","v":"RPG手游"},{"n":"英魂之刃口袋版","v":"英魂之刃口袋版"},{"n":"倩女幽魂手游","v":"倩女幽魂手游"},{"n":"决斗之城2","v":"决斗之城2"},{"n":"传奇手游","v":"传奇手游"},{"n":"雀魂","v":"雀魂"},{"n":"二次元手游","v":"二次元手游"},{"n":"征途2手游","v":"征途2手游"},{"n":"万王之王3D","v":"万王之王3D"},{"n":"武林外传","v":"武林外传"},{"n":"潮人篮球","v":"潮人篮球"},{"n":"元气骑士","v":"元气骑士"},{"n":"红警OL手游","v":"红警OL手游"},{"n":"植物大战僵尸手游","v":"植物大战僵尸手游"},{"n":"创造与魔法","v":"创造与魔法"},{"n":"奇迹觉醒","v":"奇迹觉醒"},{"n":"光遇","v":"光遇"},{"n":"游戏王:决斗链接","v":"游戏王:决斗链接"},{"n":"巅峰战舰","v":"巅峰战舰"},{"n":"寻仙","v":"寻仙"},{"n":"天天象棋","v":"天天象棋"},{"n":"王国纪元","v":"王国纪元"},{"n":"龙族幻想","v":"龙族幻想"},{"n":"三国杀移动版","v":"三国杀移动版"},{"n":"罗布乐思","v":"罗布乐思"},{"n":"足球手游","v":"足球手游"},{"n":"月圆之夜","v":"月圆之夜"},{"n":"秦时明月世界","v":"秦时明月世界"},{"n":"麻将来了","v":"麻将来了"},{"n":"风之大陆","v":"风之大陆"},{"n":"金属对决","v":"金属对决"},{"n":"轩辕剑龙舞云山","v":"轩辕剑龙舞云山"},{"n":"微乐棋牌","v":"微乐棋牌"},{"n":"辐射:避难所Online","v":"辐射:避难所Online"},{"n":"街篮2","v":"街篮2"},{"n":"极光计划","v":"极光计划"},{"n":"不良人3","v":"不良人3"},{"n":"镇魔曲手游","v":"镇魔曲手游"},{"n":"乱世王者","v":"乱世王者"},{"n":"篮球手游","v":"篮球手游"},{"n":"鬼泣-巅峰之战","v":"鬼泣-巅峰之战"},{"n":"射击类手游","v":"射击类手游"},{"n":"命运歌姬","v":"命运歌姬"},{"n":"暗黑不朽","v":"暗黑不朽"},{"n":"新神魔大陆","v":"新神魔大陆"},{"n":"三国志战略版","v":"三国志战略版"},{"n":"天地劫:幽城再临","v":"天地劫:幽城再临"},{"n":"Disorder","v":"Disorder"},{"n":"云上城之歌","v":"云上城之歌"},{"n":"五子棋","v":"五子棋"},{"n":"围棋","v":"围棋"},{"n":"全球行动","v":"全球行动"},{"n":"诛仙手游","v":"诛仙手游"},{"n":"妄想山海","v":"妄想山海"},{"n":"黎明觉醒:生机","v":"黎明觉醒:生机"},{"n":"庆余年","v":"庆余年"},{"n":"我的侠客","v":"我的侠客"},{"n":"曙光英雄","v":"曙光英雄"},{"n":"大话西游手游","v":"大话西游手游"},{"n":"战争怒吼","v":"战争怒吼"},{"n":"忘川风华录","v":"忘川风华录"},{"n":"新剑侠情缘手游","v":"新剑侠情缘手游"},{"n":"重生细胞","v":"重生细胞"},{"n":"汉家江湖","v":"汉家江湖"},{"n":"海岛奇兵","v":"海岛奇兵"},{"n":"钢铁力量2","v":"钢铁力量2"},{"n":"仙剑奇侠传九野","v":"仙剑奇侠传九野"},{"n":"大唐无双手游","v":"大唐无双手游"},{"n":"地铁跑酷","v":"地铁跑酷"},{"n":"战舰世界闪击战","v":"战舰世界闪击战"},{"n":"狂暴之翼","v":"狂暴之翼"},{"n":"横扫千军","v":"横扫千军"},{"n":"节奏大爆炸","v":"节奏大爆炸"},{"n":"喵斯快跑","v":"喵斯快跑"},{"n":"双子","v":"双子"},{"n":"小美斗地主","v":"小美斗地主"},{"n":"精灵之境","v":"精灵之境"},{"n":"斗罗大陆:武魂觉醒","v":"斗罗大陆:武魂觉醒"},{"n":"斗罗大陆2绝世唐门","v":"斗罗大陆2绝世唐门"},{"n":"战神觉醒","v":"战神觉醒"},{"n":"九州仙剑传H5","v":"九州仙剑传H5"},{"n":"荣耀大天使","v":"荣耀大天使"},{"n":"蓝月传奇","v":"蓝月传奇"},{"n":"凡人修仙传挂机版H5","v":"凡人修仙传挂机版H5"},{"n":"攻城掠地","v":"攻城掠地"},{"n":"盗墓笔记","v":"盗墓笔记"},{"n":"拳魂觉醒","v":"拳魂觉醒"},{"n":"大天使之剑","v":"大天使之剑"},{"n":"绝世仙王","v":"绝世仙王"},{"n":"一刀传世","v":"一刀传世"},{"n":"斗罗大陆","v":"斗罗大陆"},{"n":"破雪刃","v":"破雪刃"},{"n":"JJ象棋","v":"JJ象棋"},{"n":"天姬变","v":"天姬变"},{"n":"剑玲珑","v":"剑玲珑"},{"n":"火线精英","v":"火线精英"},{"n":"造梦西游OL","v":"造梦西游OL"},{"n":"奥奇传说手游","v":"奥奇传说手游"},{"n":"战斗吧龙魂","v":"战斗吧龙魂"},{"n":"剑开仙门","v":"剑开仙门"},{"n":"狼人对决","v":"狼人对决"},{"n":"最终幻想:勇气启示录 幻影战争","v":"最终幻想:勇气启示录 幻影战争"},{"n":"葫芦娃兄弟","v":"葫芦娃兄弟"},{"n":"造梦西游4","v":"造梦西游4"},{"n":"比特小队","v":"比特小队"},{"n":"流言侦探","v":"流言侦探"},{"n":"战舰联盟","v":"战舰联盟"},{"n":"另一个伊甸:超越时空的猫","v":"另一个伊甸:超越时空的猫"},{"n":"少女前线","v":"少女前线"},{"n":"遇见","v":"遇见"},{"n":"霓虹深渊:无限","v":"霓虹深渊:无限"},{"n":"胡莱三国3","v":"胡莱三国3"},{"n":"奥拉星","v":"奥拉星"},{"n":"先游云游戏","v":"先游云游戏"},{"n":"万象物语手游","v":"万象物语手游"},{"n":"绿茵信仰","v":"绿茵信仰"},{"n":"烟雨江湖","v":"烟雨江湖"},{"n":"球球联盟","v":"球球联盟"},{"n":"文明与征服","v":"文明与征服"},{"n":"碧蓝航线手游","v":"碧蓝航线手游"},{"n":"300大作战","v":"300大作战"},{"n":"2047","v":"2047"},{"n":"第七史诗","v":"第七史诗"},{"n":"汉末霸业","v":"汉末霸业"},{"n":"EVE星战前夜:无烬星河","v":"EVE星战前夜:无烬星河"},{"n":"少女前线2:追放","v":"少女前线2:追放"},{"n":"弹力果冻","v":"弹力果冻"},{"n":"火力苏打(T3)","v":"火力苏打(T3)"},{"n":"植物大战僵尸2","v":"植物大战僵尸2"},{"n":"球球英雄","v":"球球英雄"},{"n":"悠长假期","v":"悠长假期"},{"n":"无悔华夏","v":"无悔华夏"},{"n":"猫之城","v":"猫之城"},{"n":"未定事件簿","v":"未定事件簿"},{"n":"白夜极光","v":"白夜极光"},{"n":"ProjectGAIA","v":"ProjectGAIA"},{"n":"斗罗大陆:魂师对决","v":"斗罗大陆:魂师对决"},{"n":"古墓丽影传说:迷踪","v":"古墓丽影传说:迷踪"},{"n":"漫威对决","v":"漫威对决"},{"n":"放置与召唤","v":"放置与召唤"},{"n":"我是航海家","v":"我是航海家"},{"n":"军团战棋英雄时代","v":"军团战棋英雄时代"},{"n":"繁荣美食市场物语","v":"繁荣美食市场物语"},{"n":"老农种树","v":"老农种树"},{"n":"三国演义:吞噬无界","v":"三国演义:吞噬无界"},{"n":"偶像梦幻祭2","v":"偶像梦幻祭2"},{"n":"卡卡保皇","v":"卡卡保皇"},{"n":"灵猫传","v":"灵猫传"},{"n":"剑侠世界3","v":"剑侠世界3"},{"n":"召唤与合成2","v":"召唤与合成2"},{"n":"像素时代","v":"像素时代"},{"n":"仙侠第一放置","v":"仙侠第一放置"},{"n":"无尽的拉格朗日","v":"无尽的拉格朗日"},{"n":"弓箭手大作战","v":"弓箭手大作战"},{"n":"挨饿荒野","v":"挨饿荒野"},{"n":"诺亚之心","v":"诺亚之心"},{"n":"闪耀暖暖","v":"闪耀暖暖"},{"n":"物种起源","v":"物种起源"},{"n":"模拟城市:我是市长","v":"模拟城市:我是市长"},{"n":"重返帝国","v":"重返帝国"},{"n":"太古仙尊","v":"太古仙尊"},{"n":"长安幻想","v":"长安幻想"},{"n":"火炬之光:无限","v":"火炬之光:无限"},{"n":"富豪闯三国","v":"富豪闯三国"},{"n":"拂晓","v":"拂晓"},{"n":"古剑奇谭木语人","v":"古剑奇谭木语人"},{"n":"火影忍者:忍者新世代","v":"火影忍者:忍者新世代"},{"n":"末日远征","v":"末日远征"},{"n":"滚动的天空","v":"滚动的天空"},{"n":"新斗罗大陆","v":"新斗罗大陆"},{"n":"登山赛车","v":"登山赛车"},{"n":"荒野乱斗(腾讯版)","v":"荒野乱斗(腾讯版)"},{"n":"小小勇者","v":"小小勇者"},{"n":"小冰冰传奇","v":"小冰冰传奇"},{"n":"三国战纪2手游","v":"三国战纪2手游"},{"n":"幸存者危城","v":"幸存者危城"},{"n":"冒险公社手游","v":"冒险公社手游"},{"n":"欧陆战争5:帝国","v":"欧陆战争5:帝国"},{"n":"纪念碑谷2","v":"纪念碑谷2"},{"n":"大航海探险物语","v":"大航海探险物语"},{"n":"航海日记","v":"航海日记"},{"n":"一拳超人:最强之男","v":"一拳超人:最强之男"},{"n":"王国保卫战4","v":"王国保卫战4"},{"n":"半世界之旅","v":"半世界之旅"},{"n":"奥特曼宇宙英雄","v":"奥特曼宇宙英雄"},{"n":"新三国杀","v":"新三国杀"},{"n":"奶块","v":"奶块"},{"n":"策魂三国","v":"策魂三国"},{"n":"奥特曼系列OL","v":"奥特曼系列OL"},{"n":"欢喜斗地主","v":"欢喜斗地主"},{"n":"洪荒文明","v":"洪荒文明"},{"n":"街头足球","v":"街头足球"},{"n":"同人圣三国蜀汉传","v":"同人圣三国蜀汉传"},{"n":"塔防之光","v":"塔防之光"},{"n":"我做夫人那些年","v":"我做夫人那些年"},{"n":"小小五千年","v":"小小五千年"},{"n":"乖离性百万亚瑟王:环","v":"乖离性百万亚瑟王:环"},{"n":"时空猎人","v":"时空猎人"},{"n":"星际逆战","v":"星际逆战"},{"n":"羽毛球高高手","v":"羽毛球高高手"},{"n":"LoveLive! 学园偶像祭","v":"LoveLive! 学园偶像祭"},{"n":"黑色沙漠手游","v":"黑色沙漠手游"},{"n":"魔力宝贝:旅人","v":"魔力宝贝:旅人"},{"n":"大家饿餐厅","v":"大家饿餐厅"},{"n":"魔力宝贝归来","v":"魔力宝贝归来"},{"n":"巅峰极速","v":"巅峰极速"},{"n":"新盗墓笔记","v":"新盗墓笔记"},{"n":"轩辕传奇手游","v":"轩辕传奇手游"},{"n":"萤火突击国际服","v":"萤火突击国际服"},{"n":"武林闲侠","v":"武林闲侠"},{"n":"淘米游戏","v":"淘米游戏"},{"n":"无期迷途","v":"无期迷途"},{"n":"逆光潜入","v":"逆光潜入"},{"n":"深空之眼","v":"深空之眼"},{"n":"CF手游","v":"CF手游"},{"n":"新天龙八部手游","v":"新天龙八部手游"},{"n":"尘白禁区","v":"尘白禁区"},{"n":"原始征途","v":"原始征途"},{"n":"全民大灌篮","v":"全民大灌篮"},{"n":"枪火重生手游","v":"枪火重生手游"},{"n":"火影三国志","v":"火影三国志"},{"n":"网易其它组","v":"网易其它组"},{"n":"三国战纪手游","v":"三国战纪手游"},{"n":"染·钟楼谜团","v":"染·钟楼谜团"},{"n":"绝区零","v":"绝区零"},{"n":"重返CODM","v":"重返CODM"},{"n":"综合手游","v":"综合手游"},{"n":"IP游戏","v":"IP游戏"},{"n":"鸣潮","v":"鸣潮"},{"n":"棋牌游戏","v":"棋牌游戏"},{"n":"奥比岛:梦想国度","v":"奥比岛:梦想国度"},{"n":"晶核","v":"晶核"},{"n":"星之破晓","v":"星之破晓"},{"n":"赛尔计划","v":"赛尔计划"},{"n":"SLG综合","v":"SLG综合"},{"n":"代号:伙伴","v":"代号:伙伴"},{"n":"天使之战","v":"天使之战"},{"n":"全明星街球派对","v":"全明星街球派对"},{"n":"合金弹头:觉醒","v":"合金弹头:觉醒"},{"n":"劲乐幻想","v":"劲乐幻想"},{"n":"白荆回廊","v":"白荆回廊"},{"n":"战地无疆","v":"战地无疆"},{"n":"三国志战棋版","v":"三国志战棋版"},{"n":"一拳超人:世界","v":"一拳超人:世界"},{"n":"鹅鸭杀手游","v":"鹅鸭杀手游"},{"n":"太空杀","v":"太空杀"},{"n":"大话西游:归来","v":"大话西游:归来"},{"n":"战火勋章","v":"战火勋章"},{"n":"西行纪 燃魂","v":"西行纪 燃魂"},{"n":"决胜巅峰","v":"决胜巅峰"},{"n":"冒险岛:枫之传说","v":"冒险岛:枫之传说"},{"n":"七人传奇:光与暗之交战","v":"七人传奇:光与暗之交战"},{"n":"综合桌游","v":"综合桌游"},{"n":"闪耀!优俊少女","v":"闪耀!优俊少女"},{"n":"三角洲行动","v":"三角洲行动"},{"n":"二次元游戏","v":"二次元游戏"}]}],
- "huya":[{"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":"原创"},{"n":"虎牙文化","v":"虎牙文化"},{"n":"体育","v":"体育"},{"n":"虎牙地方","v":"虎牙地方"},{"n":"颜值","v":"颜值"},{"n":"科技","v":"科技"},{"n":"音乐","v":"音乐"},{"n":"趣分享","v":"趣分享"},{"n":"一起买","v":"一起买"},{"n":"派对","v":"派对"},{"n":"英雄联盟","v":"英雄联盟"},{"n":"CS2","v":"CS2"},{"n":"穿越火线","v":"穿越火线"},{"n":"lol云顶之弈","v":"lol云顶之弈"},{"n":"无畏契约","v":"无畏契约"},{"n":"CFHD","v":"CFHD"},{"n":"逆战","v":"逆战"},{"n":"炉石传说","v":"炉石传说"},{"n":"DOTA2","v":"DOTA2"},{"n":"地下城与勇士","v":"地下城与勇士"},{"n":"魔兽世界","v":"魔兽世界"},{"n":"坦克世界","v":"坦克世界"},{"n":"DOTA1","v":"DOTA1"},{"n":"梦三国","v":"梦三国"},{"n":"魔兽争霸3","v":"魔兽争霸3"},{"n":"问道","v":"问道"},{"n":"命运方舟","v":"命运方舟"},{"n":"QQ飞车","v":"QQ飞车"},{"n":"星际争霸","v":"星际争霸"},{"n":"网游竞技","v":"网游竞技"},{"n":"射击综合游戏","v":"射击综合游戏"},{"n":"暴雪专区","v":"暴雪专区"},{"n":"彩虹岛Online","v":"彩虹岛Online"},{"n":"剑灵","v":"剑灵"},{"n":"军事游戏","v":"军事游戏"},{"n":"冒险岛","v":"冒险岛"},{"n":"暗黑破坏神","v":"暗黑破坏神"},{"n":"诛仙3","v":"诛仙3"},{"n":"热血江湖","v":"热血江湖"},{"n":"英魂之刃","v":"英魂之刃"},{"n":"武林外传一世琴缘","v":"武林外传一世琴缘"},{"n":"起凡:群雄逐鹿","v":"起凡:群雄逐鹿"},{"n":"神武4电脑版","v":"神武4电脑版"},{"n":"龙之谷","v":"龙之谷"},{"n":"炉石战棋","v":"炉石战棋"},{"n":"御龙在天","v":"御龙在天"},{"n":"逆水寒","v":"逆水寒"},{"n":"千年3","v":"千年3"},{"n":"永恒之塔","v":"永恒之塔"},{"n":"体育游戏","v":"体育游戏"},{"n":"寻仙","v":"寻仙"},{"n":"战舰世界","v":"战舰世界"},{"n":"QQ三国","v":"QQ三国"},{"n":"流放之路","v":"流放之路"},{"n":"反恐精英Online","v":"反恐精英Online"},{"n":"反恐行动online","v":"反恐行动online"},{"n":"征途","v":"征途"},{"n":"战争雷霆","v":"战争雷霆"},{"n":"丝路传说2","v":"丝路传说2"},{"n":"星际战甲","v":"星际战甲"},{"n":"NBA2KOL系列","v":"NBA2KOL系列"},{"n":"九阴真经","v":"九阴真经"},{"n":"跑跑卡丁车","v":"跑跑卡丁车"},{"n":"诛仙世界","v":"诛仙世界"},{"n":"QQ华夏","v":"QQ华夏"},{"n":"天涯明月刀","v":"天涯明月刀"},{"n":"大话西游:归来","v":"大话西游:归来"},{"n":"荒野行动PC版","v":"荒野行动PC版"},{"n":"新剑侠情缘","v":"新剑侠情缘"},{"n":"剑网3","v":"剑网3"},{"n":"生死狙击2","v":"生死狙击2"},{"n":"全球使命","v":"全球使命"},{"n":"梦想世界3","v":"梦想世界3"},{"n":"枪神纪","v":"枪神纪"},{"n":"新天龙八部","v":"新天龙八部"},{"n":"铁甲雄兵","v":"铁甲雄兵"},{"n":"神泣","v":"神泣"},{"n":"斗战神","v":"斗战神"},{"n":"造梦西游OL","v":"造梦西游OL"},{"n":"天堂","v":"天堂"},{"n":"大话西游2","v":"大话西游2"},{"n":"使命召唤:战区","v":"使命召唤:战区"},{"n":"希望OL","v":"希望OL"},{"n":"极光世界 弑神传","v":"极光世界 弑神传"},{"n":"守望先锋归来","v":"守望先锋归来"},{"n":"QQ自由幻想","v":"QQ自由幻想"},{"n":"命运2","v":"命运2"},{"n":"奇迹世界2","v":"奇迹世界2"},{"n":"坦克大战","v":"坦克大战"},{"n":"生死狙击","v":"生死狙击"},{"n":"天翼决","v":"天翼决"},{"n":"QQ幻想","v":"QQ幻想"},{"n":"新飞飞(FlyFF)","v":"新飞飞(FlyFF)"},{"n":"刀剑英雄","v":"刀剑英雄"},{"n":"FIFA Online系列","v":"FIFA Online系列"},{"n":"全球使命3","v":"全球使命3"},{"n":"完美端游系列","v":"完美端游系列"},{"n":"战意","v":"战意"},{"n":"泡泡堂","v":"泡泡堂"},{"n":"赛尔号","v":"赛尔号"},{"n":"大唐无双零","v":"大唐无双零"},{"n":"QQ炫舞","v":"QQ炫舞"},{"n":"007:传奇","v":"007:传奇"},{"n":"天下","v":"天下"},{"n":"天谕","v":"天谕"},{"n":"新倩女幽魂","v":"新倩女幽魂"},{"n":"传世无双","v":"传世无双"},{"n":"剑侠世界","v":"剑侠世界"},{"n":"Warhaven","v":"Warhaven"},{"n":"诺亚传说","v":"诺亚传说"},{"n":"新挑战","v":"新挑战"},{"n":"超激斗梦境","v":"超激斗梦境"},{"n":"QQ音速","v":"QQ音速"},{"n":"征途2","v":"征途2"},{"n":"征程","v":"征程"},{"n":"蜀门","v":"蜀门"},{"n":"完美世界:诸神之战","v":"完美世界:诸神之战"},{"n":"战之刃:幸存者","v":"战之刃:幸存者"},{"n":"黎明之光","v":"黎明之光"},{"n":"天命西游","v":"天命西游"},{"n":"炫舞时代","v":"炫舞时代"},{"n":"荣誉空间","v":"荣誉空间"},{"n":"卡拉彼丘","v":"卡拉彼丘"},{"n":"成吉思汗怀旧版","v":"成吉思汗怀旧版"},{"n":"英雄年代3","v":"英雄年代3"},{"n":"天书奇谈","v":"天书奇谈"},{"n":"劲舞团","v":"劲舞团"},{"n":"远征Online梦想版","v":"远征Online梦想版"},{"n":"奇迹:传奇","v":"奇迹:传奇"},{"n":"封印者","v":"封印者"},{"n":"上古世纪","v":"上古世纪"},{"n":"梦幻诛仙2","v":"梦幻诛仙2"},{"n":"TERA Online","v":"TERA Online"},{"n":"倚天Ⅱ","v":"倚天Ⅱ"},{"n":"街头篮球","v":"街头篮球"},{"n":"永恒轮回:无限","v":"永恒轮回:无限"},{"n":"火线精英","v":"火线精英"},{"n":"忍者村大战2","v":"忍者村大战2"},{"n":"领地人生","v":"领地人生"},{"n":"仙侠世界","v":"仙侠世界"},{"n":"洛奇英雄传","v":"洛奇英雄传"},{"n":"KARDS","v":"KARDS"},{"n":"无限法则","v":"无限法则"},{"n":"全面战争:竞技场","v":"全面战争:竞技场"},{"n":"自由篮球","v":"自由篮球"},{"n":"FC Online4","v":"FC Online4"},{"n":"战地之王","v":"战地之王"},{"n":"古剑奇谭OL","v":"古剑奇谭OL"},{"n":"QQ仙侠传","v":"QQ仙侠传"},{"n":"300英雄","v":"300英雄"},{"n":"天天吃鸡","v":"天天吃鸡"},{"n":"永劫无间","v":"永劫无间"},{"n":"主机游戏","v":"主机游戏"},{"n":"猛兽派对","v":"猛兽派对"},{"n":"互动点播","v":"互动点播"},{"n":"我的世界","v":"我的世界"},{"n":"方舟","v":"方舟"},{"n":"单机热游","v":"单机热游"},{"n":"怀旧游戏","v":"怀旧游戏"},{"n":"逃离塔科夫","v":"逃离塔科夫"},{"n":"俄罗斯钓鱼4","v":"俄罗斯钓鱼4"},{"n":"部落:上升","v":"部落:上升"},{"n":"Dark and Darker","v":"Dark and Darker"},{"n":"The Front","v":"The Front"},{"n":"Apex英雄","v":"Apex英雄"},{"n":"生化危机4重制版","v":"生化危机4重制版"},{"n":"DayZ独立版","v":"DayZ独立版"},{"n":"星空","v":"星空"},{"n":"互动剧游","v":"互动剧游"},{"n":"艾尔登法环","v":"艾尔登法环"},{"n":"恐惧之间","v":"恐惧之间"},{"n":"SCUM","v":"SCUM"},{"n":"Dread Hunger","v":"Dread Hunger"},{"n":"塞尔达传说:王国之泪","v":"塞尔达传说:王国之泪"},{"n":"欧洲卡车模拟","v":"欧洲卡车模拟"},{"n":"洛克王国","v":"洛克王国"},{"n":"卧龙:苍天陨落","v":"卧龙:苍天陨落"},{"n":"无人深空","v":"无人深空"},{"n":"帝国神话","v":"帝国神话"},{"n":"饥荒","v":"饥荒"},{"n":"森林之子","v":"森林之子"},{"n":"星球大战系列","v":"星球大战系列"},{"n":"极限竞速:地平线","v":"极限竞速:地平线"},{"n":"最终幻想16","v":"最终幻想16"},{"n":"Among Us","v":"Among Us"},{"n":"怪物猎人:崛起","v":"怪物猎人:崛起"},{"n":"怪物猎人物语","v":"怪物猎人物语"},{"n":"骑马与砍杀系列","v":"骑马与砍杀系列"},{"n":"荒野大镖客2","v":"荒野大镖客2"},{"n":"太荒初境","v":"太荒初境"},{"n":"罗布乐思","v":"罗布乐思"},{"n":"只狼:影逝二度","v":"只狼:影逝二度"},{"n":"双人成行","v":"双人成行"},{"n":"重生边缘","v":"重生边缘"},{"n":"海贼王 寻秘世界","v":"海贼王 寻秘世界"},{"n":"战神:诸神黄昏","v":"战神:诸神黄昏"},{"n":"恐鬼症","v":"恐鬼症"},{"n":"鬼谷八荒","v":"鬼谷八荒"},{"n":"霍格沃茨之遗","v":"霍格沃茨之遗"},{"n":"全面战争","v":"全面战争"},{"n":"仁王2","v":"仁王2"},{"n":"奥拉星","v":"奥拉星"},{"n":"甜蜜之家","v":"甜蜜之家"},{"n":"仙剑奇侠传七","v":"仙剑奇侠传七"},{"n":"消逝的光芒2","v":"消逝的光芒2"},{"n":"渡神记","v":"渡神记"},{"n":"归家异途","v":"归家异途"},{"n":"博德之门3","v":"博德之门3"},{"n":"看门狗:军团","v":"看门狗:军团"},{"n":"使命召唤系列","v":"使命召唤系列"},{"n":"育碧游戏","v":"育碧游戏"},{"n":"帝国时代4","v":"帝国时代4"},{"n":"英灵神殿","v":"英灵神殿"},{"n":"蛮荒志异:起源","v":"蛮荒志异:起源"},{"n":"岛","v":"岛"},{"n":"沙盒与副本","v":"沙盒与副本"},{"n":"扫雷","v":"扫雷"},{"n":"街机游戏","v":"街机游戏"},{"n":"幽灵线:东京","v":"幽灵线:东京"},{"n":"怪物猎人世界","v":"怪物猎人世界"},{"n":"盗贼之海","v":"盗贼之海"},{"n":"纸人","v":"纸人"},{"n":"黑色像素人","v":"黑色像素人"},{"n":"对马岛之魂","v":"对马岛之魂"},{"n":"瑞奇与叮当","v":"瑞奇与叮当"},{"n":"港诡实录","v":"港诡实录"},{"n":"剑士","v":"剑士"},{"n":"魔法门之英雄无敌系列","v":"魔法门之英雄无敌系列"},{"n":"星露谷物语","v":"星露谷物语"},{"n":"仙剑奇侠传四","v":"仙剑奇侠传四"},{"n":"伤害世界","v":"伤害世界"},{"n":"禁闭求生","v":"禁闭求生"},{"n":"真三国无双","v":"真三国无双"},{"n":"恐怖黎明","v":"恐怖黎明"},{"n":"其他单机","v":"其他单机"},{"n":"幽灵行动:荒野","v":"幽灵行动:荒野"},{"n":"边缘","v":"边缘"},{"n":"阿凡达","v":"阿凡达"},{"n":"全面战争:三国","v":"全面战争:三国"},{"n":"黎明之星","v":"黎明之星"},{"n":"翼星求生","v":"翼星求生"},{"n":"黎明传说","v":"黎明传说"},{"n":"恶魔之魂","v":"恶魔之魂"},{"n":"艾兰岛","v":"艾兰岛"},{"n":"龙与地下城:秘影历代记HD","v":"龙与地下城:秘影历代记HD"},{"n":"龙与地下城:匕首谷","v":"龙与地下城:匕首谷"},{"n":"沙石镇时光","v":"沙石镇时光"},{"n":"三国志曹操传","v":"三国志曹操传"},{"n":"FIFA足球","v":"FIFA足球"},{"n":"最终幻想7:重制版","v":"最终幻想7:重制版"},{"n":"四海兄弟","v":"四海兄弟"},{"n":"最终幻想:起源","v":"最终幻想:起源"},{"n":"摔跤城大乱斗","v":"摔跤城大乱斗"},{"n":"音乐游戏","v":"音乐游戏"},{"n":"精灵与萤火意志","v":"精灵与萤火意志"},{"n":"桥梁建造师","v":"桥梁建造师"},{"n":"哈迪斯","v":"哈迪斯"},{"n":"小缇娜的奇幻之地","v":"小缇娜的奇幻之地"},{"n":"宝可梦:剑盾","v":"宝可梦:剑盾"},{"n":"边境","v":"边境"},{"n":"人类一败涂地","v":"人类一败涂地"},{"n":"糖豆人:终极淘汰赛","v":"糖豆人:终极淘汰赛"},{"n":"精灵宝可梦Let's Go","v":"精灵宝可梦Let's Go"},{"n":"战锤40K:暗潮","v":"战锤40K:暗潮"},{"n":"石油骚动","v":"石油骚动"},{"n":"紫塞秋风","v":"紫塞秋风"},{"n":"阿尔比恩","v":"阿尔比恩"},{"n":"猎人:荒野的召唤","v":"猎人:荒野的召唤"},{"n":"FIFA 23","v":"FIFA 23"},{"n":"都市:天际线","v":"都市:天际线"},{"n":"乐高大电影:游戏版","v":"乐高大电影:游戏版"},{"n":"全面战争:阿提拉","v":"全面战争:阿提拉"},{"n":"斩妖行","v":"斩妖行"},{"n":"马里奥赛车8","v":"马里奥赛车8"},{"n":"复仇者联盟","v":"复仇者联盟"},{"n":"霓虹深渊","v":"霓虹深渊"},{"n":"王者荣耀","v":"王者荣耀"},{"n":"和平精英","v":"和平精英"},{"n":"英雄联盟手游","v":"英雄联盟手游"},{"n":"CF手游","v":"CF手游"},{"n":"金铲铲之战","v":"金铲铲之战"},{"n":"三国杀","v":"三国杀"},{"n":"原神","v":"原神"},{"n":"棋牌桌游","v":"棋牌桌游"},{"n":"综合手游","v":"综合手游"},{"n":"劲乐幻想","v":"劲乐幻想"},{"n":"新游广场","v":"新游广场"},{"n":"崩坏:星穹铁道","v":"崩坏:星穹铁道"},{"n":"火影忍者手游","v":"火影忍者手游"},{"n":"第五人格","v":"第五人格"},{"n":"问道手游","v":"问道手游"},{"n":"暗区突围","v":"暗区突围"},{"n":"QQ飞车手游","v":"QQ飞车手游"},{"n":"球球大作战","v":"球球大作战"},{"n":"明日之后","v":"明日之后"},{"n":"皇室战争","v":"皇室战争"},{"n":"COD手游","v":"COD手游"},{"n":"手游休闲","v":"手游休闲"},{"n":"二次元手游","v":"二次元手游"},{"n":"摸了个鱼","v":"摸了个鱼"},{"n":"MMORPG","v":"MMORPG"},{"n":"动作游戏","v":"动作游戏"},{"n":"战争冲突","v":"战争冲突"},{"n":"王者模拟战","v":"王者模拟战"},{"n":"逆水寒手游","v":"逆水寒手游"},{"n":"幻塔","v":"幻塔"},{"n":"欢乐斗地主","v":"欢乐斗地主"},{"n":"神武4手游","v":"神武4手游"},{"n":"阴阳师","v":"阴阳师"},{"n":"DNF手游","v":"DNF手游"},{"n":"欢乐麻将","v":"欢乐麻将"},{"n":"英雄联盟电竞经理","v":"英雄联盟电竞经理"},{"n":"狼人杀手游","v":"狼人杀手游"},{"n":"新天龙八部手游","v":"新天龙八部手游"},{"n":"中国象棋","v":"中国象棋"},{"n":"天天象棋","v":"天天象棋"},{"n":"传奇世界3D","v":"传奇世界3D"},{"n":"御龙在天手游","v":"御龙在天手游"},{"n":"高能英雄","v":"高能英雄"},{"n":"天龙八部手游","v":"天龙八部手游"},{"n":"三国志战略版","v":"三国志战略版"},{"n":"忍者必须死3","v":"忍者必须死3"},{"n":"SKY光遇","v":"SKY光遇"},{"n":"虎牙领主争霸","v":"虎牙领主争霸"},{"n":"云上城之歌","v":"云上城之歌"},{"n":"晶核","v":"晶核"},{"n":"仙境传说RO","v":"仙境传说RO"},{"n":"天天狼人","v":"天天狼人"},{"n":"JJ棋牌","v":"JJ棋牌"},{"n":"奇迹MU:觉醒","v":"奇迹MU:觉醒"},{"n":"指尖四川麻将","v":"指尖四川麻将"},{"n":"部落冲突","v":"部落冲突"},{"n":"新剑侠情缘手游","v":"新剑侠情缘手游"},{"n":"萌宠远征","v":"萌宠远征"},{"n":"暗黑破坏神:不朽","v":"暗黑破坏神:不朽"},{"n":"英雄杀","v":"英雄杀"},{"n":"热血江湖手游","v":"热血江湖手游"},{"n":"蛋仔派对","v":"蛋仔派对"},{"n":"完美世界手游","v":"完美世界手游"},{"n":"巅峰战舰","v":"巅峰战舰"},{"n":"狼人杀","v":"狼人杀"},{"n":"斗罗大陆:魂师对决","v":"斗罗大陆:魂师对决"},{"n":"武侠乂手游","v":"武侠乂手游"},{"n":"诛仙手游","v":"诛仙手游"},{"n":"斗破苍穹手游","v":"斗破苍穹手游"},{"n":"迷你世界","v":"迷你世界"},{"n":"风云","v":"风云"},{"n":"妄想山海","v":"妄想山海"},{"n":"曙光英雄","v":"曙光英雄"},{"n":"三国战纪2","v":"三国战纪2"},{"n":"梦幻新诛仙","v":"梦幻新诛仙"},{"n":"黎明觉醒:生机","v":"黎明觉醒:生机"},{"n":"远征","v":"远征"},{"n":"航海王:燃烧意志","v":"航海王:燃烧意志"},{"n":"火炬之光:无限","v":"火炬之光:无限"},{"n":"巅峰极速","v":"巅峰极速"},{"n":"圣境之塔","v":"圣境之塔"},{"n":"魔力宝贝","v":"魔力宝贝"},{"n":"香肠派对","v":"香肠派对"},{"n":"创造与魔法","v":"创造与魔法"},{"n":"JJ斗地主","v":"JJ斗地主"},{"n":"永恒纪元:戒","v":"永恒纪元:戒"},{"n":"天涯明月刀手游","v":"天涯明月刀手游"},{"n":"狼人杀官方","v":"狼人杀官方"},{"n":"混沌起源","v":"混沌起源"},{"n":"多多自走棋","v":"多多自走棋"},{"n":"梦幻诛仙手游","v":"梦幻诛仙手游"},{"n":"鸿图之下","v":"鸿图之下"},{"n":"新笑傲江湖","v":"新笑傲江湖"},{"n":"凡人修仙传:人界篇","v":"凡人修仙传:人界篇"},{"n":"多乐棋牌","v":"多乐棋牌"},{"n":"口袋觉醒","v":"口袋觉醒"},{"n":"跑跑卡丁车手游","v":"跑跑卡丁车手游"},{"n":"奶块","v":"奶块"},{"n":"月圆之夜","v":"月圆之夜"},{"n":"率土之滨","v":"率土之滨"},{"n":"征途2手游","v":"征途2手游"},{"n":"英魂之刃口袋版","v":"英魂之刃口袋版"},{"n":"精灵盛典:黎明","v":"精灵盛典:黎明"},{"n":"方舟手游","v":"方舟手游"},{"n":"掼蛋","v":"掼蛋"},{"n":"绝世仙王","v":"绝世仙王"},{"n":"流星群侠传","v":"流星群侠传"},{"n":"寻仙手游","v":"寻仙手游"},{"n":"一梦江湖","v":"一梦江湖"},{"n":"Lost Light(萤火突击国际服)","v":"Lost Light(萤火突击国际服)"},{"n":"弹幕云游戏","v":"弹幕云游戏"},{"n":"猎魂觉醒","v":"猎魂觉醒"},{"n":"冒险岛:枫之传说","v":"冒险岛:枫之传说"},{"n":"征途手游","v":"征途手游"},{"n":"海岛奇兵","v":"海岛奇兵"},{"n":"倩女幽魂手游","v":"倩女幽魂手游"},{"n":"超凡先锋","v":"超凡先锋"},{"n":"龙之谷2手游","v":"龙之谷2手游"},{"n":"崩坏3","v":"崩坏3"},{"n":"猫和老鼠","v":"猫和老鼠"},{"n":"七人传奇:光与暗之交战","v":"七人传奇:光与暗之交战"},{"n":"JJ麻将","v":"JJ麻将"},{"n":"拉轰西游","v":"拉轰西游"},{"n":"三国战纪","v":"三国战纪"},{"n":"自由幻想手游","v":"自由幻想手游"},{"n":"秦时明月世界","v":"秦时明月世界"},{"n":"新斗罗大陆","v":"新斗罗大陆"},{"n":"新神魔大陆","v":"新神魔大陆"},{"n":"逃跑吧!少年","v":"逃跑吧!少年"},{"n":"太古神王2","v":"太古神王2"},{"n":"剑侠世界3","v":"剑侠世界3"},{"n":"天天吃鸡手机版","v":"天天吃鸡手机版"},{"n":"时空猎人3","v":"时空猎人3"},{"n":"合金弹头:觉醒","v":"合金弹头:觉醒"},{"n":"明日方舟","v":"明日方舟"},{"n":"原始征途","v":"原始征途"},{"n":"奇迹:最强者","v":"奇迹:最强者"},{"n":"天天酷跑","v":"天天酷跑"},{"n":"FC 足球世界","v":"FC 足球世界"},{"n":"万国觉醒","v":"万国觉醒"},{"n":"机动都市阿尔法","v":"机动都市阿尔法"},{"n":"航海王热血航线","v":"航海王热血航线"},{"n":"幻世九歌","v":"幻世九歌"},{"n":"植物大战僵尸","v":"植物大战僵尸"},{"n":"无悔华夏","v":"无悔华夏"},{"n":"时空猎人","v":"时空猎人"},{"n":"荒野乱斗","v":"荒野乱斗"},{"n":"拳皇98终极之战OL","v":"拳皇98终极之战OL"},{"n":"蛇蛇争霸","v":"蛇蛇争霸"},{"n":"王牌竞速","v":"王牌竞速"},{"n":"重返帝国","v":"重返帝国"},{"n":"吞噬星空:黎明","v":"吞噬星空:黎明"},{"n":"口袋妖怪","v":"口袋妖怪"},{"n":"QQ炫舞手游","v":"QQ炫舞手游"},{"n":"一拳超人:最强之男","v":"一拳超人:最强之男"},{"n":"荣耀新三国","v":"荣耀新三国"},{"n":"少年三国志2","v":"少年三国志2"},{"n":"我的起源","v":"我的起源"},{"n":"决战平安京","v":"决战平安京"},{"n":"剑灵2","v":"剑灵2"},{"n":"开心消消乐","v":"开心消消乐"},{"n":"小小蚁国","v":"小小蚁国"},{"n":"最强NBA","v":"最强NBA"},{"n":"剑侠情缘手游","v":"剑侠情缘手游"},{"n":"长安幻想","v":"长安幻想"},{"n":"我叫MT4","v":"我叫MT4"},{"n":"全明星街球派对","v":"全明星街球派对"},{"n":"大话西游手游","v":"大话西游手游"},{"n":"荣耀大天使","v":"荣耀大天使"},{"n":"镇魂街:天生为王","v":"镇魂街:天生为王"},{"n":"摩尔庄园","v":"摩尔庄园"},{"n":"游戏王:决斗链接","v":"游戏王:决斗链接"},{"n":"剑侠世界2手游","v":"剑侠世界2手游"},{"n":"青云诀2","v":"青云诀2"},{"n":"战地无疆","v":"战地无疆"},{"n":"一念逍遥","v":"一念逍遥"},{"n":"永劫无间手游","v":"永劫无间手游"},{"n":"尘白禁区","v":"尘白禁区"},{"n":"元梦之星","v":"元梦之星"},{"n":"不良人3","v":"不良人3"},{"n":"剑灵:革命","v":"剑灵:革命"},{"n":"魔力宝贝:旅人","v":"魔力宝贝:旅人"},{"n":"米加小镇","v":"米加小镇"},{"n":"龙武手游","v":"龙武手游"},{"n":"斗罗大陆2:绝世唐门","v":"斗罗大陆2:绝世唐门"},{"n":"西行纪燃魂","v":"西行纪燃魂"},{"n":"坦克世界闪击战","v":"坦克世界闪击战"},{"n":"军棋","v":"军棋"},{"n":"饥荒:新家","v":"饥荒:新家"},{"n":"拳皇命运","v":"拳皇命运"},{"n":"实况足球","v":"实况足球"},{"n":"战舰世界闪击战","v":"战舰世界闪击战"},{"n":"时空召唤","v":"时空召唤"},{"n":"王牌战争:文明重启","v":"王牌战争:文明重启"},{"n":"雀魂麻将","v":"雀魂麻将"},{"n":"欢乐升级","v":"欢乐升级"},{"n":"绿色征途","v":"绿色征途"},{"n":"弹弹堂手游","v":"弹弹堂手游"},{"n":"太极熊猫3:猎龙","v":"太极熊猫3:猎龙"},{"n":"哈利波特:魔法觉醒","v":"哈利波特:魔法觉醒"},{"n":"天地劫:幽城再临","v":"天地劫:幽城再临"},{"n":"热血街篮","v":"热血街篮"},{"n":"神雕侠侣手游","v":"神雕侠侣手游"},{"n":"山海镜花","v":"山海镜花"},{"n":"三国志战棋版","v":"三国志战棋版"},{"n":"神雕侠侣2","v":"神雕侠侣2"},{"n":"仙魔决","v":"仙魔决"},{"n":"王者荣耀星之破晓","v":"王者荣耀星之破晓"},{"n":"我在江湖之神魔道","v":"我在江湖之神魔道"},{"n":"梦幻模拟战","v":"梦幻模拟战"},{"n":"单机手游","v":"单机手游"},{"n":"斗罗大陆-斗神再临","v":"斗罗大陆-斗神再临"},{"n":"未来之役","v":"未来之役"},{"n":"风云岛行动","v":"风云岛行动"},{"n":"新游推荐","v":"新游推荐"},{"n":"火影忍者OL","v":"火影忍者OL"},{"n":"九灵神域","v":"九灵神域"},{"n":"武动乾坤","v":"武动乾坤"},{"n":"秦时明月2","v":"秦时明月2"},{"n":"文明与征服","v":"文明与征服"},{"n":"战双:帕弥什","v":"战双:帕弥什"},{"n":"大航海时代:海上霸主","v":"大航海时代:海上霸主"},{"n":"剑网1:归来","v":"剑网1:归来"},{"n":"绝区零","v":"绝区零"},{"n":"黑色沙漠手游","v":"黑色沙漠手游"},{"n":"虎牙吃鸡","v":"虎牙吃鸡"},{"n":"一剑斩仙","v":"一剑斩仙"},{"n":"传奇天下","v":"传奇天下"},{"n":"斗斗堂","v":"斗斗堂"},{"n":"斗罗大陆","v":"斗罗大陆"},{"n":"天谕手游","v":"天谕手游"},{"n":"坎公骑冠剑","v":"坎公骑冠剑"},{"n":"最终幻想觉醒","v":"最终幻想觉醒"},{"n":"神将三国","v":"神将三国"},{"n":"灌篮高手正版授权手游","v":"灌篮高手正版授权手游"},{"n":"剑与家园","v":"剑与家园"},{"n":"极无双2","v":"极无双2"},{"n":"光明大陆","v":"光明大陆"},{"n":"荒野行动","v":"荒野行动"},{"n":"战斗法则","v":"战斗法则"},{"n":"疯狂原始人","v":"疯狂原始人"},{"n":"逆战手游","v":"逆战手游"},{"n":"石器时代:觉醒","v":"石器时代:觉醒"}]}],
- "bilibili":[{"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":"聊天室"},{"n":"视频唱见","v":"视频唱见"},{"n":"萌宅领域","v":"萌宅领域"},{"n":"视频聊天","v":"视频聊天"},{"n":"舞见","v":"舞见"},{"n":"唱见电台","v":"唱见电台"},{"n":"聊天电台","v":"聊天电台"},{"n":"甜宠电台","v":"甜宠电台"},{"n":"TopStar","v":"TopStar"},{"n":"虚拟Singer","v":"虚拟Singer"},{"n":"虚拟Gamer","v":"虚拟Gamer"},{"n":"虚拟声优","v":"虚拟声优"},{"n":"虚拟日常","v":"虚拟日常"},{"n":"虚拟APEX","v":"虚拟APEX"},{"n":"虚拟PK","v":"虚拟PK"},{"n":"交友","v":"交友"},{"n":"点唱","v":"点唱"},{"n":"兴趣","v":"兴趣"},{"n":"社科法律心理","v":"社科法律心理"},{"n":"人文历史","v":"人文历史"},{"n":"校园学习","v":"校园学习"},{"n":"职场·技能","v":"职场·技能"},{"n":"科技","v":"科技"},{"n":"科学科普","v":"科学科普"},{"n":"游戏赛事","v":"游戏赛事"},{"n":"体育赛事","v":"体育赛事"},{"n":"赛事综合","v":"赛事综合"},{"n":"热门帮玩","v":"热门帮玩"},{"n":"手游帮玩","v":"手游帮玩"},{"n":"网游帮玩","v":"网游帮玩"},{"n":"单机帮玩","v":"单机帮玩"},{"n":"兵临城下","v":"兵临城下"},{"n":"功夫狂飙","v":"功夫狂飙"},{"n":"竞技玩法","v":"竞技玩法"},{"n":"休闲玩法","v":"休闲玩法"},{"n":"英雄联盟","v":"英雄联盟"},{"n":"无畏契约","v":"无畏契约"},{"n":"CS:GO","v":"CS:GO"},{"n":"APEX英雄","v":"APEX英雄"},{"n":"永劫无间","v":"永劫无间"},{"n":"穿越火线","v":"穿越火线"},{"n":"命运方舟","v":"命运方舟"},{"n":"DOTA2","v":"DOTA2"},{"n":"吃鸡行动","v":"吃鸡行动"},{"n":"逃离塔科夫","v":"逃离塔科夫"},{"n":"传奇","v":"传奇"},{"n":"DNF","v":"DNF"},{"n":"卡拉彼丘","v":"卡拉彼丘"},{"n":"幕后高手","v":"幕后高手"},{"n":"生死狙击2","v":"生死狙击2"},{"n":"洛奇英雄传","v":"洛奇英雄传"},{"n":"最终幻想14","v":"最终幻想14"},{"n":"重生边缘","v":"重生边缘"},{"n":"星际战甲","v":"星际战甲"},{"n":"梦三国","v":"梦三国"},{"n":"英魂之刃","v":"英魂之刃"},{"n":"剑网3","v":"剑网3"},{"n":"从军","v":"从军"},{"n":"铁甲雄兵","v":"铁甲雄兵"},{"n":"封印者","v":"封印者"},{"n":"新天龙八部","v":"新天龙八部"},{"n":"赛尔号","v":"赛尔号"},{"n":"造梦西游","v":"造梦西游"},{"n":"洛克王国","v":"洛克王国"},{"n":"问道","v":"问道"},{"n":"诛仙世界","v":"诛仙世界"},{"n":"大话西游","v":"大话西游"},{"n":"奇迹MU","v":"奇迹MU"},{"n":"永恒之塔","v":"永恒之塔"},{"n":"QQ三国","v":"QQ三国"},{"n":"人间地狱","v":"人间地狱"},{"n":"彩虹岛","v":"彩虹岛"},{"n":"洛奇","v":"洛奇"},{"n":"跑跑卡丁车","v":"跑跑卡丁车"},{"n":"星际公民","v":"星际公民"},{"n":"Squad战术小队","v":"Squad战术小队"},{"n":"反恐精英Online","v":"反恐精英Online"},{"n":"风暴奇侠","v":"风暴奇侠"},{"n":"创世战车","v":"创世战车"},{"n":"装甲战争","v":"装甲战争"},{"n":"守望先锋","v":"守望先锋"},{"n":"阿尔比恩","v":"阿尔比恩"},{"n":"猎杀对决","v":"猎杀对决"},{"n":"CFHD","v":"CFHD"},{"n":"骑士精神2","v":"骑士精神2"},{"n":"超击突破","v":"超击突破"},{"n":"武装突袭","v":"武装突袭"},{"n":"Wayfinder寻路者","v":"Wayfinder寻路者"},{"n":"300英雄","v":"300英雄"},{"n":"炉石传说","v":"炉石传说"},{"n":"剑网3缘起","v":"剑网3缘起"},{"n":"街头篮球","v":"街头篮球"},{"n":"综合射击","v":"综合射击"},{"n":"剑灵","v":"剑灵"},{"n":"艾尔之光","v":"艾尔之光"},{"n":"黑色沙漠","v":"黑色沙漠"},{"n":"天涯明月刀","v":"天涯明月刀"},{"n":"超激斗梦境","v":"超激斗梦境"},{"n":"冒险岛","v":"冒险岛"},{"n":"逆战","v":"逆战"},{"n":"魔兽争霸3","v":"魔兽争霸3"},{"n":"QQ飞车","v":"QQ飞车"},{"n":"魔兽世界","v":"魔兽世界"},{"n":"FIFAONLINE4","v":"FIFAONLINE4"},{"n":"NBA2KOL2","v":"NBA2KOL2"},{"n":"使命召唤:战区","v":"使命召唤:战区"},{"n":"VRChat","v":"VRChat"},{"n":"坦克世界","v":"坦克世界"},{"n":"战舰世界","v":"战舰世界"},{"n":"战争与抉择","v":"战争与抉择"},{"n":"战争雷霆","v":"战争雷霆"},{"n":"战意","v":"战意"},{"n":"风暴英雄","v":"风暴英雄"},{"n":"星际争霸2","v":"星际争霸2"},{"n":"刀塔自走棋","v":"刀塔自走棋"},{"n":"堡垒之夜","v":"堡垒之夜"},{"n":"枪神纪","v":"枪神纪"},{"n":"三国杀","v":"三国杀"},{"n":"龙之谷","v":"龙之谷"},{"n":"古剑奇谭OL","v":"古剑奇谭OL"},{"n":"幻想全明星","v":"幻想全明星"},{"n":"怀旧网游","v":"怀旧网游"},{"n":"新游前瞻","v":"新游前瞻"},{"n":"星战前夜:晨曦","v":"星战前夜:晨曦"},{"n":"流放之路","v":"流放之路"},{"n":"FPS沙盒","v":"FPS沙盒"},{"n":"永恒轮回","v":"永恒轮回"},{"n":"激战2","v":"激战2"},{"n":"其他网游","v":"其他网游"},{"n":"蓝色协议","v":"蓝色协议"},{"n":"王者荣耀","v":"王者荣耀"},{"n":"和平精英","v":"和平精英"},{"n":"原神","v":"原神"},{"n":"崩坏:星穹铁道","v":"崩坏:星穹铁道"},{"n":"第五人格","v":"第五人格"},{"n":"LOL手游","v":"LOL手游"},{"n":"明日方舟","v":"明日方舟"},{"n":"黎明觉醒:生机","v":"黎明觉醒:生机"},{"n":"蛋仔派对","v":"蛋仔派对"},{"n":"冒险岛手游","v":"冒险岛手游"},{"n":"元梦之星","v":"元梦之星"},{"n":"闪耀!优俊少女","v":"闪耀!优俊少女"},{"n":"斯露德","v":"斯露德"},{"n":"千年之旅","v":"千年之旅"},{"n":"白夜极光","v":"白夜极光"},{"n":"逆水寒手游","v":"逆水寒手游"},{"n":"率土之滨","v":"率土之滨"},{"n":"月圆之夜","v":"月圆之夜"},{"n":"哈利波特:魔法觉醒","v":"哈利波特:魔法觉醒"},{"n":"七人传奇","v":"七人传奇"},{"n":"幻塔","v":"幻塔"},{"n":"星之破晓","v":"星之破晓"},{"n":"金铲铲之战","v":"金铲铲之战"},{"n":"少女前线2:追放","v":"少女前线2:追放"},{"n":"深空之眼","v":"深空之眼"},{"n":"无期迷途","v":"无期迷途"},{"n":"晶核","v":"晶核"},{"n":"星球重启","v":"星球重启"},{"n":"宿命回响:弦上的叹息","v":"宿命回响:弦上的叹息"},{"n":"光遇","v":"光遇"},{"n":"桃源深处有人家","v":"桃源深处有人家"},{"n":"三国志战棋版","v":"三国志战棋版"},{"n":"战火勋章","v":"战火勋章"},{"n":"以闪亮之名","v":"以闪亮之名"},{"n":"尘白禁区","v":"尘白禁区"},{"n":"古魂","v":"古魂"},{"n":"鬼泣-巅峰之战","v":"鬼泣-巅峰之战"},{"n":"奇点时代","v":"奇点时代"},{"n":"香肠派对","v":"香肠派对"},{"n":"猫之城","v":"猫之城"},{"n":"高能英雄","v":"高能英雄"},{"n":"使命召唤手游","v":"使命召唤手游"},{"n":"崩坏3","v":"崩坏3"},{"n":"银河境界线","v":"银河境界线"},{"n":"蔚蓝档案","v":"蔚蓝档案"},{"n":"第七史诗","v":"第七史诗"},{"n":"游戏王:决斗链接","v":"游戏王:决斗链接"},{"n":"游戏王","v":"游戏王"},{"n":"JJ斗地主","v":"JJ斗地主"},{"n":"阴阳师","v":"阴阳师"},{"n":"欢乐斗地主","v":"欢乐斗地主"},{"n":"太空行动","v":"太空行动"},{"n":"空之要塞:启航","v":"空之要塞:启航"},{"n":"长安幻想","v":"长安幻想"},{"n":"火影忍者手游","v":"火影忍者手游"},{"n":"Fate/GO","v":"Fate/GO"},{"n":"综合棋牌","v":"综合棋牌"},{"n":"QQ飞车手游","v":"QQ飞车手游"},{"n":"决战!平安京","v":"决战!平安京"},{"n":"狼人杀","v":"狼人杀"},{"n":"三国杀移动版","v":"三国杀移动版"},{"n":"碧蓝航线","v":"碧蓝航线"},{"n":"影之诗","v":"影之诗"},{"n":"明日之后","v":"明日之后"},{"n":"重返未来:1999","v":"重返未来:1999"},{"n":"环行旅舍","v":"环行旅舍"},{"n":"幻世与冒险","v":"幻世与冒险"},{"n":"部落冲突:皇室战争","v":"部落冲突:皇室战争"},{"n":"奥比岛手游","v":"奥比岛手游"},{"n":"弹弹堂","v":"弹弹堂"},{"n":"雀姬","v":"雀姬"},{"n":"公主连结Re:Dive","v":"公主连结Re:Dive"},{"n":"DNF手游","v":"DNF手游"},{"n":"FIFA足球世界","v":"FIFA足球世界"},{"n":"BanGDream","v":"BanGDream"},{"n":"荒野乱斗","v":"荒野乱斗"},{"n":"CF手游","v":"CF手游"},{"n":"战双帕弥什","v":"战双帕弥什"},{"n":"天涯明月刀手游","v":"天涯明月刀手游"},{"n":"一拳超人:世界","v":"一拳超人:世界"},{"n":"解密游戏","v":"解密游戏"},{"n":"恋爱养成游戏","v":"恋爱养成游戏"},{"n":"暗黑破坏神:不朽","v":"暗黑破坏神:不朽"},{"n":"暗区突围","v":"暗区突围"},{"n":"跑跑卡丁车手游","v":"跑跑卡丁车手游"},{"n":"非人学园","v":"非人学园"},{"n":"百闻牌","v":"百闻牌"},{"n":"猫和老鼠手游","v":"猫和老鼠手游"},{"n":"坎公骑冠剑","v":"坎公骑冠剑"},{"n":"忍者必须死3","v":"忍者必须死3"},{"n":"梦幻西游手游","v":"梦幻西游手游"},{"n":"航海王热血航线","v":"航海王热血航线"},{"n":"少女前线","v":"少女前线"},{"n":"300大作战","v":"300大作战"},{"n":"少女前线:云图计划","v":"少女前线:云图计划"},{"n":"漫威超级战争","v":"漫威超级战争"},{"n":"摩尔庄园手游","v":"摩尔庄园手游"},{"n":"宝可梦大集结","v":"宝可梦大集结"},{"n":"小动物之星","v":"小动物之星"},{"n":"天地劫:幽城再临","v":"天地劫:幽城再临"},{"n":"漫威对决","v":"漫威对决"},{"n":"东方归言录","v":"东方归言录"},{"n":"梦幻模拟战","v":"梦幻模拟战"},{"n":"时空猎人3","v":"时空猎人3"},{"n":"重返帝国","v":"重返帝国"},{"n":"休闲小游戏","v":"休闲小游戏"},{"n":"其他手游","v":"其他手游"},{"n":"新游评测","v":"新游评测"},{"n":"山海镜花","v":"山海镜花"},{"n":"小冰冰传奇","v":"小冰冰传奇"},{"n":"主机游戏","v":"主机游戏"},{"n":"我的世界","v":"我的世界"},{"n":"独立游戏","v":"独立游戏"},{"n":"怀旧游戏","v":"怀旧游戏"},{"n":"猛兽派对","v":"猛兽派对"},{"n":"赛博朋克2077","v":"赛博朋克2077"},{"n":"星空","v":"星空"},{"n":"塞尔达传说","v":"塞尔达传说"},{"n":"苍翼:混沌效应","v":"苍翼:混沌效应"},{"n":"命运2","v":"命运2"},{"n":"收获日3","v":"收获日3"},{"n":"FC24","v":"FC24"},{"n":"机战佣兵VI境界天火","v":"机战佣兵VI境界天火"},{"n":"暗黑破坏神Ⅳ","v":"暗黑破坏神Ⅳ"},{"n":"匹诺曹的谎言","v":"匹诺曹的谎言"},{"n":"博德之门3","v":"博德之门3"},{"n":"绝世好武功","v":"绝世好武功"},{"n":"恐怖游戏","v":"恐怖游戏"},{"n":"DarkandDarker","v":"DarkandDarker"},{"n":"Warlander","v":"Warlander"},{"n":"FORZA极限竞速","v":"FORZA极限竞速"},{"n":"边境","v":"边境"},{"n":"生化危机","v":"生化危机"},{"n":"最终幻想","v":"最终幻想"},{"n":"暗黑破坏神","v":"暗黑破坏神"},{"n":"森林之子","v":"森林之子"},{"n":"卧龙:苍天陨落","v":"卧龙:苍天陨落"},{"n":"红色警戒2","v":"红色警戒2"},{"n":"策略游戏","v":"策略游戏"},{"n":"禁闭求生","v":"禁闭求生"},{"n":"战神","v":"战神"},{"n":"斯普拉遁3","v":"斯普拉遁3"},{"n":"使命召唤19","v":"使命召唤19"},{"n":"艾尔登法环","v":"艾尔登法环"},{"n":"聚会游戏","v":"聚会游戏"},{"n":"DreadHunger","v":"DreadHunger"},{"n":"战地风云","v":"战地风云"},{"n":"糖豆人","v":"糖豆人"},{"n":"消逝的光芒2","v":"消逝的光芒2"},{"n":"只狼","v":"只狼"},{"n":"怪物猎人","v":"怪物猎人"},{"n":"宝可梦集换式卡牌游戏","v":"宝可梦集换式卡牌游戏"},{"n":"饥荒","v":"饥荒"},{"n":"精灵宝可梦","v":"精灵宝可梦"},{"n":"FIFA23","v":"FIFA23"},{"n":"全面战争:战锤3","v":"全面战争:战锤3"},{"n":"NBA2K","v":"NBA2K"},{"n":"帝国时代4","v":"帝国时代4"},{"n":"植物大战僵尸","v":"植物大战僵尸"},{"n":"格斗游戏","v":"格斗游戏"},{"n":"荒野大镖客2","v":"荒野大镖客2"},{"n":"重生细胞","v":"重生细胞"},{"n":"刺客信条","v":"刺客信条"},{"n":"恐鬼症","v":"恐鬼症"},{"n":"以撒","v":"以撒"},{"n":"双人成行","v":"双人成行"},{"n":"方舟","v":"方舟"},{"n":"仁王2","v":"仁王2"},{"n":"鬼泣5","v":"鬼泣5"},{"n":"枪火重生","v":"枪火重生"},{"n":"盗贼之海","v":"盗贼之海"},{"n":"胡闹厨房","v":"胡闹厨房"},{"n":"体育游戏","v":"体育游戏"},{"n":"全境封锁2","v":"全境封锁2"},{"n":"骑马与砍杀","v":"骑马与砍杀"},{"n":"人类一败涂地","v":"人类一败涂地"},{"n":"无主之地3","v":"无主之地3"},{"n":"辐射76","v":"辐射76"},{"n":"全面战争","v":"全面战争"},{"n":"文字游戏","v":"文字游戏"},{"n":"恋爱模拟游戏","v":"恋爱模拟游戏"},{"n":"泰拉瑞亚","v":"泰拉瑞亚"},{"n":"游戏速通","v":"游戏速通"},{"n":"Roblox","v":"Roblox"},{"n":"雀魂麻将","v":"雀魂麻将"},{"n":"德州电锯","v":"德州电锯"},{"n":"其他单机","v":"其他单机"}]}],
- "cc":[{"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":"守望先锋"},{"n":"暴雪经典","v":"暴雪经典"},{"n":"主机单机","v":"主机单机"},{"n":"影之诗","v":"影之诗"},{"n":"梦幻西游手游","v":"梦幻西游手游"},{"n":"倩女幽魂手游","v":"倩女幽魂手游"},{"n":"蛋仔派对","v":"蛋仔派对"},{"n":"明日之后","v":"明日之后"},{"n":"阴阳师","v":"阴阳师"},{"n":"大话西游手游","v":"大话西游手游"},{"n":"第五人格","v":"第五人格"},{"n":"率土之滨","v":"率土之滨"},{"n":"荒野行动","v":"荒野行动"},{"n":"大话西游:归来","v":"大话西游:归来"},{"n":"神都夜行录","v":"神都夜行录"},{"n":"梦幻西游三维版","v":"梦幻西游三维版"},{"n":"决战!平安京","v":"决战!平安京"},{"n":"天谕手游","v":"天谕手游"},{"n":"大唐无双手游","v":"大唐无双手游"},{"n":"光·遇","v":"光·遇"},{"n":"哈利波特:魔法觉醒","v":"哈利波特:魔法觉醒"},{"n":"暗黑破坏神:不朽","v":"暗黑破坏神:不朽"},{"n":"综合手游","v":"综合手游"},{"n":"超凡先锋","v":"超凡先锋"},{"n":"梦幻西游网页版","v":"梦幻西游网页版"},{"n":"乱斗西游2","v":"乱斗西游2"},{"n":"《天下》手游","v":"《天下》手游"},{"n":"劲舞团","v":"劲舞团"},{"n":"光明大陆","v":"光明大陆"},{"n":"镇魔曲手游","v":"镇魔曲手游"},{"n":"三少爷的剑","v":"三少爷的剑"},{"n":"迷雾世界","v":"迷雾世界"},{"n":"终结战场","v":"终结战场"},{"n":"永远的7日之都","v":"永远的7日之都"},{"n":"狼人杀","v":"狼人杀"},{"n":"魂之轨迹","v":"魂之轨迹"},{"n":"三国如龙传","v":"三国如龙传"},{"n":"量子特攻","v":"量子特攻"},{"n":"非人学园","v":"非人学园"},{"n":"堡垒前线:破坏与创造","v":"堡垒前线:破坏与创造"},{"n":"战争怒吼","v":"战争怒吼"},{"n":"猎魂觉醒","v":"猎魂觉醒"},{"n":"终结战场PC版","v":"终结战场PC版"},{"n":"轩辕剑龙舞云山","v":"轩辕剑龙舞云山"},{"n":"实况:王者集结","v":"实况:王者集结"},{"n":"机动都市阿尔法","v":"机动都市阿尔法"},{"n":"权力与纷争","v":"权力与纷争"},{"n":"花与剑","v":"花与剑"},{"n":"流星群侠传","v":"流星群侠传"},{"n":"猫和老鼠","v":"猫和老鼠"},{"n":"游戏王:决斗链接","v":"游戏王:决斗链接"},{"n":"漫威超级战争","v":"漫威超级战争"},{"n":"遇见逆水寒","v":"遇见逆水寒"},{"n":"阴阳师:百闻牌","v":"阴阳师:百闻牌"},{"n":"青璃","v":"青璃"},{"n":"阴阳师:妖怪屋","v":"阴阳师:妖怪屋"},{"n":"宝可梦大探险","v":"宝可梦大探险"},{"n":"重装上阵","v":"重装上阵"},{"n":"猎手之王","v":"猎手之王"},{"n":"第九所","v":"第九所"},{"n":"风云岛行动","v":"风云岛行动"},{"n":"一起优诺","v":"一起优诺"},{"n":"隐世录","v":"隐世录"},{"n":"王牌竞速","v":"王牌竞速"},{"n":"洪荒文明","v":"洪荒文明"},{"n":"忘川风华录","v":"忘川风华录"},{"n":"密特拉之星","v":"密特拉之星"},{"n":"阴阳师: 妖怪小班","v":"阴阳师: 妖怪小班"},{"n":"无尽的拉格朗日","v":"无尽的拉格朗日"},{"n":"星战前夜:无烬星河","v":"星战前夜:无烬星河"},{"n":"漫威对决","v":"漫威对决"},{"n":"月神的迷宫","v":"月神的迷宫"},{"n":"有杀气童话2","v":"有杀气童话2"},{"n":"零号任务","v":"零号任务"},{"n":"绝对演绎","v":"绝对演绎"},{"n":"逆水寒手游","v":"逆水寒手游"},{"n":"巅峰极速","v":"巅峰极速"},{"n":"大航海之路","v":"大航海之路"},{"n":"大富翁9","v":"大富翁9"},{"n":"永恒文明","v":"永恒文明"},{"n":"新游中心","v":"新游中心"},{"n":"我的世界中国版","v":"我的世界中国版"},{"n":"梦幻西游电脑版","v":"梦幻西游电脑版"},{"n":"永劫无间","v":"永劫无间"},{"n":"大话西游2经典版","v":"大话西游2经典版"},{"n":"新倩女幽魂","v":"新倩女幽魂"},{"n":"大话西游2免费版","v":"大话西游2免费版"},{"n":"天下3","v":"天下3"},{"n":"一梦江湖","v":"一梦江湖"},{"n":"其他游戏","v":"其他游戏"},{"n":"逆水寒","v":"逆水寒"},{"n":"荒野行动PC模拟器","v":"荒野行动PC模拟器"},{"n":"大唐无双零","v":"大唐无双零"},{"n":"武魂2","v":"武魂2"},{"n":"天谕","v":"天谕"},{"n":"镇魔曲","v":"镇魔曲"},{"n":"无尽战区","v":"无尽战区"},{"n":"命运2","v":"命运2"},{"n":"魔兽世界","v":"魔兽世界"},{"n":"暗黑破坏神","v":"暗黑破坏神"},{"n":"泰亚史诗","v":"泰亚史诗"},{"n":"战意","v":"战意"},{"n":"易次元","v":"易次元"},{"n":"魔兽世界怀旧服","v":"魔兽世界怀旧服"},{"n":"无主之地3","v":"无主之地3"},{"n":"超激斗梦境","v":"超激斗梦境"},{"n":"EVE Online","v":"EVE Online"},{"n":"全面战争:竞技场","v":"全面战争:竞技场"},{"n":"暴雪游戏","v":"暴雪游戏"},{"n":"FPS综合游戏","v":"FPS综合游戏"},{"n":"魔兽争霸","v":"魔兽争霸"},{"n":"绿茵信仰","v":"绿茵信仰"},{"n":"大话女儿国","v":"大话女儿国"},{"n":"燕云十六声","v":"燕云十六声"},{"n":"射雕","v":"射雕"}]}],
- "douyin":[{"key":"area","name":"分区","value":[{"n":"全部","v":"全部"},{"n":"魔兽世界","v":"魔兽世界"},{"n":"永劫无间","v":"永劫无间"},{"n":"横版格斗","v":"横版格斗"},{"n":"拳皇系列","v":"拳皇系列"},{"n":"我的世界","v":"我的世界"},{"n":"魔兽争霸3","v":"魔兽争霸3"},{"n":"迷你世界","v":"迷你世界"},{"n":"糖豆人","v":"糖豆人"},{"n":"其他主机游戏","v":"其他主机游戏"},{"n":"星际争霸","v":"星际争霸"},{"n":"精灵宝可梦 剑/盾","v":"精灵宝可梦 剑/盾"},{"n":"斗地主","v":"斗地主"},{"n":"麻将","v":"麻将"},{"n":"象棋","v":"象棋"},{"n":"其他棋牌游戏","v":"其他棋牌游戏"},{"n":"军棋","v":"军棋"},{"n":"网易狼人杀","v":"网易狼人杀"},{"n":"三国杀手游","v":"三国杀手游"},{"n":"围棋","v":"围棋"},{"n":"皇室战争","v":"皇室战争"},{"n":"原神","v":"原神"},{"n":"问道端游","v":"问道端游"},{"n":"明日之后","v":"明日之后"},{"n":"问道手游","v":"问道手游"},{"n":"幻塔","v":"幻塔"},{"n":"崩坏3","v":"崩坏3"},{"n":"天使之战","v":"天使之战"},{"n":"蛋仔派对","v":"蛋仔派对"},{"n":"植物大战僵尸","v":"植物大战僵尸"},{"n":"识字大师","v":"识字大师"},{"n":"美食DIY","v":"美食DIY"},{"n":"球球大作战","v":"球球大作战"},{"n":"荒野乱斗","v":"荒野乱斗"},{"n":"元气骑士","v":"元气骑士"},{"n":"最强的大脑","v":"最强的大脑"},{"n":"5v5推塔手游","v":"5v5推塔手游"},{"n":"DOTA2","v":"DOTA2"},{"n":"格斗手游","v":"格斗手游"},{"n":"赛车游戏","v":"赛车游戏"},{"n":"跑跑卡丁车手游","v":"跑跑卡丁车手游"},{"n":"DOTA","v":"DOTA"},{"n":"第五人格","v":"第五人格"},{"n":"梦三国","v":"梦三国"},{"n":"坦克世界","v":"坦克世界"},{"n":"怀旧FC","v":"怀旧FC"},{"n":"帝国时代","v":"帝国时代"},{"n":"战舰世界","v":"战舰世界"},{"n":"怀旧掌机","v":"怀旧掌机"},{"n":"西游释厄传","v":"西游释厄传"},{"n":"合金弹头","v":"合金弹头"},{"n":"恐龙快打","v":"恐龙快打"},{"n":"无畏契约","v":"无畏契约"},{"n":"射击游戏","v":"射击游戏"},{"n":"CS:GO","v":"CS:GO"},{"n":"吃鸡手游","v":"吃鸡手游"},{"n":"香肠派对","v":"香肠派对"},{"n":"暗区突围","v":"暗区突围"},{"n":"Apex英雄","v":"Apex英雄"},{"n":"高能英雄","v":"高能英雄"},{"n":"阴阳师","v":"阴阳师"},{"n":"明日方舟","v":"明日方舟"},{"n":"崩坏:星穹铁道","v":"崩坏:星穹铁道"},{"n":"炉石传说","v":"炉石传说"},{"n":"少年三国志2","v":"少年三国志2"},{"n":"山海经异兽录","v":"山海经异兽录"},{"n":"铁杆三国","v":"铁杆三国"},{"n":"新不良人","v":"新不良人"},{"n":"JJ象棋","v":"JJ象棋"},{"n":"经典天龙八部","v":"经典天龙八部"},{"n":"光遇","v":"光遇"},{"n":"开心消消乐","v":"开心消消乐"},{"n":"魂斗罗","v":"魂斗罗"},{"n":"红狼(口袋狼人杀)","v":"红狼(口袋狼人杀)"},{"n":"怀旧天龙八部","v":"怀旧天龙八部"},{"n":"汤姆猫跑酷","v":"汤姆猫跑酷"},{"n":"决战平安京","v":"决战平安京"},{"n":"CS 1.6","v":"CS 1.6"},{"n":"找不同","v":"找不同"},{"n":"一战称王","v":"一战称王"},{"n":"超级台球大师","v":"超级台球大师"},{"n":"运动","v":"运动"},{"n":"音乐","v":"音乐"},{"n":"语音互动","v":"语音互动"},{"n":"情感","v":"情感"},{"n":"舞蹈","v":"舞蹈"},{"n":"户外","v":"户外"},{"n":"时尚","v":"时尚"},{"n":"美食","v":"美食"},{"n":"旅行","v":"旅行"},{"n":"教育","v":"教育"},{"n":"人文艺术","v":"人文艺术"}]}]
- },
- filter_def:{
- douyu:{area:'原创IP'},
- huya:{area:'一起看'},
- bilibili:{area:'电子榨菜'},
- cc:{area:'星秀'},
- douyin:{area:'全部'}
- },
- // detailUrl: '/index/liveRoom?platform=fyclass&roomId=fyid',
- // detailUrl: '/api/live/getRoomInfo?uid=&platform=fyclass&roomId=fyid',
- detailUrl: 'fyid',
- searchUrl: '/api/live/search?platform=all&keyWords=**&isLive=0',
- // searchable: 2,
- searchable: 0,
- quickSearch: 0,
- headers: {
- 'User-Agent': 'MOBILE_UA'
- },
- timeout: 5000,
- play_parse: true,
- lazy:`js:
- let purl = input.split("|")[0];
- let pfrom = input.split("|")[1];
- let cid = input.split("|")[2];
- print("purl:" + purl);
- print("pfrom:" + pfrom);
- print("cid:" + cid);
- let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + cid;
- if (/bilibili/.test(pfrom)){
- let result = {};
- result['parse'] = 0;
- result['playUrl'] = '';
- result['url'] = unescape(purl);
- result['header'] = {
- Referer: 'https://live.bilibili.com',
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
- };
- result['danmaku'] = dan;
- if (/h5/.test(purl)) {
- result['contentType'] = '';
- input = result
- } else {
- result['contentType'] = 'video/x-flv';
- input = result
- }
- } else {
- input = purl
- }
- `,
- limit: 6,
- 推荐: `js:
- var d = [];
- var html = JSON.parse(request(input)).data;
- html.forEach(it => {
- d.push({
- title: it.roomName,
- desc: it.ownerName,
- pic_url: it.roomPic,
- url: it.platForm + '|' + it.roomId
- });
- })
- setResult(d);
- `,
- 一级: `js:
- var d = [];
- if (MY_CATE === 'douyin') {
- let area = MY_FL.area || '全部';
- if (area === '全部') {
- input = HOST + '/api/live/getRecommendByPlatform?platform=douyin&page='+MY_PAGE+'&size=20';
- }
- }
- var html = JSON.parse(request(input)).data;
- html.forEach(it => {
- d.push({
- title: it.roomName,
- desc: it.ownerName,
- pic_url: it.roomPic,
- url: it.platForm + '|' + it.roomId
- });
- })
- setResult(d);
- `,
- 二级: `js:
- var d = [];
- if (typeof play_url === "undefined") {
- var play_url = ""
- }
- let platform = input.split("|")[0].replace(HOST+'/','');
- let roomId = input.split("|")[1];
- let link = HOST + '/api/live/getRoomInfo?uid=&platform=' + platform + '&roomId=' + roomId;
- var jo = JSON.parse(request(link)).data;
- VOD = {
- vod_id: jo.roomId,
- vod_name: jo.roomName,
- vod_pic: jo.roomPic,
- type_name: jo.platForm.replace("huya", "虎牙").replace("douyu", "斗鱼").replace("cc", "网易CC").replace("bilibili", "哔哩哔哩").replace("douyin", "抖音") + "." + jo.categoryName,
- vod_content: "🏷分区:" + jo.platForm.replace("huya", "虎牙").replace("douyu", "斗鱼").replace("cc", "网易CC").replace("bilibili", "哔哩哔哩").replace("douyin", "抖音") + "·" + jo.categoryName + " 🏷UP主:" + jo.ownerName + " 🏷人气:" + jo.online + (jo.isLive === 1 ? " 🏷状态:正在直播" : "状态:未开播")
- };
- var playurl = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data;
- var name = {
- "OD": "原画",
- "FD": "流畅",
- "LD": "标清",
- "SD": "高清",
- "HD": "超清",
- "2K": "2K",
- "4K": "4K",
- "FHD": "全高清",
- "XLD": "极速",
- "SQ": "普通音质",
- "HQ": "高音质"
- };
- Object.keys(playurl).forEach(function(key) {
- if (!/ayyuid|to/.test(key)) {
- d.push({
- title: name[key],
- url: playurl[key]
- })
- }
- });
- VOD.vod_play_from = "选择画质";
- VOD.vod_play_url = d.map(function(it) {
- // return it.title + "$" + it.url
- return it.title + "$" + play_url + urlencode(it.url + "|" + jo.platForm + "|" + jo.roomId)
- }).join("#");
- setResult(d)
- `,
- 搜索: `js:
- var d = [];
- var html = JSON.parse(request(input)).data;
- html.forEach(it => {
- d.push({
- title: it.roomName,
- desc: it.ownerName,
- pic_url: it.roomPic,
- url: it.platForm + '|' + it.roomId
- });
- })
- setResult(d);
- `,
-}
\ No newline at end of file
diff --git a/tvboxqq/菜妮丝/js/KOK影院.js b/tvboxqq/菜妮丝/js/KOK影院.js
index 5a161ec..8512616 100644
--- a/tvboxqq/菜妮丝/js/KOK影院.js
+++ b/tvboxqq/菜妮丝/js/KOK影院.js
@@ -20,7 +20,7 @@ var rule = {
kokjl:{by:'/by/time'}
},
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent':'MOBILE_UA'
},
diff --git a/tvboxqq/菜妮丝/js/NT动漫.js b/tvboxqq/菜妮丝/js/NT动漫.js
index ef95504..5ffb5bf 100644
--- a/tvboxqq/菜妮丝/js/NT动漫.js
+++ b/tvboxqq/菜妮丝/js/NT动漫.js
@@ -14,7 +14,7 @@ var rule={
},
searchUrl:'/search/**----------fypage---.html',
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent':'MOBILE_UA',
},
diff --git a/tvboxqq/菜妮丝/js/TVB云播.js b/tvboxqq/菜妮丝/js/TVB云播.js
index f613571..df105b1 100644
--- a/tvboxqq/菜妮丝/js/TVB云播.js
+++ b/tvboxqq/菜妮丝/js/TVB云播.js
@@ -420,7 +420,7 @@ filter: {
},
searchUrl:'/vod/search.html?wd=**&submit=',
searchable:2,//是否启用全局搜索,
-quickSearch:0,//是否启用快速搜索,
+quickSearch:1,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
play_parse:true,
lazy:'',
diff --git a/tvboxqq/菜妮丝/js/ddys.js b/tvboxqq/菜妮丝/js/ddys.js
index 4ad9dc0..80f63fe 100644
--- a/tvboxqq/菜妮丝/js/ddys.js
+++ b/tvboxqq/菜妮丝/js/ddys.js
@@ -107,7 +107,7 @@ var rule={
url:'/fyclass/page/fypage/',
searchUrl:'/?s=**&post_type=post',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
filterable:0,
headers:{
'User-Agent':'MOBILE_UA',
diff --git a/tvboxqq/菜妮丝/js/l0l.js b/tvboxqq/菜妮丝/js/l0l.js
index 9dcda0b..1469522 100644
--- a/tvboxqq/菜妮丝/js/l0l.js
+++ b/tvboxqq/菜妮丝/js/l0l.js
@@ -22,7 +22,7 @@ var rule = {
class_parse:'.ecnav-nav .main-nav;a&&Text;a&&href;.*/(.*?).html',
searchUrl:'/vodsearch/**----------fypage---.html',
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
headers: {
'User-Agent': 'PC_UA',
},
diff --git a/tvboxqq/菜妮丝/js/两个BT.js b/tvboxqq/菜妮丝/js/两个BT.js
index bd02c75..eb2345c 100644
--- a/tvboxqq/菜妮丝/js/两个BT.js
+++ b/tvboxqq/菜妮丝/js/两个BT.js
@@ -12,7 +12,7 @@ var rule = {
},
searchUrl:'/xssearch?q=**&f=_all&p=fypage',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent':'UC_UA'
},
diff --git a/tvboxqq/菜妮丝/js/乐鱼影视.js b/tvboxqq/菜妮丝/js/乐鱼影视.js
index ae0a126..74e7ff0 100644
--- a/tvboxqq/菜妮丝/js/乐鱼影视.js
+++ b/tvboxqq/菜妮丝/js/乐鱼影视.js
@@ -16,7 +16,7 @@ var rule = {
},
searchUrl:'/lyso/page/fypage/wd/**.html',
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
headers:{
'User-Agent':'MOBILE_UA'
},
diff --git a/tvboxqq/菜妮丝/js/免费看.js b/tvboxqq/菜妮丝/js/免费看.js
index 9a80ae2..7e08c90 100644
--- a/tvboxqq/菜妮丝/js/免费看.js
+++ b/tvboxqq/菜妮丝/js/免费看.js
@@ -16,7 +16,7 @@ var rule = {
},
searchUrl:'/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
+ quickSearch: 1,//是否启用快速搜索,
headers: {
'User-Agent': 'MOBILE_UA',
},
diff --git a/tvboxqq/菜妮丝/js/咕噜[V2].js b/tvboxqq/菜妮丝/js/咕噜[V2].js
index b664e67..de469d3 100644
--- a/tvboxqq/菜妮丝/js/咕噜[V2].js
+++ b/tvboxqq/菜妮丝/js/咕噜[V2].js
@@ -12,7 +12,7 @@ var rule = {
detailUrl:'/detail?vod_id=fyid',
searchUrl: '/search?text=**&pg=fypage',
searchable: 2,
- quickSearch: 0,
+ quickSearch: 1,
filterable:1,//是否启用分类筛选,
headers:{'User-Agent':'okhttp/4.1.0'},
timeout:5000,
diff --git a/tvboxqq/菜妮丝/js/啦啦DJ.js b/tvboxqq/菜妮丝/js/啦啦DJ.js
index 363d506..777f527 100644
--- a/tvboxqq/菜妮丝/js/啦啦DJ.js
+++ b/tvboxqq/菜妮丝/js/啦啦DJ.js
@@ -5,7 +5,7 @@ var rule = {
url: '/fyclass-0-0-fypage',
searchUrl: '/search?search=**&page=fypage',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent': 'PC_UA'
},
diff --git a/tvboxqq/菜妮丝/js/快看.js b/tvboxqq/菜妮丝/js/快看.js
index 35e7762..5375109 100644
--- a/tvboxqq/菜妮丝/js/快看.js
+++ b/tvboxqq/菜妮丝/js/快看.js
@@ -14,7 +14,7 @@ var rule={
},
searchUrl:'/vodsearch/-------------.html?wd=**&submit=',
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent':'MOBILE_UA',
// "Cookie": "searchneed=ok"
diff --git a/tvboxqq/菜妮丝/js/斗鱼直播.js b/tvboxqq/菜妮丝/js/斗鱼直播.js
index bbadf6b..a1e9db6 100644
--- a/tvboxqq/菜妮丝/js/斗鱼直播.js
+++ b/tvboxqq/菜妮丝/js/斗鱼直播.js
@@ -32,7 +32,7 @@ var rule = {
detailUrl: 'http://live.yj1211.work/api/live/getRoomInfo?uid=&platform=douyu&roomId=fyid',// JustLive
searchUrl:'/api/search/liveRoom?#did=10000000000000000000000000001501&limit=20&offset=0&sk=**;post',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent':'MOBILE_UA'
},
diff --git a/tvboxqq/菜妮丝/js/新视觉影视.js b/tvboxqq/菜妮丝/js/新视觉影视.js
index c60dc9a..b5e21c9 100644
--- a/tvboxqq/菜妮丝/js/新视觉影视.js
+++ b/tvboxqq/菜妮丝/js/新视觉影视.js
@@ -17,7 +17,7 @@ var rule={
},
searchUrl:'/vodsearch/**----------fypage---.html',
searchable:2,//是否启用全局搜索,
- quickSearch:0,//是否启用快速搜索,
+ quickSearch:1,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
// class_parse:'.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
class_parse:'.nav-menu-items&&li;a&&Text;a&&href;.*/(\\d).html',
diff --git a/tvboxqq/菜妮丝/js/磁力熊[磁].js b/tvboxqq/菜妮丝/js/磁力熊[磁].js
index ba22280..987d913 100644
--- a/tvboxqq/菜妮丝/js/磁力熊[磁].js
+++ b/tvboxqq/菜妮丝/js/磁力熊[磁].js
@@ -11,7 +11,7 @@ var rule = {
},
searchUrl: '/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
filterable:1,
headers:{
'User-Agent': 'MOBILE_UA'
diff --git a/tvboxqq/菜妮丝/js/虎牙直播.js b/tvboxqq/菜妮丝/js/虎牙直播.js
index 84fdf48..332b595 100644
--- a/tvboxqq/菜妮丝/js/虎牙直播.js
+++ b/tvboxqq/菜妮丝/js/虎牙直播.js
@@ -22,7 +22,7 @@ var rule = {
},
searchUrl:'https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=**&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
headers:{
'User-Agent':'MOBILE_UA'
},
diff --git a/tvboxqq/菜妮丝/js/酷云77.js b/tvboxqq/菜妮丝/js/酷云77.js
index 7e6f6bb..34d22fc 100644
--- a/tvboxqq/菜妮丝/js/酷云77.js
+++ b/tvboxqq/菜妮丝/js/酷云77.js
@@ -29,7 +29,7 @@ var rule = {
homeUrl:'/api.php/provide/homeBlock?type_id=0',
searchUrl:'/api.php/provide/searchVideo?searchName=**',
searchable:2,
- quickSearch:0,
+ quickSearch:1,
filterable:1,
multi:1,
// 分类链接fypage参数支持1个()表达式
diff --git a/tvboxqq/菜妮丝/json/market.json b/tvboxqq/菜妮丝/json/market.json
index 0b4501d..e63a28e 100644
--- a/tvboxqq/菜妮丝/json/market.json
+++ b/tvboxqq/菜妮丝/json/market.json
@@ -1,239 +1,264 @@
[
- {
- "name": "推荐",
- "list": [
- {
- "name": "菜妮丝",
- "url": "https://tvbox.cainisi.cf/头像.jpg",
- "icon": "https://tvbox.cainisi.cf/头像.jpg"
- }
- ]
- },
- {
- "name": "打赏",
- "list": [
- {
- "name": "QQ",
- "url": "https://tvbox.cainisi.cf/QQ收款码.png",
- "icon": "https://tvbox.cainisi.cf/QQ收款码.png"
- },
- {
- "name": "微信",
- "url": "https://tvbox.cainisi.cf/微信收款码.png",
- "icon": "https://tvbox.cainisi.cf/微信收款码.png"
- },
- {
- "name": "支付宝",
- "url": "https://tvbox.cainisi.cf/支付宝收款码.png",
- "icon": "https://tvbox.cainisi.cf/支付宝收款码.png"
- }
- ]
- },
- {
- "name": "正式版",
- "list": [
- {
- "name": "电视-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v7a"
- },
- {
- "name": "电视-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-java-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v8a"
- },
- {
- "name": "电视-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v7a"
- },
- {
- "name": "电视-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/leanback-python-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v8a"
- },
- {
- "name": "Android-4.x",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/kitkat/leanback.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "手机-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v7a"
- },
- {
- "name": "手机-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-java-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v8a"
- },
- {
- "name": "手机-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v7a"
- },
- {
- "name": "手机-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/release/mobile-python-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v8a"
- }
- ]
- },
- {
- "name": "内测版",
- "list": [
- {
- "name": "电视-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-java-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v7a"
- },
- {
- "name": "电视-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-java-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v8a"
- },
- {
- "name": "电视-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-python-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v7a"
- },
- {
- "name": "电视-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/leanback-python-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v8a"
- },
- {
- "name": "手机-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-java-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v7a"
- },
- {
- "name": "手机-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-java-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v8a"
- },
- {
- "name": "手机-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-python-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v7a"
- },
- {
- "name": "手机-py",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/dev/mobile-python-arm64_v8a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
- "version": "v8a"
- }
- ]
- },
- {
- "name": "实验版",
- "list": [
- {
- "name": "电视-java",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/apk/test/leanback-java-armeabi_v7a.apk",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
- "version": "v7a"
- }
- ]
- },
- {
- "name": "v7a",
- "list": [
- {
- "name": "荐片",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libjpa_armeabi_v7a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "磁力-1",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_stat_armeabi_v7a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "磁力-2",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_thunder_sdk_armeabi_v7a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "晴天",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libmitv.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P2P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp2p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P3P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp3p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P4P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp4p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P5P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp5p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P6P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp6p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P7P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp7p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P8P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp8p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "P9P",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libp9p.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- }
- ]
- },
- {
- "name": "v8a",
- "list": [
- {
- "name": "荐片",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libjpa_arm64_v8a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "磁力-1",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_stat_arm64_v8a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- },
- {
- "name": "磁力-2",
- "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/Release/main/so/libxl_thunder_sdk_arm64_v8a.so",
- "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
- }
- ]
- }
+ {
+ "name": "推荐",
+ "list": [
+ {
+ "name": "菜妮丝",
+ "url": "https://tvbox.cainisi.cf/头像.jpg",
+ "icon": "https://tvbox.cainisi.cf/头像.jpg"
+ }
+ ]
+ },
+ {
+ "name": "打赏",
+ "list": [
+ {
+ "name": "QQ",
+ "url": "https://tvbox.cainisi.cf/QQ收款码.png",
+ "icon": "https://tvbox.cainisi.cf/QQ收款码.png"
+ },
+ {
+ "name": "微信",
+ "url": "https://tvbox.cainisi.cf/微信收款码.png",
+ "icon": "https://tvbox.cainisi.cf/微信收款码.png"
+ },
+ {
+ "name": "支付宝",
+ "url": "https://tvbox.cainisi.cf/支付宝收款码.png",
+ "icon": "https://tvbox.cainisi.cf/支付宝收款码.png"
+ }
+ ]
+ },
+ {
+ "name": "正式版",
+ "list": [
+ {
+ "name": "电视版-java",
+ "url": "https://my.t4tv.hz.cz/apk/release/leanback-java-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ },
+ {
+ "name": "电视版-java",
+ "url": "https://my.t4tv.hz.cz/apk/release/leanback-java-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v8a"
+ },
+ {
+ "name": "电视版-py",
+ "url": "https://my.t4tv.hz.cz/apk/release/leanback-python-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ },
+ {
+ "name": "电视版-py",
+ "url": "https://my.t4tv.hz.cz/apk/release/leanback-python-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v8a"
+ },
+ {
+ "name": "手机版-java",
+ "url": "https://my.t4tv.hz.cz/apk/release/mobile-java-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v7a"
+ },
+ {
+ "name": "手机版-java",
+ "url": "https://my.t4tv.hz.cz/apk/release/mobile-java-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v8a"
+ },
+ {
+ "name": "手机版-py",
+ "url": "https://my.t4tv.hz.cz/apk/release/mobile-python-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v7a"
+ },
+ {
+ "name": "手机版-py",
+ "url": "https://my.t4tv.hz.cz/apk/release/mobile-python-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v8a"
+ }
+ ]
+ },
+ {
+ "name": "内测版",
+ "list": [
+ {
+ "name": "电视版-java",
+ "url": "https://my.t4tv.hz.cz/apk/dev/leanback-java-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ },
+ {
+ "name": "电视版-java",
+ "url": "https://my.t4tv.hz.cz/apk/dev/leanback-java-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v8a"
+ },
+ {
+ "name": "电视版-py",
+ "url": "https://my.t4tv.hz.cz/apk/dev/leanback-python-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ },
+ {
+ "name": "电视版-py",
+ "url": "https://my.t4tv.hz.cz/apk/dev/leanback-python-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v8a"
+ },
+ {
+ "name": "手机版-java",
+ "url": "https://my.t4tv.hz.cz/apk/dev/mobile-java-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v7a"
+ },
+ {
+ "name": "手机版-java",
+ "url": "https://my.t4tv.hz.cz/apk/dev/mobile-java-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v8a"
+ },
+ {
+ "name": "手机版-py",
+ "url": "https://my.t4tv.hz.cz/apk/dev/mobile-python-armeabi_v7a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v7a"
+ },
+ {
+ "name": "手机版-py",
+ "url": "https://my.t4tv.hz.cz/apk/dev/mobile-python-arm64_v8a.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8lVK.png",
+ "version": "v8a"
+ }
+ ]
+ },
+ {
+ "name": "4.x版",
+ "list": [
+ {
+ "name": "电视版-java",
+ "url": "https://my.t4tv.hz.cz/apk/kitkat/leanback.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ },
+ {
+ "name": "电视版-py",
+ "url": "https://my.t4tv.hz.cz/apk/kitkat/leanback-python.apk",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "v7a"
+ }
+ ]
+ },
+ {
+ "name": "v7a",
+ "list": [
+ {
+ "name": "ffmpeg",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libffmpegJNI.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "EXO"
+ },
+ {
+ "name": "av1",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libgav1JNI.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "EXO"
+ },
+ {
+ "name": "荐片",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libjpa.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "磁力-1",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libxl_stat.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "磁力-2",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libxl_thunder_sdk.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "晴天",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libmitv.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P2P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp2p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P3P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp3p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P4P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp4p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P5P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp5p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P6P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp6p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P7P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp7p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P8P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp8p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "P9P",
+ "url": "https://my.t4tv.hz.cz/so/armeabi-v7a/libp9p.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ }
+ ]
+ },
+ {
+ "name": "v8a",
+ "list": [
+ {
+ "name": "ffmpeg",
+ "url": "https://my.t4tv.hz.cz/so/arm64-v8a/libffmpegJNI.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "EXO"
+ },
+ {
+ "name": "av1",
+ "url": "https://my.t4tv.hz.cz/so/arm64-v8a/libgav1JNI.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png",
+ "version": "EXO"
+ },
+ {
+ "name": "荐片",
+ "url": "https://my.t4tv.hz.cz/so/arm64-v8a/libjpa.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "磁力-1",
+ "url": "https://my.t4tv.hz.cz/so/arm64-v8a/libxl_stat.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ },
+ {
+ "name": "磁力-2",
+ "url": "https://my.t4tv.hz.cz/so/arm64-v8a/libxl_thunder_sdk.so",
+ "icon": "https://i.imgs.ovh/2023/10/17/r8nk2.png"
+ }
+ ]
+ }
]
\ No newline at end of file
diff --git a/tvboxqq/菜妮丝/spider.jar b/tvboxqq/菜妮丝/spider.jar
index 4b9e4c2..a5b5ff6 100644
Binary files a/tvboxqq/菜妮丝/spider.jar and b/tvboxqq/菜妮丝/spider.jar differ
diff --git a/tvboxqq/道长js/api.json b/tvboxqq/道长js/api.json
index e643b8f..14c969e 100644
--- a/tvboxqq/道长js/api.json
+++ b/tvboxqq/道长js/api.json
@@ -17,7 +17,7 @@
"name": "Alist[js]",
"type": 3,
"api": "./api/alist.min.js",
- "ext": "http://qiqiv.cn/tvbox/XYQTVBox/drpy_js/js/alist.conf"
+ "ext": "./js/alist.js"
},
{
"key": "AList",
diff --git a/tvboxqq/道长js/api/alist.min.js b/tvboxqq/道长js/api/alist.min.js
index 1372925..52d3606 100644
--- a/tvboxqq/道长js/api/alist.min.js
+++ b/tvboxqq/道长js/api/alist.min.js
@@ -1 +1 @@
-import{distance}from"./mod.js";import{sortListByCN}from"./sortName.js";String.prototype.rstrip=function(chars){let regex=new RegExp(chars+"$");return this.replace(regex,"")};var showMode="single";var searchDriver="";var limit_search_show=200;var search_type="";var detail_order="name";var playRaw=1;const request_timeout=5e3;const VERSION="alist v2/v3 20221223";const UA="Mozilla/5.0";function print(any){any=any||"";if(typeof any=="object"&&Object.keys(any).length>0){try{any=JSON.stringify(any);console.log(any)}catch(e){console.log(typeof any+":"+any.length)}}else if(typeof any=="object"&&Object.keys(any).length<1){console.log("null object")}else{console.log(any)}}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}const http=function(url,options={}){if(options.method==="POST"&&options.data){options.body=JSON.stringify(options.data);options.headers=Object.assign({"content-type":"application/json"},options.headers)}options.timeout=request_timeout;if(!options.headers){options.headers={}}let keys=Object.keys(options.headers).map(it=>it.toLowerCase());if(!keys.includes("referer")){options.headers["Referer"]=getHome(url)}if(!keys.includes("user-agent")){options.headers["User-Agent"]=UA}console.log(JSON.stringify(options.headers));try{const res=req(url,options);res.json=()=>res&&res.content?JSON.parse(res.content):null;res.text=()=>res&&res.content?res.content:"";return res}catch(e){return{json(){return null},text(){return""}}}};["get","post"].forEach(method=>{http[method]=function(url,options={}){return http(url,Object.assign(options,{method:method.toUpperCase()}))}});const __drives={};function isMedia(file){return/\.(dff|dsf|mp3|aac|wav|wma|cda|flac|m4a|mid|mka|mp2|mpa|mpc|ape|ofr|ogg|ra|wv|tta|ac3|dts|tak|webm|wmv|mpeg|mov|ram|swf|mp4|avi|rm|rmvb|flv|mpg|mkv|m3u8|ts|3gp|asf)$/.test(file.toLowerCase())}function get_drives_path(tid){const index=tid.indexOf("$");const name=tid.substring(0,index);const path=tid.substring(index+1);return{drives:get_drives(name),path:path}}function get_drives(name){const{settings,api,server,headers}=__drives[name];if(settings.v3==null){settings.v3=false;const data=http.get(server+"/api/public/settings",{headers:headers}).json().data;if(Array.isArray(data)){settings.title=data.find(x=>x.key==="title")?.value;settings.v3=false;settings.version=data.find(x=>x.key==="version")?.value;settings.enableSearch=data.find(x=>x.key==="enable search")?.value==="true"}else{settings.title=data.title;settings.v3=true;settings.version=data.version;settings.enableSearch=false}api.path=settings.v3?"/api/fs/list":"/api/public/path";api.file=settings.v3?"/api/fs/get":"/api/public/path";api.search=settings.v3?"/api/public/search":"/api/public/search"}return __drives[name]}function init(ext){console.log("当前版本号:"+VERSION);let data;if(typeof ext=="object"){data=ext;print("alist ext:object")}else if(typeof ext=="string"){if(ext.startsWith("http")){let alist_data=ext.split(";");let alist_data_url=alist_data[0];limit_search_show=alist_data.length>1?Number(alist_data[1])||limit_search_show:limit_search_show;search_type=alist_data.length>2?alist_data[2]:search_type;print(alist_data_url);data=http.get(alist_data_url).json()}else{print("alist ext:json string");data=JSON.parse(ext)}}let drives=[];if(Array.isArray(data)&&data.length>0&&data[0].hasOwnProperty("server")&&data[0].hasOwnProperty("name")){drives=data}else if(!Array.isArray(data)&&data.hasOwnProperty("drives")&&Array.isArray(data.drives)){drives=data.drives.filter(it=>it.type&&it.type==="alist"||!it.type)}print(drives);searchDriver=(drives.find(x=>x.search)||{}).name||"";if(!searchDriver&&drives.length>0){searchDriver=drives[0].name}print(searchDriver);drives.forEach(item=>{let _path_param=[];if(item.params){_path_param=Object.keys(item.params);_path_param.sort((a,b)=>a.length-b.length)}if(item.password){let pwdObj={password:item.password};if(!item.params){item.params={"/":pwdObj}}else{item.params["/"]=pwdObj}_path_param.unshift("/")}__drives[item.name]={name:item.name,server:item.server.endsWith("/")?item.server.rstrip("/"):item.server,startPage:item.startPage||"/",showAll:item.showAll===true,search:!!item.search,params:item.params||{},_path_param:_path_param,settings:{},api:{},headers:item.headers||{},getParams(path){const key=this._path_param.find(x=>path.startsWith(x));return Object.assign({},this.params[key],{path:path})},getPath(path){const res=http.post(this.server+this.api.path,{data:this.getParams(path),headers:this.headers}).json();try{return this.settings.v3?res.data.content:res.data.files}catch(e){console.log(`getPath发生错误:${e.message}`);console.log(JSON.stringify(res));return[{name:"error",value:JSON.stringify(res)}]}},getFile(path){let raw_url=this.server+"/d"+path;raw_url=encodeURI(raw_url);let data={raw_url:raw_url,raw_url1:raw_url};if(playRaw===1){try{const res=http.post(this.server+this.api.file,{data:this.getParams(path),headers:this.headers}).json();data=this.settings.v3?res.data:res.data.files[0];if(!this.settings.v3){data.raw_url=data.url}data.raw_url1=raw_url;return data}catch(e){return data}}else{return data}},isFolder(data){return data.type===1},isVideo(data){return this.settings.v3?data.type===2||data.type===0||data.type===3:data.type===3||data.type===0||data.type===4},is_subt(data){if(data.type===1){return false}const ext=/\.(srt|ass|scc|stl|ttml)$/;return ext.test(data.name)},getPic(data){let pic=this.settings.v3?data.thumb:data.thumbnail;return pic||(this.isFolder(data)?"http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png":"")},getTime(data,isStandard){isStandard=isStandard||false;try{let tTime=data.updated_at||data.time_str||data.modified||"";let date="";if(tTime){tTime=tTime.split("T");date=tTime[0];if(isStandard){date=date.replace(/-/g,"/")}tTime=tTime[1].split(/Z|\./);date+=" "+tTime[0]}return date}catch(e){return""}}}});print("init执行完毕")}function home(filter){let classes=Object.keys(__drives).map(key=>({type_id:`${key}$${__drives[key].startPage}`,type_name:key,type_flag:"1"}));let filter_dict={};let filters=[{key:"order",name:"排序",value:[{n:"名称⬆️",v:"vod_name_asc"},{n:"名称⬇️",v:"vod_name_desc"},{n:"中英⬆️",v:"vod_cn_asc"},{n:"中英⬇️",v:"vod_cn_desc"},{n:"时间⬆️",v:"vod_time_asc"},{n:"时间⬇️",v:"vod_time_desc"},{n:"大小⬆️",v:"vod_size_asc"},{n:"大小⬇️",v:"vod_size_desc"},{n:"无",v:"none"}]},{key:"show",name:"播放展示",value:[{n:"单集",v:"single"},{n:"全集",v:"all"}]}];classes.forEach(it=>{filter_dict[it.type_id]=filters});print("----home----");print(classes);return JSON.stringify({class:classes,filters:filter_dict})}function homeVod(params){let _post_data={pageNum:0,pageSize:100};let _post_url="https://pbaccess.video.qq.com/trpc.videosearch.hot_rank.HotRankServantHttp/HotRankHttp";let data=http.post(_post_url,{data:_post_data}).json();let _list=[];try{data=data["data"]["navItemList"][0]["hotRankResult"]["rankItemList"];data.forEach(it=>{_list.push({vod_name:it.title,vod_id:"msearch:"+it.title,vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_remarks:it.changeOrder})})}catch(e){print("Alist获取首页推荐发送错误:"+e.message)}return JSON.stringify({list:_list})}function category(tid,pg,filter,extend){let orid=tid.replace(/#all#|#search#/g,"");let{drives,path}=get_drives_path(orid);const id=orid.endsWith("/")?orid:orid+"/";const list=drives.getPath(path);let subList=[];let vodFiles=[];let allList=[];let fl=filter?extend:{};if(fl.show){showMode=fl.show}list.forEach(item=>{if(item.name!=="error"){if(drives.is_subt(item)){subList.push(item.name)}if(!drives.showAll&&!drives.isFolder(item)&&!drives.isVideo(item)){return}let vod_time=drives.getTime(item);let vod_size=get_size(item.size);let remark=vod_time.split(" ")[0].substr(3)+"\t"+vod_size;let vod_id=id+item.name+(drives.isFolder(item)?"/":"");if(showMode==="all"){vod_id+="#all#"}print(vod_id);const vod={vod_id:vod_id,vod_name:item.name.replaceAll("$","").replaceAll("#",""),vod_pic:drives.getPic(item),vod_time:vod_time,vod_size:item.size,vod_tag:drives.isFolder(item)?"folder":"file",vod_remarks:drives.isFolder(item)?remark+" 文件夹":remark};if(drives.isVideo(item)){vodFiles.push(vod)}allList.push(vod)}else{console.log(item);const vod={vod_name:item.value,vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"};allList.push(vod)}});if(vodFiles.length===1&&subList.length>0){let sub;if(subList.length===1){sub=subList[0]}else{let subs=JSON.parse(JSON.stringify(subList));subs.sort((a,b)=>{let a_similar=(a.includes("chs")?100:0)+levenshteinDistance(a,vodFiles[0].vod_name);let b_similar=(b.includes("chs")?100:0)+levenshteinDistance(b,vodFiles[0].vod_name);if(a_similar>b_similar){return 1}else{return-1}});sub=subs.slice(-1)[0]}vodFiles[0].vod_id+="@@@"+sub;vodFiles[0].vod_remarks+="🏷️"}else{vodFiles.forEach(item=>{const lh=0;let sub;subList.forEach(s=>{const l=levenshteinDistance(s,item.vod_name);if(l>60&&l>lh){sub=s}});if(sub){item.vod_id+="@@@"+sub;item.vod_remarks+="🏷️"}})}if(fl.order){let key=fl.order.split("_").slice(0,-1).join("_");let order=fl.order.split("_").slice(-1)[0];print(`排序key:${key},排序order:${order}`);if(key.includes("name")){detail_order="name";allList=sortListByName(allList,key,order)}else if(key.includes("cn")){detail_order="cn";allList=sortListByCN(allList,"vod_name",order)}else if(key.includes("time")){detail_order="time";allList=sortListByTime(allList,key,order)}else if(key.includes("size")){detail_order="size";allList=sortListBySize(allList,key,order)}else if(fl.order.includes("none")){detail_order="none";print("不排序")}}else{if(detail_order!=="none"){allList=sortListByName(allList,"vod_name","asc")}}print("----category----"+`tid:${tid},detail_order:${detail_order},showMode:${showMode}`);return JSON.stringify({page:1,pagecount:1,limit:allList.length,total:allList.length,list:allList})}function getAll(otid,tid,drives,path){try{const content=category(tid,null,false,null);const isFile=isMedia(otid.replace(/#all#|#search#/g,"").split("@@@")[0]);const{list}=JSON.parse(content);let vod_play_url=[];list.forEach(x=>{if(x.vod_tag==="file"){let vid=x.vod_id.replace(/#all#|#search#/g,"");vod_play_url.push(`${x.vod_name}$${vid.substring(vid.indexOf("$")+1)}`)}});const pl=path.split("/").filter(it=>it);let vod_name=pl[pl.length-1]||drives.name;if(vod_name===drives.name){print(pl)}if(otid.includes("#search#")){vod_name+="[搜]"}let vod={vod_id:otid,vod_name:vod_name,type_name:"文件夹",vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_content:tid,vod_tag:"folder",vod_play_from:drives.name,vod_play_url:vod_play_url.join("#"),vod_remarks:drives.settings.title};print("----detail1----");print(vod);return JSON.stringify({list:[vod]})}catch(e){print(e.message);let list=[{vod_name:"无数据,防无限请求",type_name:"文件夹",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/static/img/404.jpg",vod_actor:e.message,vod_director:tid,vod_content:otid}];return JSON.stringify({list:list})}}function detail(tid){let isSearch=tid.includes("#search#");let isAll=tid.includes("#all#");let otid=tid;tid=tid.replace(/#all#|#search#/g,"");let isFile=isMedia(tid.split("@@@")[0]);print(`isFile:${tid}?${isFile}`);let{drives,path}=get_drives_path(tid);print(`drives:${drives},path:${path},`);if(path.endsWith("/")){return getAll(otid,tid,drives,path)}else{if(isSearch&&!isFile){return getAll(otid,tid,drives,path)}else if(isAll){let new_tid;if(isFile){new_tid=tid.split("/").slice(0,-1).join("/")+"/"}else{new_tid=tid}print(`全集模式 tid:${tid}=>tid:${new_tid}`);let{drives,path}=get_drives_path(new_tid);return getAll(otid,new_tid,drives,path)}else if(isFile){let paths=path.split("@@@");let vod_name=paths[0].substring(paths[0].lastIndexOf("/")+1);let vod_title=vod_name;if(otid.includes("#search#")){vod_title+="[搜]"}let vod={vod_id:otid,vod_name:vod_title,type_name:"文件",vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_content:tid,vod_play_from:drives.name,vod_play_url:vod_name+"$"+path,vod_remarks:drives.settings.title};print("----detail2----");print(vod);return JSON.stringify({list:[vod]})}else{return JSON.stringify({list:[]})}}}function play(flag,id,flags){const drives=get_drives(flag);const urls=id.split("@@@");let vod={parse:0,playUrl:"",url:drives.getFile(urls[0]).raw_url};if(urls.length>=2){const path=urls[0].substring(0,urls[0].lastIndexOf("/")+1);vod.subt=drives.getFile(path+urls[1]).raw_url1}print("----play----");print(vod);return JSON.stringify(vod)}function search(wd,quick){print(__drives);print("可搜索的alist驱动:"+searchDriver);if(!searchDriver||!wd){return JSON.stringify({list:[]})}else{let driver=__drives[searchDriver];wd=wd.split(" ").filter(it=>it.trim()).join("+");print(driver);let surl=driver.server+"/search?box="+wd+"&url=";if(search_type){surl+="&type="+search_type}print("搜索链接:"+surl);let html=http.get(surl).text();let lists=[];try{lists=pdfa(html,"div&&ul&&a")}catch(e){}print(`搜索结果数:${lists.length},搜索结果显示数量限制:${limit_search_show}`);let vods=[];let excludeReg=/\.(pdf|epub|mobi|txt|doc|lrc)$/;let cnt=0;lists.forEach(it=>{let vhref=pdfh(it,"a&&href");if(vhref){vhref=unescape(vhref)}if(excludeReg.test(vhref)){return}if(cnt1024*1024*1024*1024){sz/=1024*1024*1024*1024;filesize="TB"}else if(sz>1024*1024*1024){sz/=1024*1024*1024;filesize="GB"}else if(sz>1024*1024){sz/=1024*1024;filesize="MB"}else if(sz>1024){sz/=1024;filesize="KB"}else{filesize="B"}let sizeStr=sz.toFixed(2)+filesize,index=sizeStr.indexOf("."),dou=sizeStr.substr(index+1,2);if(dou==="00"){return sizeStr.substring(0,index)+sizeStr.substr(index+3,2)}else{return sizeStr}}function levenshteinDistance(str1,str2){return 100-100*distance(str1,str2)/Math.max(str1.length,str2.length)}function naturalSort(options){if(!options){options={}}return function(a,b){if(options.key){a=a[options.key];b=b[options.key]}var EQUAL=0;var GREATER=options.order==="desc"?-1:1;var SMALLER=-GREATER;var re=/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi;var sre=/(^[ ]*|[ ]*$)/g;var dre=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/;var hre=/^0x[0-9a-f]+$/i;var ore=/^0/;var normalize=function normalize(value){var string=""+value;return options.caseSensitive?string:string.toLowerCase()};var x=normalize(a).replace(sre,"")||"";var y=normalize(b).replace(sre,"")||"";var xN=x.replace(re,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");var yN=y.replace(re,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");if(!x&&!y)return EQUAL;if(!x&&y)return GREATER;if(x&&!y)return SMALLER;var xD=parseInt(x.match(hre))||xN.length!=1&&x.match(dre)&&Date.parse(x);var yD=parseInt(y.match(hre))||xD&&y.match(dre)&&Date.parse(y)||null;var oFxNcL,oFyNcL;if(yD){if(xDyD)return GREATER}for(var cLoc=0,numS=Math.max(xN.length,yN.length);cLocoFyNcL)return GREATER}return EQUAL}}const sortListByName=(vodList,key,order)=>{if(!key){return vodList}order=order||"asc";return vodList.sort(naturalSort({key:key,order:order,caseSensitive:true}))};const getTimeInt=timeStr=>{return new Date(timeStr).getTime()};const sortListByTime=(vodList,key,order)=>{if(!key){return vodList}let ASCarr=vodList.sort((a,b)=>{a=a[key];b=b[key];return getTimeInt(a)-getTimeInt(b)});if(order==="desc"){ASCarr.reverse()}return ASCarr};const sortListBySize=(vodList,key,order)=>{if(!key){return vodList}let ASCarr=vodList.sort((a,b)=>{a=a[key];b=b[key];return(Number(a)||0)-(Number(b)||0)});if(order==="desc"){ASCarr.reverse()}return ASCarr};export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search};
\ No newline at end of file
+import{distance}from"./mod.js";import{sortListByCN}from"./sortName.js";String.prototype.rstrip=function(chars){let regex=new RegExp(chars+"$");return this.replace(regex,"")};var showMode="single";var searchDriver="";var limit_search_show=200;var search_type="";var detail_order="name";var playRaw=1;const request_timeout=5e3;const VERSION="alist v2/v3 20221223";const UA="Mozilla/5.0";function print(any){any=any||"";if(typeof any=="object"&&Object.keys(any).length>0){try{any=JSON.stringify(any);console.log(any)}catch(e){console.log(typeof any+":"+any.length)}}else if(typeof any=="object"&&Object.keys(any).length<1){console.log("null object")}else{console.log(any)}}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}const http=function(url,options={}){if(options.method==="POST"&&options.data){options.body=JSON.stringify(options.data);options.headers=Object.assign({"content-type":"application/json"},options.headers)}options.timeout=request_timeout;if(!options.headers){options.headers={}}let keys=Object.keys(options.headers).map(it=>it.toLowerCase());if(!keys.includes("referer")){options.headers["Referer"]=getHome(url)}if(!keys.includes("user-agent")){options.headers["User-Agent"]=UA}console.log(JSON.stringify(options.headers));try{const res=req(url,options);res.json=()=>res&&res.content?JSON.parse(res.content):null;res.text=()=>res&&res.content?res.content:"";return res}catch(e){return{json(){return null},text(){return""}}}};["get","post"].forEach(method=>{http[method]=function(url,options={}){return http(url,Object.assign(options,{method:method.toUpperCase()}))}});const __drives={};function isMedia(file){return/\.(dff|dsf|mp3|aac|wav|wma|cda|flac|m4a|mid|mka|mp2|mpa|mpc|ape|ofr|ogg|ra|wv|tta|ac3|dts|tak|webm|wmv|mpeg|mov|ram|swf|mp4|avi|rm|rmvb|flv|mpg|mkv|m3u8|ts|3gp|asf)$/.test(file.toLowerCase())}function get_drives_path(tid){const index=tid.indexOf("$");const name=tid.substring(0,index);const path=tid.substring(index+1);return{drives:get_drives(name),path:path}}function get_drives(name){const{settings,api,server,headers}=__drives[name];if(settings.v3==null){settings.v3=false;const data=http.get(server+"/api/public/settings",{headers:headers}).json().data;if(Array.isArray(data)){settings.title=data.find(x=>x.key==="title")?.value;settings.v3=false;settings.version=data.find(x=>x.key==="version")?.value;settings.enableSearch=data.find(x=>x.key==="enable search")?.value==="true"}else{settings.title=data.title;settings.v3=true;settings.version=data.version;settings.enableSearch=false}api.path=settings.v3?"/api/fs/list":"/api/public/path";api.file=settings.v3?"/api/fs/get":"/api/public/path";api.search=settings.v3?"/api/public/search":"/api/public/search"}return __drives[name]}function init(ext){console.log("当前版本号:"+VERSION);let data;if(typeof ext=="object"){data=ext;print("alist ext:object")}else if(typeof ext=="string"){if(ext.startsWith("http")){let alist_data=ext.split(";");let alist_data_url=alist_data[0];limit_search_show=alist_data.length>1?Number(alist_data[1])||limit_search_show:limit_search_show;search_type=alist_data.length>2?alist_data[2]:search_type;print(alist_data_url);data=http.get(alist_data_url).json()}else{print("alist ext:json string");data=JSON.parse(ext)}}let drives=[];if(Array.isArray(data)&&data.length>0&&data[0].hasOwnProperty("server")&&data[0].hasOwnProperty("name")){drives=data}else if(!Array.isArray(data)&&data.hasOwnProperty("drives")&&Array.isArray(data.drives)){drives=data.drives.filter(it=>it.type&&it.type==="alist"||!it.type)}print(drives);searchDriver=(drives.find(x=>x.search)||{}).name||"";if(!searchDriver&&drives.length>0){searchDriver=drives[0].name}print(searchDriver);drives.forEach(item=>{let _path_param=[];if(item.params){_path_param=Object.keys(item.params);_path_param.sort((a,b)=>a.length-b.length)}if(item.password){let pwdObj={password:item.password};if(!item.params){item.params={"/":pwdObj}}else{item.params["/"]=pwdObj}_path_param.unshift("/")}__drives[item.name]={name:item.name,server:item.server.endsWith("/")?item.server.rstrip("/"):item.server,startPage:item.startPage||"/",showAll:item.showAll===true,search:!!item.search,params:item.params||{},_path_param:_path_param,settings:{},api:{},headers:item.headers||{},getParams(path){const key=this._path_param.find(x=>path.startsWith(x));return Object.assign({},this.params[key],{path:path})},getPath(path){const res=http.post(this.server+this.api.path,{data:this.getParams(path),headers:this.headers}).json();try{return this.settings.v3?res.data.content:res.data.files}catch(e){console.log(`getPath发生错误:${e.message}`);console.log(JSON.stringify(res));return[{name:"error",value:JSON.stringify(res)}]}},getFile(path){let raw_url=this.server+"/d"+path;raw_url=encodeURI(raw_url);let data={raw_url:raw_url,raw_url1:raw_url};if(playRaw===1){try{const res=http.post(this.server+this.api.file,{data:this.getParams(path),headers:this.headers}).json();data=this.settings.v3?res.data:res.data.files[0];if(!this.settings.v3){data.raw_url=data.url}data.raw_url1=raw_url;return data}catch(e){return data}}else{return data}},isFolder(data){return data.type===1},isVideo(data){return this.settings.v3?data.type===2||data.type===0||data.type===3:data.type===3||data.type===0||data.type===4},is_subt(data){if(data.type===1){return false}const ext=/\.(srt|ass|scc|stl|ttml)$/;return ext.test(data.name)},getPic(data){let pic=this.settings.v3?data.thumb:data.thumbnail;return pic||(this.isFolder(data)?"http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png":"")},getTime(data,isStandard){isStandard=isStandard||false;try{let tTime=data.updated_at||data.time_str||data.modified||"";let date="";if(tTime){tTime=tTime.split("T");date=tTime[0];if(isStandard){date=date.replace(/-/g,"/")}tTime=tTime[1].split(/Z|\./);date+=" "+tTime[0]}return date}catch(e){return""}}}});print("init执行完毕")}function home(filter){let classes=Object.keys(__drives).map(key=>({type_id:`${key}$${__drives[key].startPage}`,type_name:key,type_flag:"1"}));let filter_dict={};let filters=[{key:"order",name:"排序",value:[{n:"名称⬆️",v:"vod_name_asc"},{n:"名称⬇️",v:"vod_name_desc"},{n:"中英⬆️",v:"vod_cn_asc"},{n:"中英⬇️",v:"vod_cn_desc"},{n:"时间⬆️",v:"vod_time_asc"},{n:"时间⬇️",v:"vod_time_desc"},{n:"大小⬆️",v:"vod_size_asc"},{n:"大小⬇️",v:"vod_size_desc"},{n:"无",v:"none"}]},{key:"show",name:"播放展示",value:[{n:"单集",v:"single"},{n:"全集",v:"all"}]}];classes.forEach(it=>{filter_dict[it.type_id]=filters});print("----home----");print(classes);return JSON.stringify({class:classes,filters:filter_dict})}function homeVod(params){let _post_data={pageNum:0,pageSize:100};let _post_url="https://pbaccess.video.qq.com/trpc.videosearch.hot_rank.HotRankServantHttp/HotRankHttp";let data=http.post(_post_url,{data:_post_data}).json();let _list=[];try{data=data["data"]["navItemList"][0]["hotRankResult"]["rankItemList"];data.forEach(it=>{_list.push({vod_name:it.title,vod_id:"msearch:"+it.title,vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_remarks:it.changeOrder})})}catch(e){print("Alist获取首页推荐发送错误:"+e.message)}return JSON.stringify({list:_list})}function category(tid,pg,filter,extend){let orid=tid.replace(/#all#|#search#/g,"");let{drives,path}=get_drives_path(orid);const id=orid.endsWith("/")?orid:orid+"/";const list=drives.getPath(path);let subList=[];let vodFiles=[];let allList=[];let fl=filter?extend:{};if(fl.show){showMode=fl.show}list.forEach(item=>{if(item.name!=="error"){if(drives.is_subt(item)){subList.push(item.name)}if(!drives.showAll&&!drives.isFolder(item)&&!drives.isVideo(item)){return}let vod_time=drives.getTime(item);let vod_size=get_size(item.size);let remark=vod_time.split(" ")[0].substr(3)+"\t"+vod_size;let vod_id=id+item.name+(drives.isFolder(item)?"/":"");if(showMode==="all"){vod_id+="#all#"}print(vod_id);const vod={vod_id:vod_id,vod_name:item.name.replaceAll("$","").replaceAll("#",""),vod_pic:drives.getPic(item),vod_time:vod_time,vod_size:item.size,vod_tag:drives.isFolder(item)?"folder":"file",vod_remarks:drives.isFolder(item)?remark+" 文件夹":remark};if(drives.isVideo(item)){vodFiles.push(vod)}allList.push(vod)}else{console.log(item);const vod={vod_name:item.value,vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"};allList.push(vod)}});if(vodFiles.length===1&&subList.length>0){let sub;if(subList.length===1){sub=subList[0]}else{let subs=JSON.parse(JSON.stringify(subList));subs.sort((a,b)=>{let a_similar=(a.includes("chs")?100:0)+levenshteinDistance(a,vodFiles[0].vod_name);let b_similar=(b.includes("chs")?100:0)+levenshteinDistance(b,vodFiles[0].vod_name);if(a_similar>b_similar){return 1}else{return-1}});sub=subs.slice(-1)[0]}vodFiles[0].vod_id+="@@@"+sub;vodFiles[0].vod_remarks+="🏷️"}else{vodFiles.forEach(item=>{const lh=0;let sub;subList.forEach(s=>{const l=levenshteinDistance(s,item.vod_name);if(l>60&&l>lh){sub=s}});if(sub){item.vod_id+="@@@"+sub;item.vod_remarks+="🏷️"}})}if(fl.order){let key=fl.order.split("_").slice(0,-1).join("_");let order=fl.order.split("_").slice(-1)[0];print(`排序key:${key},排序order:${order}`);if(key.includes("name")){detail_order="name";allList=sortListByName(allList,key,order)}else if(key.includes("cn")){detail_order="cn";allList=sortListByCN(allList,"vod_name",order)}else if(key.includes("time")){detail_order="time";allList=sortListByTime(allList,key,order)}else if(key.includes("size")){detail_order="size";allList=sortListBySize(allList,key,order)}else if(fl.order.includes("none")){detail_order="none";print("不排序")}}else{if(detail_order!=="none"){allList=sortListByName(allList,"vod_name","asc")}}print("----category----"+`tid:${tid},detail_order:${detail_order},showMode:${showMode}`);return JSON.stringify({page:1,pagecount:1,limit:allList.length,total:allList.length,list:allList})}function getAll(otid,tid,drives,path){try{const content=category(tid,null,false,null);const isFile=isMedia(otid.replace(/#all#|#search#/g,"").split("@@@")[0]);const{list}=JSON.parse(content);let vod_play_url=[];list.forEach(x=>{if(x.vod_tag==="file"){let vid=x.vod_id.replace(/#all#|#search#/g,"");vod_play_url.push(`${x.vod_name}$${vid.substring(vid.indexOf("$")+1)}`)}});const pl=path.split("/").filter(it=>it);let vod_name=pl[pl.length-1]||drives.name;if(vod_name===drives.name){print(pl)}if(otid.includes("#search#")){vod_name+="[搜]"}let vod={vod_id:otid,vod_name:vod_name,type_name:"文件夹",vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_content:tid,vod_tag:"folder",vod_play_from:drives.name,vod_play_url:vod_play_url.join("#"),vod_remarks:drives.settings.title};print("----detail1----");print(vod);return JSON.stringify({list:[vod]})}catch(e){print(e.message);let list=[{vod_name:"无数据,防无限请求",type_name:"文件夹",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/static/img/404.jpg",vod_actor:e.message,vod_director:tid,vod_content:otid}];return JSON.stringify({list:list})}}function detail(tid){let isSearch=tid.includes("#search#");let isAll=tid.includes("#all#");let otid=tid;tid=tid.replace(/#all#|#search#/g,"");let isFile=isMedia(tid.split("@@@")[0]);print(`isFile:${tid}?${isFile}`);let{drives,path}=get_drives_path(tid);print(`drives:${drives},path:${path},`);if(path.endsWith("/")){return getAll(otid,tid,drives,path)}else{if(isSearch&&!isFile){return getAll(otid,tid,drives,path)}else if(isAll){let new_tid;if(isFile){new_tid=tid.split("/").slice(0,-1).join("/")+"/"}else{new_tid=tid}print(`全集模式 tid:${tid}=>tid:${new_tid}`);let{drives,path}=get_drives_path(new_tid);return getAll(otid,new_tid,drives,path)}else if(isFile){let paths=path.split("@@@");let vod_name=paths[0].substring(paths[0].lastIndexOf("/")+1);let vod_title=vod_name;if(otid.includes("#search#")){vod_title+="[搜]"}let vod={vod_id:otid,vod_name:vod_title,type_name:"文件",vod_pic:"https://avatars.githubusercontent.com/u/97389433?s=120&v=4",vod_content:tid,vod_play_from:drives.name,vod_play_url:vod_name+"$"+path,vod_remarks:drives.settings.title};print("----detail2----");print(vod);return JSON.stringify({list:[vod]})}else{return JSON.stringify({list:[]})}}}function play(flag,id,flags){const drives=get_drives(flag);const urls=id.split("@@@");let vod={parse:0,playUrl:"",url:drives.getFile(urls[0]).raw_url};if(urls.length>=2){const path=urls[0].substring(0,urls[0].lastIndexOf("/")+1);vod.subt=drives.getFile(path+urls[1]).raw_url1}print("----play----");print(vod);return JSON.stringify(vod)}function search(wd,quick){print(__drives);print("可搜索的alist驱动:"+searchDriver);if(!searchDriver||!wd){return JSON.stringify({list:[]})}else{let driver=__drives[searchDriver];wd=wd.split(" ").filter(it=>it.trim()).join("+");print(driver);let surl=driver.server+"/search?box="+wd+"&url=";if(search_type){surl+="&type="+search_type}print("搜索链接:"+surl);let html=http.get(surl).text();let lists=[];try{lists=pdfa(html,"div&&ul&&a")}catch(e){}print(`搜索结果数:${lists.length},搜索结果显示数量限制:${limit_search_show}`);let vods=[];let excludeReg=/\.(pdf|epub|mobi|txt|doc|lrc)$/;let cnt=0;lists.forEach(it=>{let vhref=pdfh(it,"a&&href");if(vhref){vhref=unescape(vhref)}if(excludeReg.test(vhref)){return}if(cnt1024*1024*1024*1024){sz/=1024*1024*1024*1024;filesize="TB"}else if(sz>1024*1024*1024){sz/=1024*1024*1024;filesize="GB"}else if(sz>1024*1024){sz/=1024*1024;filesize="MB"}else if(sz>1024){sz/=1024;filesize="KB"}else{filesize="B"}let sizeStr=sz.toFixed(2)+filesize,index=sizeStr.indexOf("."),dou=sizeStr.substr(index+1,2);if(dou==="00"){return sizeStr.substring(0,index)+sizeStr.substr(index+3,2)}else{return sizeStr}}function levenshteinDistance(str1,str2){return 100-100*distance(str1,str2)/Math.max(str1.length,str2.length)}function naturalSort(options){if(!options){options={}}return function(a,b){if(options.key){a=a[options.key];b=b[options.key]}var EQUAL=0;var GREATER=options.order==="desc"?-1:1;var SMALLER=-GREATER;var re=/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi;var sre=/(^[ ]*|[ ]*$)/g;var dre=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/;var hre=/^0x[0-9a-f]+$/i;var ore=/^0/;var normalize=function normalize(value){var string=""+value;return options.caseSensitive?string:string.toLowerCase()};var x=normalize(a).replace(sre,"")||"";var y=normalize(b).replace(sre,"")||"";var xN=x.replace(re,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");var yN=y.replace(re,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");if(!x&&!y)return EQUAL;if(!x&&y)return GREATER;if(x&&!y)return SMALLER;var xD=parseInt(x.match(hre))||xN.length!=1&&x.match(dre)&&Date.parse(x);var yD=parseInt(y.match(hre))||xD&&y.match(dre)&&Date.parse(y)||null;var oFxNcL,oFyNcL;if(yD){if(xDyD)return GREATER}for(var cLoc=0,numS=Math.max(xN.length,yN.length);cLocoFyNcL)return GREATER}return EQUAL}}const sortListByName=(vodList,key,order)=>{if(!key){return vodList}order=order||"asc";return vodList.sort(naturalSort({key:key,order:order,caseSensitive:true}))};const getTimeInt=timeStr=>{return new Date(timeStr).getTime()};const sortListByTime=(vodList,key,order)=>{if(!key){return vodList}let ASCarr=vodList.sort((a,b)=>{a=a[key];b=b[key];return getTimeInt(a)-getTimeInt(b)});if(order==="desc"){ASCarr.reverse()}return ASCarr};const sortListBySize=(vodList,key,order)=>{if(!key){return vodList}let ASCarr=vodList.sort((a,b)=>{a=a[key];b=b[key];return(Number(a)||0)-(Number(b)||0)});if(order==="desc"){ASCarr.reverse()}return ASCarr};export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search};
\ No newline at end of file
diff --git a/tvboxqq/道长js/api/drpy2.min.js b/tvboxqq/道长js/api/drpy2.min.js
index 954dc06..25d45c6 100644
--- a/tvboxqq/道长js/api/drpy2.min.js
+++ b/tvboxqq/道长js/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/道长js/js/DJ音乐.js b/tvboxqq/道长js/js/DJ音乐.js
index 4201a5d..a533739 100644
--- a/tvboxqq/道长js/js/DJ音乐.js
+++ b/tvboxqq/道长js/js/DJ音乐.js
@@ -1,7 +1,7 @@
// 道长 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://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
+// 道长 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
diff --git a/tvboxqq/道长js/js/JRKAN直播.js b/tvboxqq/道长js/js/JRKAN直播.js
index ef09d11..779361c 100644
--- a/tvboxqq/道长js/js/JRKAN直播.js
+++ b/tvboxqq/道长js/js/JRKAN直播.js
@@ -1,7 +1,7 @@
// 道长 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/qq_32394351/dr_py#%E6%A8%A1%E6%9D%BF%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E
-// 道长 drpy写源 套模模版 https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
+// 道长 drpy写源 套模模版 https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
// 道长 drpy写源 相关视频教程 https://www.youtube.com/watch?v=AK7cN-fcwm4
// 道长 drpy写源 写源教学视频 https://t.me/fongmi_offical/54080/63553
// 海阔下载 https://haikuo.lanzoui.com/u/GoldRiver
diff --git a/tvboxqq/道长js/js/UrleBird.js b/tvboxqq/道长js/js/UrleBird.js
index b6208c7..29f682a 100644
--- a/tvboxqq/道长js/js/UrleBird.js
+++ b/tvboxqq/道长js/js/UrleBird.js
@@ -1,7 +1,7 @@
// 道长 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/qq_32394351/dr_py#%E6%A8%A1%E6%9D%BF%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E
-// 道长 drpy写源 套模模版 https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
+// 道长 drpy写源 套模模版 https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js
// 道长 drpy写源 相关视频教程 https://www.youtube.com/watch?v=AK7cN-fcwm4
// 道长 drpy写源 写源教学视频 https://t.me/fongmi_offical/54080/63553
// 海阔下载 https://haikuo.lanzoui.com/u/GoldRiver
diff --git a/tvboxqq/道长js/js/alist.js b/tvboxqq/道长js/js/alist.js
new file mode 100644
index 0000000..d63aad0
--- /dev/null
+++ b/tvboxqq/道长js/js/alist.js
@@ -0,0 +1,48 @@
+[
+ {
+ "name": "🙋丫仙女",
+ "server": "http://alist.xiaoya.pro/",
+ "startPage": "/",
+ "showAll": false,
+ "search": true,
+ "headers": {
+ "Authorization": ""
+ },
+ "params": {
+ "/abc": {
+ "password": "123"
+ },
+ "/abc/abc": {
+ "password": "123"
+ }
+ }
+ },
+ {
+ "name": "🐋一只鱼",
+ "server": "https://alist.youte.ml"
+ },
+ {
+ "name": "🌊七米蓝",
+ "server": "https://al.chirmyram.com"
+ },
+ {
+ "name": "🐉神族九帝",
+ "server": "https://alist.shenzjd.com"
+ },
+ {
+ "name": "☃️姬路白雪",
+ "server": "https://pan.jlbx.xyz"
+ },
+ {
+ "name": "✨星梦",
+ "server": "https://pan.bashroot.top"
+ },
+ {
+ "name": "💢repl",
+ "server": "https://ali.liucn.repl.co"
+ },
+ {
+ "name": "💦讯维云盘",
+ "server": "https://pan.xwbeta.com"
+ }
+]
diff --git a/tvboxqq/道长js/js/哔哩影视.js b/tvboxqq/道长js/js/哔哩影视.js
index ea743be..75c8724 100644
--- a/tvboxqq/道长js/js/哔哩影视.js
+++ b/tvboxqq/道长js/js/哔哩影视.js
@@ -3,7 +3,7 @@
* https://t.me/fongmi_offical/
* https://github.com/FongMi/Release/tree/main/apk
* Cookie设置
- * Cookie获取方法 https://mirror.ghproxy.com/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
+ * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
@@ -59,7 +59,7 @@ var rule = {
二级:'',
二级:'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"];let playurls1=[];let playurls2=[];ja.forEach(function(tmpJo){let eid=tmpJo["id"];let cid=tmpJo["cid"];let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"];playurls1.push(part+"$"+eid+"_"+cid);playurls2.push(part+"$"+link)});let playUrl=playurls1.join("#")+"$$$"+playurls2.join("#");vod["vod_play_from"]="B站$$$bilibili";vod["vod_play_url"]=playUrl;VOD=vod;',
搜索:'',
- 搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'\',"").replace("","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ 搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'\',"").replace("","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
lazy:'',
lazy:`js:
if (/^http/.test(input)) {
diff --git a/tvboxqq/道长js/js/哔哩直播.js b/tvboxqq/道长js/js/哔哩直播.js
index 856b2a8..d29c70b 100644
--- a/tvboxqq/道长js/js/哔哩直播.js
+++ b/tvboxqq/道长js/js/哔哩直播.js
@@ -7,7 +7,7 @@
* https://t.me/pipixiawerun
* vod_area:'bililivedanmu'
* Cookie设置
- * Cookie获取方法 https://mirror.ghproxy.com/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
+ * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
@@ -64,7 +64,7 @@ var rule = {
"User-Agent":"PC_UA",
"Referer": "https://www.bilibili.com",
// "Cookie":"$bili_cookie"
- "Cookie":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
+ "Cookie":"https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
},
timeout:5000,
limit:8,
@@ -107,6 +107,6 @@ var rule = {
// 二级:'*',
二级:"js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;",
// 搜索:'json:data.result.live_room;title;cover;uname;roomid',
- 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
// 预处理:'if(rule_fetch_params.headers.Cookie.startsWith("http")){rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);setItem(RULE_CK,cookie)};log(rule_fetch_params.headers.Cookie)',
}
\ No newline at end of file
diff --git a/tvboxqq/道长js/js/我的哔哩.js b/tvboxqq/道长js/js/我的哔哩.js
index 9c33167..4c9f125 100644
--- a/tvboxqq/道长js/js/我的哔哩.js
+++ b/tvboxqq/道长js/js/我的哔哩.js
@@ -10,7 +10,7 @@
* https://t.me/pipixiawerun
* vod_area:'bilidanmu'
* Cookie设置
- * Cookie获取方法 https://mirror.ghproxy.com/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
+ * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
@@ -111,8 +111,8 @@ var rule = {
"User-Agent":"PC_UA",
"Referer": "https://www.bilibili.com",
// "Cookie":"$bili_cookie"
- // "Cookie":"https://mirror.ghproxy.com/https://github.com/FongMi/CatVodSpider/raw/main/txt/cookie.txt"
- "Cookie":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
+ // "Cookie":"https://ghproxy.net/https://github.com/FongMi/CatVodSpider/raw/main/txt/cookie.txt"
+ "Cookie":"https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
},
timeout:5000,
limit:8,
@@ -244,7 +244,7 @@ var rule = {
});
VODS = videos
`,
- // 一级:'js:let html=request(input);let msg=JSON.parse(html).message;function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","").replace(""","\'");log("名称替换👉"+title)};return title}if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim();title=title_rep(title);title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=vod["duration"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ // 一级:'js:let html=request(input);let msg=JSON.parse(html).message;function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","").replace(""","\'");log("名称替换👉"+title)};return title}if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim();title=title_rep(title);title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=vod["duration"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
一级:`js:
if (cateObj.tid.endsWith('_clicklink')) {
cateObj.tid = cateObj.tid.split('_')[0];
diff --git a/tvboxqq/饭太硬/api.json b/tvboxqq/饭太硬/api.json
index 30be406..1454e92 100644
--- a/tvboxqq/饭太硬/api.json
+++ b/tvboxqq/饭太硬/api.json
@@ -41,16 +41,7 @@
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
- "ext": "https://www.CZZ9.com/"
- },
- {
- "key": "77",
- "name": "👒七七┃App",
- "type": 3,
- "api": "csp_Kunyu77",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
+ "ext": "https://czz9.com/"
},
{
"key": "南瓜",
@@ -73,14 +64,13 @@
"ext": "FbjDcUxPqpfNr0QF4QvE6sExbcJUCYdIVisPtbeywENfScyc6nTW0F+D7rX5HCm9c3SL03FsmGsmXS04XZMlbxEVW4/ZgwONbnobxj8KxeRpXqDxCWghfAf9JSR025yi92eOKqE9HokX9QQnl1WsU21CR4+dlEMDEsADd1xFGiiGtsh0vqJFAf41Z7sYL00hBBNM3xJsYyXCuX4BrzNYpZRwmcnwnXIHe2MtwbsJf0IAs6yM+y/ub+niyxOc2YuPbc/VUS4DGPqzelIi6plLWFvZ8+j2xcvAgopZxZFhBkIYCIIC5Uec/JW8RgW9WV1SKntGcmcd5yjIpagsmpXymH3a+FKzHKMB3LvXmR6onijWkP0VpivFgVVfjWrik4Yr0ZjZxKFA0uPQvy9l9EjPMNrQIj0sZjnpv7JmoMO+HfQ+lqKhJrQFq4MooyyGv6yhNv12IOHay3A="
},
{
- "key": "小小",
- "name": "👀小小┃App",
+ "key": "77",
+ "name": "👒七七┃App",
"type": 3,
- "api": "csp_AppSK",
+ "api": "csp_Kunyu77",
"searchable": 1,
"quickSearch": 1,
- "changeable": 1,
- "ext": "FbjPcVZY48PN/RIZ5QqOrspjLNgNFopFSHVY6K2ulREXB8Df/naRzE3Wr//0Eii7c3+Gy303m2c6QTo5XtUnKAsMSNaL2xXeIzJO1iEbmKYzDfKoZ3h8"
+ "changeable": 1
},
{
"key": "嘿嘿",
@@ -153,6 +143,16 @@
"changeable": 1,
"ext": "FbjPcVZY48PN/RIZ5UWFro5tctBJAZhIEz5OvLqy0VZGH5/R/mCR2kPI46ezGyKoem+Vym4tmTJ5Gio/CM0pPlNKXd+d2hTULzhB0SoYmLd4"
},
+ {
+ "key": "小小",
+ "name": "👀小小┃App",
+ "type": 3,
+ "api": "csp_AppSK",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "ext": "FbjPcVZY48PN/RIZ5QqOrspjLNgNFopFSHVY6K2ulREXB8Df/naRzE3Wr//0Eii7c3+Gy303m2c6QTo5XtUnKAsMSNaL2xXeIzJO1iEbmKYzDfKoZ3h8"
+ },
{
"key": "极光",
"name": "🦄️极光┃App",
@@ -691,10 +691,10 @@
"ext": "./json/高中课堂.json"
},
{
- "key": "ext_live_protocol",
+ "key": "fan",
"name": "导航 https://饭太硬.top",
"type": 3,
- "api": "csp_XPath",
+ "api": "csp_fan",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
@@ -703,7 +703,7 @@
"key": "cc",
"name": "请勿相信视频中任何广告",
"type": 3,
- "api": "csp_XPath",
+ "api": "csp_fan",
"searchable": 0,
"quickSearch": 0
}
diff --git a/tvboxqq/饭太硬/api/drpy2.min.js b/tvboxqq/饭太硬/api/drpy2.min.js
index 5d8fcad..6559d98 100644
--- a/tvboxqq/饭太硬/api/drpy2.min.js
+++ b/tvboxqq/饭太硬/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/饭太硬/spider.jar b/tvboxqq/饭太硬/spider.jar
index 6953bcc..a5b5ff6 100644
Binary files a/tvboxqq/饭太硬/spider.jar and b/tvboxqq/饭太硬/spider.jar differ
diff --git a/tvboxqq/香雅情XYQ/api.json b/tvboxqq/香雅情XYQ/api.json
index eeb6f98..512dcb2 100644
--- a/tvboxqq/香雅情XYQ/api.json
+++ b/tvboxqq/香雅情XYQ/api.json
@@ -3,17 +3,24 @@
{
"wallpaper": "https://picsum.photos/1280/720/?blur=2",
"spider": "./spider.jar",
+ "comment": "多路直播配置只有蜂蜜影视支持",
"lives": [
{
- "name": "在线",
+ "name": "Yoursmile7",
"type": 0,
- "url": "./lives/在线.txt",
+ "url": "./lives/Yoursmile7.txt",
"epg": "https://epg.112114.xyz/?ch={name}&date={date}"
},
{
- "name": "本地",
+ "name": "JUNDIE",
"type": 0,
- "url": "clan://XYQTVBox/live.txt",
+ "url": "./lives/JUNDIE.txt",
+ "epg": "https://epg.112114.xyz/?ch={name}&date={date}"
+ },
+ {
+ "name": "fanmingming",
+ "type": 0,
+ "url": "./lives/fanmingming.txt",
"epg": "https://epg.112114.xyz/?ch={name}&date={date}"
}
],
@@ -373,7 +380,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "https://www.czzy88.com"
+ "ext": "http://wogg.link"
},
{
"key": "csp_Bdys",
@@ -542,6 +549,16 @@
"filterable": 1,
"ext": "./json/異世界動漫.json"
},
+ {
+ "key": "csp_XYQHiker_有声小说吧",
+ "name": "有声小说吧(XYQH)",
+ "type": 3,
+ "api": "csp_XYQHiker",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "./json/有声小说吧.json"
+ },
{
"key": "csp_XYQHiker_DJ呦呦音乐网",
"name": "🎧DJ呦呦音乐网(XYQH)",
diff --git a/tvboxqq/香雅情XYQ/api/drpy2.min.js b/tvboxqq/香雅情XYQ/api/drpy2.min.js
index 954dc06..25d45c6 100644
--- a/tvboxqq/香雅情XYQ/api/drpy2.min.js
+++ b/tvboxqq/香雅情XYQ/api/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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://mirror.ghproxy.com/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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./cheerio.min.js";import"./crypto-js.js";import 模板 from"./js_模板.js";import{gbkTool}from"./gbk.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")}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={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.48beta16 20231011";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="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/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)$/;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=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=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;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.substr(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=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.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)}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(!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}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.method="POST";return request(url,obj)}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=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){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.一级.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.图片来源){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)}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});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.图片来源){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"{}"}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);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&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){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)}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.图片来源){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();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 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);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)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){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.图片来源&&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}毫秒`);vod=vodDeal(vod);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;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 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 init(ext){console.log("init");try{let muban=模板.getMubans();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("/");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)}}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;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("]")){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.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:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";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)}}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);pre();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="";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 DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/香雅情XYQ/js/哔哩直播.js b/tvboxqq/香雅情XYQ/js/哔哩直播.js
index 856b2a8..d29c70b 100644
--- a/tvboxqq/香雅情XYQ/js/哔哩直播.js
+++ b/tvboxqq/香雅情XYQ/js/哔哩直播.js
@@ -7,7 +7,7 @@
* https://t.me/pipixiawerun
* vod_area:'bililivedanmu'
* Cookie设置
- * Cookie获取方法 https://mirror.ghproxy.com/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
+ * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
@@ -64,7 +64,7 @@ var rule = {
"User-Agent":"PC_UA",
"Referer": "https://www.bilibili.com",
// "Cookie":"$bili_cookie"
- "Cookie":"https://mirror.ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
+ "Cookie":"https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
},
timeout:5000,
limit:8,
@@ -107,6 +107,6 @@ var rule = {
// 二级:'*',
二级:"js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;",
// 搜索:'json:data.result.live_room;title;cover;uname;roomid',
- 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://mirror.ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
+ 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
// 预处理:'if(rule_fetch_params.headers.Cookie.startsWith("http")){rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);setItem(RULE_CK,cookie)};log(rule_fetch_params.headers.Cookie)',
}
\ No newline at end of file
diff --git a/tvboxqq/香雅情XYQ/json/4KHDR.json b/tvboxqq/香雅情XYQ/json/4KHDR.json
index e981df5..74695fa 100644
--- a/tvboxqq/香雅情XYQ/json/4KHDR.json
+++ b/tvboxqq/香雅情XYQ/json/4KHDR.json
@@ -67,7 +67,7 @@
"线路列表数组规则": "",
"线路标题": "",
"播放列表数组规则": "body&postlist",
- "选集列表数组规则": "a[href^=https://www.aliyundrive.com/s/]||a[href^=magnet]",
+ "选集列表数组规则": "a[href~=https://www.ali(pan|yundrive).com/s/]||a[href^=magnet]",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
diff --git a/tvboxqq/香雅情XYQ/json/云盘资源分享.json b/tvboxqq/香雅情XYQ/json/云盘资源分享.json
index 924783d..4ef3c7a 100644
--- a/tvboxqq/香雅情XYQ/json/云盘资源分享.json
+++ b/tvboxqq/香雅情XYQ/json/云盘资源分享.json
@@ -20,7 +20,7 @@
"线路列表数组规则": "",
"线路标题": "",
"播放列表数组规则": "body&flarum-content",
- "选集列表数组规则": "a[href^=https://www.aliyundrive.com/s/]",
+ "选集列表数组规则": "a[href~=https://www.ali(pan|yundrive).com/s/]",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
diff --git a/tvboxqq/香雅情XYQ/json/厂长影视.json b/tvboxqq/香雅情XYQ/json/厂长影视.json
index e38a441..e40f892 100644
--- a/tvboxqq/香雅情XYQ/json/厂长影视.json
+++ b/tvboxqq/香雅情XYQ/json/厂长影视.json
@@ -5,12 +5,12 @@
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "1",
- "首页推荐链接": "https://www.czzy88.com",
+ "首页推荐链接": "https://www.czys.me",
"首页列表数组规则": "body&&.bt_img",
"首页片单列表数组规则": "li",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
- "分类链接": "https://www.czzy88.com/{class}{cateId}/page/{catePg}[firstPage=https://www.czzy88.com/{class}{cateId}]",
+ "分类链接": "https://www.czys.me/{class}{cateId}/page/{catePg}[firstPage=https://www.czys.me/{class}{cateId}]",
"分类名称": "豆瓣电影Top250&最新电影&电视剧&国产剧&美剧&韩剧&番剧&动漫&全部&会员专区&俄罗斯电影&加拿大电影&动画&华语电影&印度电影&国产剧&日剧&日本电影&欧美电影&法国电影&海外剧(其他)&电影&电视剧2&站长推荐&美剧&英国电影&韩剧2&韩国电影",
"分类名称替换词": "dbtop250&zuixindianying&dsj&gcj&meijutt&hanjutv&fanju&dm&movie_bt&movie_bt_series/huiyuanzhuanqu&movie_bt_series/eluosidianying&movie_bt_series/jianadadianying&movie_bt_series/dohua&movie_bt_series/huayudianying&movie_bt_series/yindudianying&movie_bt_series/guochanju&movie_bt_series/rj&movie_bt_series/ribendianying&movie_bt_series/meiguodianying&movie_bt_series/faguodianying&movie_bt_series/hwj&movie_bt_series/dyy&movie_bt_series/dianshiju&movie_bt_series/zhanchangtuijian&movie_bt_series/mj&movie_bt_series/yingguodianying&movie_bt_series/hj&movie_bt_series/hanguodianying",
"筛选数据": "ext",
@@ -27,7 +27,7 @@
"分类片单链接加后缀": "",
//"搜索请求头参数": "User-Agent$PC_UA",
"搜索请求头参数": "User-Agent$Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36#Referer$https://www.czspp.com#Cookie$esc_search_captcha=1",
- "搜索链接": "https://www.czzy88.com/page/1?s={wd}",
+ "搜索链接": "https://www.czys.me/page/1?s={wd}",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".search_list&&ul&&li",
diff --git a/tvboxqq/香雅情XYQ/json/我的小站.json b/tvboxqq/香雅情XYQ/json/我的小站.json
index 9210970..47fc820 100644
--- a/tvboxqq/香雅情XYQ/json/我的小站.json
+++ b/tvboxqq/香雅情XYQ/json/我的小站.json
@@ -20,7 +20,7 @@
"线路列表数组规则": "",
"线路标题": "",
"播放列表数组规则": "body&flarum-content",
- "选集列表数组规则": "a[href^=https://www.aliyundrive.com/s/]",
+ "选集列表数组规则": "a[href~=https://www.ali(pan|yundrive).com/s/]",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
diff --git a/tvboxqq/香雅情XYQ/json/有声小说吧.json b/tvboxqq/香雅情XYQ/json/有声小说吧.json
new file mode 100644
index 0000000..b34dd26
--- /dev/null
+++ b/tvboxqq/香雅情XYQ/json/有声小说吧.json
@@ -0,0 +1,87 @@
+{
+ "规则名": "有声小说吧",
+ "规则作者": "香雅情",
+ "请求头参数": "User-Agent$手机",
+ "网页编码格式": "gb2312",
+ "图片是否需要代理": "0",
+ "是否开启获取首页数据": "1",
+ "首页推荐链接": "http://m.ysxs8.vip",
+ "首页列表数组规则": "body&&.list-ul",
+ "首页片单列表数组规则": ".list-li",
+ "首页片单是否Jsoup写法": "1",
+ "首页片单标题": ".list-name&&Text",
+ "首页片单链接": "a&&href!..",
+ "首页片单图片": "img&&data-original",
+ "首页片单副标题": ".module-slide-author&&Text",
+ "首页片单链接加前缀": "http://m.ysxs8.vip",
+ "首页片单链接加后缀": "",
+ "分类起始页码": "1",
+ "分类链接": "http://m.ysxs8.vip/downlist/r{cateId}_{catePg}.html",
+ "分类名称": "网络玄幻&恐怖悬疑&评书下载&儿童读物&管理营销&相声戏曲&传统武侠&都市言情&官场刑侦&历史军事&人物传记&广播剧&百家讲坛&外语读物&有声文学&探险盗墓&职场商战",
+ "分类名称替换词": "52&17&3&4&6&7&12&13&14&15&16&18&32&35&41&45&81",
+ "筛选数据": {},
+ //"筛选数据": "ext",
+ //{cateId}
+ "筛选子分类名称": "",
+ "筛选子分类替换词": "",
+ //{class}
+ "筛选类型名称": "",
+ "筛选类型替换词": "*",
+ //{area}
+ "筛选地区名称": "",
+ "筛选地区替换词": "*",
+ //{year}
+ "筛选年份名称": "",
+ "筛选年份替换词": "*",
+ //{lang}
+ "筛选语言名称": "",
+ "筛选语言替换词": "*",
+ //{by}
+ "筛选排序名称": "",
+ "筛选排序替换词": "",
+ "分类截取模式": "1",
+ "分类列表数组规则": "body&&.book-li",
+ "分类片单是否Jsoup写法": "1",
+ "分类片单标题": ".book-title&&Text",
+ "分类片单链接": "a&&href!..",
+ "分类片单图片": "img&&data-original",
+ "分类片单副标题": ".book-meta&&Text",
+ "分类片单链接加前缀": "http://m.ysxs8.vip",
+ "分类片单链接加后缀": "",
+ "搜索请求头参数": "User-Agent$手机",
+ "搜索链接": "http://m.ysxs8.vip/search.asp?page=1&searchword={wd}&searchtype=-1",
+ "POST请求数据": "",
+ "搜索截取模式": "1",
+ "搜索列表数组规则": "body&&.book-li",
+ "搜索片单是否Jsoup写法": "1",
+ "搜索片单图片": "img&&data-original",
+ "搜索片单标题": "h4&&Text",
+ "搜索片单链接": "a&&href!..",
+ "搜索片单副标题": ".book-meta&&Text",
+ "搜索片单链接加前缀": "http://m.ysxs8.vip",
+ "搜索片单链接加后缀": "",
+ "链接是否直接播放": "0",
+ "直接播放链接加前缀": "",
+ "直接播放链接加后缀": "",
+ "直接播放直链视频请求头": "",
+ "详情是否Jsoup写法": "1",
+ "类型详情": "",
+ "年代详情": "",
+ "地区详情": "",
+ "演员详情": "",
+ "简介详情": ".book-des&&Text",
+ "线路列表数组规则": "body&&.js_module_list",
+ "线路标题": "h2&&Text",
+ "播放列表数组规则": "body&playlist",
+ "选集列表数组规则": "li",
+ "选集标题链接是否Jsoup写法": "1",
+ "选集标题": "a&&Text",
+ "选集链接": "a&&href",
+ "是否反转选集序列": "0",
+ "选集链接加前缀": "http://m.ysxs8.vip",
+ "选集链接加后缀": "",
+ "分析MacPlayer": "0",
+ "是否开启手动嗅探": "1",
+ "手动嗅探视频链接关键词": ".mp3#.m4a",
+ "手动嗅探视频链接过滤词": ".html#=http"
+}
\ No newline at end of file
diff --git a/tvboxqq/香雅情XYQ/json/玩偶哥哥.json b/tvboxqq/香雅情XYQ/json/玩偶哥哥.json
index 026f31c..8209815 100644
--- a/tvboxqq/香雅情XYQ/json/玩偶哥哥.json
+++ b/tvboxqq/香雅情XYQ/json/玩偶哥哥.json
@@ -6,12 +6,12 @@
"网页编码格式": "UTF-8",
"图片是否需要代理": "否",
"是否开启获取首页数据": "是",
- "首页推荐链接": "http://tvfan.xxooo.cf",
+ "首页推荐链接": "http://wogg.link",
"首页列表数组规则": "body&&.module-items",
"首页片单列表数组规则": ".module-item:not(:matches(饭太硬|公众号))",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
- "分类链接": "http://tvfan.xxooo.cf/index.php/vodshow/{cateId}--{by}------{catePg}---{year}.html",
+ "分类链接": "http://wogg.link/index.php/vodshow/{cateId}--{by}------{catePg}---{year}.html",
"分类名称": "电影&电视剧&综艺&动漫&短剧&音乐空间",
"分类名称替换词": "1&2&4&3&6&5",
//"筛选数据": {},
@@ -41,10 +41,10 @@
"分类片单链接": "a&&href",
"分类片单图片": ".module-item-pic&&img&&data-src",
"分类片单副标题": ".module-item-text&&Text",
- "分类片单链接加前缀": "http://tvfan.xxooo.cf",
+ "分类片单链接加前缀": "http://wogg.link",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$MOBILE_UA",
- "搜索链接": "http://tvfan.xxooo.cf/index.php/vodsearch/{wd}----------{SearchPg}---.html",
+ "搜索链接": "http://wogg.link/index.php/vodsearch/{wd}----------{SearchPg}---.html",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".module-items&&.module-search-item",
@@ -53,7 +53,7 @@
"搜索片单标题": "h3&&Text",
"搜索片单链接": "h3&&a&&href",
"搜索片单副标题": ".video-info&&a&&Text",
- "搜索片单链接加前缀": "http://tvfan.xxooo.cf",
+ "搜索片单链接加前缀": "http://wogg.link",
"搜索片单链接加后缀": "",
"链接是否直接播放": "否",
"直接播放链接加前缀": "",
diff --git a/tvboxqq/香雅情XYQ/json/盘搜索.json b/tvboxqq/香雅情XYQ/json/盘搜索.json
index 324775c..46136cd 100644
--- a/tvboxqq/香雅情XYQ/json/盘搜索.json
+++ b/tvboxqq/香雅情XYQ/json/盘搜索.json
@@ -3,7 +3,7 @@
"搜索链接": "https://www.pansearch.me/search?keyword={wd}",
"POST请求数据": "",
"搜索截取模式": "1",
- "搜索列表数组规则": ".grid&&.items-start:has(a[href*=aliyundrive])",
+ "搜索列表数组规则": ".grid&&.items-start:has(a[href~=ali(pan|yundrive)])",
"搜索片单是否Jsoup写法": "0",
"搜索片单图片": "src=\"&&\"",
"搜索片单标题": "keyword\">&&