import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import"./jsencrypt.js";import"./node-rsa.js";import"./pako.min.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.js";import"./json5.js";import"./jinja.js";const _jinja2=cheerio.jinja2;cheerio.jinja2=function(template,obj){try{return jinja.render(template,obj)}catch(e){console.log("新的jinja2库渲染失败,换回原始cheerio:"+e.message);return _jinja2(template,obj)}};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.51beta5 20241104";const UpdateInfo=[{date:"20241104",title:"drpy更新,增加新特性",version:"3.9.51beta5 20241104",msg:`
1. rule增加 搜索验证标识 属性,可以不定义,默认为 '系统安全验证|请输入验证码'
2. rule增加 searchNoPage 属性,可以不定义,如果定义 1 将关闭该源的搜索翻页功能,超过1页直接返回空
`}];function getUpdateInfo(){return UpdateInfo.map(_o=>{_o.msg=_o.msg.trim().split("\n").map(_it=>_it.trim()).join("\n");return _o})}function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log("本地代理地址:"+getProxyUrl());console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function ocr_demo_test(){let img_base64=`iVBORw0KGgoAAAANSUhEUgAAAIAAAAAoBAMAAADEX+97AAAAG1BMVEXz+/4thQTa7N6QwIFFkyNeokKozqDB3b93sWHFR+MEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABN0lEQVRIie2TQU+DQBCFt9vScvQpxR4xrcSjJCZ67JDGXsX+AdR4B3vpsSYm/m2HXaRLmuySepR3Gdidb/btDAjRq5dT96eCMlfBuzi1QLZUoZy2yz5sOvI+9iomaPEZ6nWnEtxqIyiM1RcAy44GNDhBXUjot/VVNweV1ah68FqWRyjKIOqAcyYF6rGcmpYnHzGt3fycNoMw0d3/THFu7hFSJ/8OXO6iTM8/KSg09obAzIHLO250LgQ0txOZSfgrV4Exdw98uGycJ0ErAeExZGhOmFHV9zHO6qVSj0MpLq7xZON56o++MjlsEgfVhbQWWME+xQX7J4V6zfi9A1Ly9rP1BvEXp+BbVJ/M77n+wfOIDVp51pZ4iBxvmj9AGrtvry6emwfKnVkW+ZRKd5ZNMvob36vXP9YPDmQki8QiCFAAAAAASUVORK5CYII=`;OcrApi.api=OCR_API;let code=OcrApi.classification(img_base64);log("测试验证码图片的ocr识别结果为:"+code)}function rsa_demo_test(){let t1=(new Date).getTime();let pkcs1_public=`
-----BEGIN RSA PUBLIC KEY-----
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
-----END RSA PUBLIC KEY-----
`.trim();let pkcs1_public_pem=`
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
`.trim();let pkcs8_public=`
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
-----END PUBLIC KEY-----`.trim();let pkcs8_public_pem=`
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
`.trim();let pkcs1_private=`
-----BEGIN RSA PRIVATE KEY-----
MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7
ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt
0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ
AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA
hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+
5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS
EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q==
-----END RSA PRIVATE KEY-----
`.trim();let pkcs8_private=`
-----BEGIN PRIVATE KEY-----
MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf
dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v
YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8
KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8
s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl
AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3
rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6
lPxDjezd
-----END PRIVATE KEY-----
`.trim();let data=`
NodeRsa
这是node-rsa 现在修改集成在drpy里使用`.trim();let encryptedWithPublic=NODERSA.encryptRSAWithPublicKey(data,pkcs1_public,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("公钥加密");console.log(encryptedWithPublic);let decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic,pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("私钥解密");console.log(decryptedWithPrivate);let pkcs1_sha256_sign=NODERSA.sign("1",pkcs1_private,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign");console.log(pkcs1_sha256_sign);let pkcs1_sha256_sign_verify=NODERSA.verify("1","Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==",pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign_verify");console.log(pkcs1_sha256_sign_verify);let pkcs1_oaep_sha256=NODERSA.encryptRSAWithPublicKey(data,`-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du
SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm
kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8
PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m
PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb
Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB
-----END RSA PUBLIC KEY-----
`,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:{scheme:"pkcs1_oaep",hash:"sha256"}}});console.log("pkcs1_oaep_sha256");console.log(pkcs1_oaep_sha256);decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==",`-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is
T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S
xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy
3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+
HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA
ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/
zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31
iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l
QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu
eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ
8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9
l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC
WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J
NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0
o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3
ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ
I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i
tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P
vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p
yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC
8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87
HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN
QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51
MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw
m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA==
-----END RSA PRIVATE KEY-----`,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("decryptedWithPrivate");console.log(decryptedWithPrivate);(()=>{let key=new NODERSA.NodeRSA({b:1024});key.setOptions({encryptionScheme:"pkcs1"});let text=`你好drpy node-ras`;let encrypted=key.encrypt(text,"base64");console.log("encrypted: ",encrypted);const decrypted=key.decrypt(encrypted,"utf8");console.log("decrypted: ",decrypted)})();let t2=(new Date).getTime();console.log("rsa_demo_test 测试耗时:"+(t2-t1)+"毫秒")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log(`预处理执行失败:${e.message}`)}}}let rule={};const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36";const PC_UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";const RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|榜|评论";const OCR_RETRY=3;const OCR_API="https://api.nn.ci/ocr/b64/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$|^(data-|url-|src-)/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;const $js={toString(func){let strfun=func.toString();return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/,"js:").replace(/\}$/,"")}};function window_b64(){let b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function btoa(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i<len){c1=str.charCodeAt(i++)&255;if(i==len){out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4);out+="==";break}c2=str.charCodeAt(i++);if(i==len){out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2);out+="=";break}c3=str.charCodeAt(i++);out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2|(c3&192)>>6);out+=b64map.charAt(c3&63)}return out}function atob(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i<len){do{c1=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c1==-1);if(c1==-1)break;do{c2=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c2==-1);if(c2==-1)break;out+=String.fromCharCode(c1<<2|(c2&48)>>4);do{c3=str.charCodeAt(i++)&255;if(c3==61)return out;c3=base64DecodeChars[c3]}while(i<len&&c3==-1);if(c3==-1)break;out+=String.fromCharCode((c2&15)<<4|(c3&60)>>2);do{c4=str.charCodeAt(i++)&255;if(c4==61)return out;c4=base64DecodeChars[c4]}while(i<len&&c4==-1);if(c4==-1)break;out+=String.fromCharCode((c3&3)<<6|c4)}return out}return{atob:atob,btoa:btoa}}if(typeof atob!=="function"||typeof btoa!=="function"){var{atob,btoa}=window_b64()}if(typeof Object.assign!=="function"){Object.assign=function(){let target=arguments[0];for(let i=1;i<arguments.length;i++){let source=arguments[i];for(let key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target}}if(!String.prototype.includes){String.prototype.includes=function(search,start){if(typeof start!=="number"){start=0}if(start+search.length>this.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k<len){if(o[k]===searchElement){return true}k++}return false},enumerable:false})}if(typeof String.prototype.startsWith!=="function"){String.prototype.startsWith=function(prefix){return this.slice(0,prefix.length)===prefix}}if(typeof String.prototype.endsWith!=="function"){String.prototype.endsWith=function(suffix){return this.indexOf(suffix,this.length-suffix.length)!==-1}}Object.defineProperty(Object.prototype,"myValues",{value:function(obj){if(obj==null){throw new TypeError("Cannot convert undefined or null to object")}var res=[];for(var k in obj){if(obj.hasOwnProperty(k)){res.push(obj[k])}}return res},enumerable:false});if(typeof Object.prototype.values!=="function"){Object.defineProperty(Object.prototype,"values",{value:function(obj){if(obj==null){throw new TypeError("Cannot convert undefined or null to object")}var res=[];for(var k in obj){if(obj.hasOwnProperty(k)){res.push(obj[k])}}return res},enumerable:false})}if(typeof Array.prototype.join!=="function"){Object.defineProperty(Array.prototype,"join",{value:function(emoji){emoji=emoji||"";let self=this;let str="";let i=0;if(!Array.isArray(self)){throw String(self)+"is not Array"}if(self.length===0){return""}if(self.length===1){return String(self[0])}i=1;str=this[0];for(;i<self.length;i++){str+=String(emoji)+String(self[i])}return str},enumerable:false})}if(typeof Array.prototype.toReversed!=="function"){Object.defineProperty(Array.prototype,"toReversed",{value:function(){const clonedList=this.slice();const reversedList=clonedList.reverse();return reversedList},enumerable:false})}Object.defineProperty(Array.prototype,"append",{value:Array.prototype.push,enumerable:false});Object.defineProperty(String.prototype,"strip",{value:String.prototype.trim,enumerable:false});Object.defineProperty(String.prototype,"rstrip",{value:function(chars){let regex=new RegExp(chars+"$");return this.replace(regex,"")},enumerable:false});function 是否正版(vipUrl){let flag=new RegExp("qq.com|iqiyi.com|youku.com|mgtv.com|bilibili.com|sohu.com|ixigua.com|pptv.com|miguvideo.com|le.com|1905.com|fun.tv");return flag.test(vipUrl)}function urlDeal(vipUrl){if(!vipUrl){return""}if(!是否正版(vipUrl)){return vipUrl}if(!/miguvideo/.test(vipUrl)){vipUrl=vipUrl.split("#")[0].split("?")[0]}return vipUrl}function setResult(d){if(!Array.isArray(d)){return[]}VODS=[];d.forEach(function(it){let obj={vod_id:it.url||"",vod_name:it.title||"",vod_remarks:it.desc||"",vod_content:it.content||"",vod_pic:it.pic_url||it.img||""};let keys=Object.keys(it);if(keys.includes("tname")){obj.type_name=it.tname||""}if(keys.includes("tid")){obj.type_id=it.tid||""}if(keys.includes("year")){obj.vod_year=it.year||""}if(keys.includes("actor")){obj.vod_actor=it.actor||""}if(keys.includes("director")){obj.vod_director=it.director||""}if(keys.includes("area")){obj.vod_area=it.area||""}VODS.push(obj)});return VODS}function setResult2(res){VODS=res.list||[];return VODS}function setHomeResult(res){if(!res||typeof res!=="object"){return[]}return setResult(res.list)}function rc(js){if(js==="maomi_aes.js"){var a=CryptoJS.enc.Utf8.parse("625222f9149e961d");var t=CryptoJS.enc.Utf8.parse("5efdtf6060e2o330");return{De:function(word){word=CryptoJS.enc.Hex.parse(word);return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(word),a,{iv:t,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)},En:function(word){var Encrypted=CryptoJS.AES.encrypt(word,a,{iv:t,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7});return Encrypted.ciphertext.toString()}}}return{}}function maoss(jxurl,ref,key){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));eval(getCryptoJS());try{var getVideoInfo=function(text){return CryptoJS.AES.decrypt(text,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)};var token_key=key==undefined?"dvyYRQlnPRCMdQSe":key;if(ref){var html=request(jxurl,{headers:{Referer:ref}})}else{var html=request(jxurl)}if(html.indexOf("&btwaf=")!=-1){html=request(jxurl+"&btwaf"+html.match(/&btwaf(.*?)"/)[1],{headers:{Referer:ref}})}var token_iv=html.split('_token = "')[1].split('"')[0];var key=CryptoJS.enc.Utf8.parse(token_key);var iv=CryptoJS.enc.Utf8.parse(token_iv);eval(html.match(/var config = {[\s\S]*?}/)[0]+"");if(!config.url.startsWith("http")){config.url=CryptoJS.AES.decrypt(config.url,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)}return config.url}catch(e){return""}}function urlencode(str){str=(str+"").toString();return encodeURIComponent(str).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A").replace(/%20/g,"+")}function encodeUrl(str){if(typeof encodeURI=="function"){return encodeURI(str)}else{str=(str+"").toString();return encodeURIComponent(str).replace(/%2F/g,"/").replace(/%3F/g,"?").replace(/%3A/g,":").replace(/%40/g,"@").replace(/%3D/g,"=").replace(/%3A/g,":").replace(/%2C/g,",").replace(/%2B/g,"+").replace(/%24/g,"$")}}function base64Encode(text){return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text))}function base64Decode(text){return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text))}function md5(text){return CryptoJS.MD5(text).toString()}function uint8ArrayToBase64(uint8Array){let binaryString=String.fromCharCode.apply(null,Array.from(uint8Array));return btoa(binaryString)}function Utf8ArrayToStr(array){var out,i,len,c;var char2,char3;out="";len=array.length;i=0;while(i<len){c=array[i++];switch(c>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=String.fromCharCode(c);break;case 12:case 13:char2=array[i++];out+=String.fromCharCode((c&31)<<6|char2&63);break;case 14:char2=array[i++];char3=array[i++];out+=String.fromCharCode((c&15)<<12|(char2&63)<<6|(char3&63)<<0);break}}return out}function gzip(str){let arr=pako.gzip(str,{});return uint8ArrayToBase64(arr)}function ungzip(b64Data){let strData=atob(b64Data);const charData=strData.split("").map(function(x){return x.charCodeAt(0)});const binData=new Uint8Array(charData);const data=pako.inflate(binData);return Utf8ArrayToStr(data)}function encodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.encode(input)}return input}function decodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.decode(input)}return input}function getCryptoJS(){return'console.log("CryptoJS已装载");'}const RSA={decode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let privateKey=this.getPrivateKey(key);const decryptor=new JSEncrypt;decryptor.setPrivateKey(privateKey);let uncrypted="";uncrypted=decryptor.decryptUnicodeLong(data);return uncrypted}else{return false}},encode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let publicKey=this.getPublicKey(key);const encryptor=new JSEncrypt;encryptor.setPublicKey(publicKey);let encrypted="";encrypted=encryptor.encryptUnicodeLong(data);return encrypted}else{return false}},fixKey(key,prefix,endfix){if(!key.includes(prefix)){key=prefix+key}if(!key.includes(endfix)){key+=endfix}return key},getPrivateKey(key){let prefix="-----BEGIN RSA PRIVATE KEY-----";let endfix="-----END RSA PRIVATE KEY-----";return this.fixKey(key,prefix,endfix)},getPublicKey(key){let prefix="-----BEGIN PUBLIC KEY-----";let endfix="-----END PUBLIC KEY-----";return this.fixKey(key,prefix,endfix)}};function getProxyUrl(){if(typeof getProxy==="function"){return getProxy(true)}else{return"http://127.0.0.1:9978/proxy?do=js"}}function fixAdM3u8(m3u8_text,m3u8_url,ad_remove){if(!m3u8_text&&!m3u8_url||!m3u8_text&&m3u8_url&&!m3u8_url.startsWith("http")){return""}if(!m3u8_text){log("m3u8_url:"+m3u8_url);m3u8_text=request(m3u8_url)}log("len(m3u8_text):"+m3u8_text.length);if(!ad_remove){return m3u8_text}if(ad_remove.startsWith("reg:")){ad_remove=ad_remove.slice(4)}else if(ad_remove.startsWith("js:")){ad_remove=ad_remove.slice(3)}let m3u8_start=m3u8_text.slice(0,m3u8_text.indexOf("#EXTINF")).trim();let m3u8_body=m3u8_text.slice(m3u8_text.indexOf("#EXTINF"),m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let m3u8_end=m3u8_text.slice(m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let murls=[];let m3_body_list=m3u8_body.split("\n");let m3_len=m3_body_list.length;let i=0;while(i<m3_len){let mi=m3_body_list[i];let mi_1=m3_body_list[i+1];if(mi.startsWith("#EXTINF")){murls.push([mi,mi_1].join("&"));i+=2}else if(mi.startsWith("#EXT-X-DISCONTINUITY")){let mi_2=m3_body_list[i+2];murls.push([mi,mi_1,mi_2].join("&"));i+=3}else{break}}let new_m3u8_body=[];for(let murl of murls){if(ad_remove&&new RegExp(ad_remove).test(murl)){}else{let murl_list=murl.split("&");if(!murl_list[murl_list.length-1].startsWith("http")&&m3u8_url.startsWith("http")){murl_list[murl_list.length-1]=urljoin(m3u8_url,murl_list[murl_list.length-1])}murl_list.forEach(it=>{new_m3u8_body.push(it)})}}new_m3u8_body=new_m3u8_body.join("\n").trim();m3u8_text=[m3u8_start,new_m3u8_body,m3u8_end].join("\n").trim();return m3u8_text}function fixAdM3u8Ai(m3u8_url,headers){let ts=(new Date).getTime();let option=headers?{headers:headers}:{};function b(s1,s2){let i=0;while(i<s1.length){if(s1[i]!==s2[i]){break}i++}return i}function reverseString(str){return str.split("").reverse().join("")}let m3u8=request(m3u8_url,option);m3u8=m3u8.trim().split("\n").map(it=>it.startsWith("#")?it:urljoin(m3u8_url,it)).join("\n");m3u8=m3u8.replace(/\n\n/gi,"\n");let last_url=m3u8.split("\n").slice(-1)[0];if(last_url.length<5){last_url=m3u8.split("\n").slice(-2)[0]}if(last_url.includes(".m3u8")&&last_url!==m3u8_url){m3u8_url=urljoin2(m3u8_url,last_url);log("嵌套的m3u8_url:"+m3u8_url);m3u8=request(m3u8_url,option)}let s=m3u8.trim().split("\n").filter(it=>it.trim()).join("\n");let ss=s.split("\n");let firststr="";let maxl=0;let kk=0;let kkk=2;let secondstr="";for(let i=0;i<ss.length;i++){let s=ss[i];if(!s.startsWith("#")){if(kk==0)firststr=s;if(kk==1)maxl=b(firststr,s);if(kk>1){if(maxl>b(firststr,s)){if(secondstr.length<5)secondstr=s;kkk=kkk+2}else{maxl=b(firststr,s);kkk++}}kk++;if(kk>=20)break}}if(kkk>30)firststr=secondstr;let firststrlen=firststr.length;let ml=Math.round(ss.length/2).toString().length;let maxc=0;let laststr=ss.toReversed().find(x=>{if(!x.startsWith("#")){let k=b(reverseString(firststr),reverseString(x));maxl=b(firststr,x);maxc++;if(firststrlen-maxl<=ml+k||maxc>10){return true}}return false});log("最后一条切片:"+laststr);let ad_urls=[];for(let i=0;i<ss.length;i++){let s=ss[i];if(!s.startsWith("#")){if(b(firststr,s)<maxl){ad_urls.push(s);ss.splice(i-1,2);i=i-2}else{ss[i]=urljoin(m3u8_url,s)}}else{ss[i]=s.replace(/URI=\"(.*)\"/,'URI="'+urljoin(m3u8_url,"$1")+'"')}}log("处理的m3u8地址:"+m3u8_url);log("----广告地址----");log(ad_urls);m3u8=ss.join("\n");log("处理耗时:"+((new Date).getTime()-ts).toString());return m3u8}function forceOrder(lists,key,option){let start=Math.floor(lists.length/2);let end=Math.min(lists.length-1,start+1);if(start>=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];function getQuery(url){try{if(url.indexOf("?")>-1){url=url.slice(url.indexOf("?")+1)}let arr=url.split("#")[0].split("&");const resObj={};arr.forEach(item=>{let arr1=item.split("=");let key=arr1[0];let value=arr1.slice(1).join("=");resObj[key]=value});return resObj}catch(err){log(`getQuery发生错误:${e.message}`);return{}}}function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print(`html对象转文本发生了错误:${e.message}`)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print(`html对象转文本发生了错误:${e.message}`)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.slice(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();let result=defaultParser.pdfh(html,parse);return result},pdfa(html,parse){if(!html||!parse||!parse.trim()){return[]}parse=parse.trim();let result=defaultParser.pdfa(html,parse);print(`pdfa解析${parse}=>${result.length}`);return result},pd(html,parse,base_url){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();base_url=base_url||MY_URL;return defaultParser.pd(html,parse,base_url)}},getParse(p0){if(p0.startsWith("jsp:")){return this.jsp}else if(p0.startsWith("json:")){return this.json}else if(p0.startsWith("jq:")){return this.jq}else{return this.jq}}};const stringify=JSON.stringify;const jsp=parseTags.jsp;const jq=parseTags.jq;function readFile(filePath){filePath=filePath||"./uri.min.js";var fd=os.open(filePath);var buffer=new ArrayBuffer(1024);var len=os.read(fd,buffer,0,1024);console.log(len);let text=String.fromCharCode.apply(null,new Uint8Array(buffer));console.log(text);return text}function dealJson(html){try{html=html.trim();if(!(html.startsWith("{")&&html.endsWith("}")||html.startsWith("[")&&html.endsWith("]"))){html="{"+html.match(/.*?\{(.*)\}/m)[1]+"}"}}catch(e){}try{html=JSON.parse(html)}catch(e){}return html}var OcrApi={api:OCR_API,classification:function(img){let code="";try{log("通过drpy_ocr验证码接口过验证...");let html="";if(this.api.endsWith("drpy/text")){html=request(this.api,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true)}else{html=post(this.api,{body:img})}code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cnt<OCR_RETRY){try{let yzm_url=`${host}/index.php/verify/index.html`;console.log(`验证码链接:${yzm_url}`);let hhtml=request(yzm_url,{withHeaders:true,toBase64:true},true);let json=JSON.parse(hhtml);if(!cookie){let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}function buildUrl(url,obj){obj=obj||{};if(url.indexOf("?")<0){url+="?"}let param_list=[];let keys=Object.keys(obj);keys.forEach(it=>{param_list.push(it+"="+obj[it])});let prs=param_list.join("&");if(keys.length>0&&!url.endsWith("?")){url+="&"}url+=prs;return url}function $require(url){eval(request(url))}function keysToLowerCase(obj){return Object.keys(obj).reduce((result,key)=>{const newKey=key.toLowerCase();result[newKey]=obj[key];return result},{})}function parseQueryString(query){const params={};query.split("&").forEach(function(part){const regex=/^(.*?)=(.*)/;const match=part.match(regex);if(match){const key=decodeURIComponent(match[1]);const value=decodeURIComponent(match[2]);params[key]=value}});return params}function encodeIfContainsSpecialChars(value){const specialChars=":/?#[]@!$'()*+,;=%";if(specialChars.split("").some(char=>value.includes(char))){return encodeURIComponent(value)}return value}function objectToQueryString(obj){const encoded=[];for(let key in obj){if(obj.hasOwnProperty(key)){encoded.push(encodeURIComponent(key)+"="+encodeIfContainsSpecialChars(obj[key]))}}return encoded.join("&")}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA;if(typeof fetch_params==="object"&&fetch_params&&fetch_params.headers){let fetch_headers=keysToLowerCase(fetch_params.headers);if(fetch_headers["user-agent"]){headers["User-Agent"]=fetch_headers["user-agent"]}}}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}if(obj.redirect===false){obj.redirect=0}if(obj.headers.hasOwnProperty("Content-Type")||obj.headers.hasOwnProperty("content-type")){let _contentType=obj.headers["Content-Type"]||obj.headers["content-type"]||"";if(_contentType.includes("application/x-www-form-urlencoded")){log("custom body is application/x-www-form-urlencoded");if(typeof obj.body=="string"){let temp_obj=parseQueryString(obj.body);console.log(JSON.stringify(temp_obj))}}}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj=obj||{};obj.method="POST";return request(url,obj)}function reqCookie(url,obj,all_cookie){obj=obj||{};obj.withHeaders=true;all_cookie=all_cookie||false;let html=request(url,obj);let json=JSON.parse(html);let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");let cookie=setCk?json[setCk]:"";if(Array.isArray(cookie)){cookie=cookie.join(";")}if(!all_cookie){cookie=cookie.split(";")[0]}html=json.body;return{cookie:cookie,html:html}}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i<cnt;i++){classes.push({type_id:urls[i],type_name:names[i]})}}if(homeObj.class_parse){if(homeObj.class_parse.startsWith("js:")){var input=homeObj.MY_URL;try{eval(homeObj.class_parse.replace("js:",""));if(Array.isArray(input)){classes=input}}catch(e){log(`通过js动态获取分类发生了错误:${e.message}`)}}else{let p=homeObj.class_parse.split(";");let p0=p[0];let _ps=parseTags.getParse(p0);let is_json=p0.startsWith("json:");_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;MY_URL=rule.url;if(is_json){try{let cms_cate_url=homeObj.MY_URL.replace("ac=detail","ac=list");let html=homeObj.home_html||getHtml(cms_cate_url);if(html){if(cms_cate_url===homeObj.MY_URL){homeHtmlCache=html}let list=_pdfa(html,p0.replace("json:",""));if(list&&list.length>0){classes=list}}}catch(e){console.log(e.message)}}else if(p.length>=3&&!is_json){try{let html=homeObj.home_html||getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p0);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]&&!homeObj.home_html){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级?rule.一级.split(";"):[];if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log(`首页列表双层定位处理发生错误:${e.message}`)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log(`首页列表单层定位处理发生错误:${e.message}`)}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}url=url.replaceAll("fyclass",cateObj.tid);let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print(`合并不同分类对应的默认筛选出错:${e.message}`)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl,fyclass:cateObj.tid});url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}if(rule.searchNoPage&&Number(searchObj.pg)>1){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级?rule.一级.split(";"):[];let url=searchObj.searchUrl.replaceAll("**",searchObj.wd);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[0]}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",searchObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",searchObj.pg)}}MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){let search_tag=rule.搜索验证标识||"系统安全验证|输入验证码";if(new RegExp(search_tag).test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print(`搜索发生错误:${e.message}`);return"{}"}}if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""))}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();if(!v_title){v_title="线路空"}console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print(`格式化LISTS发生错误:${e.message}`)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print(`js执行lists: 发生错误:${e.message}`)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let list_url_prefix=p.list_url_prefix||"";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i<playFrom.length;i++){let tab_name=playFrom[i];let tab_ext=p.tabs.split(";").length>1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let new_vod_list=[];let tt1=(new Date).getTime();if(typeof pdfl==="function"){new_vod_list=pdfl(html,p1,list_text,list_url,MY_URL);if(list_url_prefix){new_vod_list=new_vod_list.map(it=>it.split("$")[0]+"$"+list_url_prefix+it.split("$").slice(1).join("$"))}}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i<vodList.length;i++){let it=vodList[i];new_vod_list.push(_pdfh(it,list_text).trim()+"$"+list_url_prefix+_pd(it,list_url,MY_URL))}}if(new_vod_list.length>0){new_vod_list=forceOrder(new_vod_list,"",x=>x.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];vod.vod_pic=vod.vod_pic.replace(replace_from,replace_to)}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);try{vod=vodDeal(vod)}catch(e){console.log(`vodDeal发生错误:${e.message}`)}return JSON.stringify({list:[vod]})}function get_tab_index(vod){let obj={};vod.vod_play_from.split("$$$").forEach((it,index)=>{obj[it]=index});return obj}function vodDeal(vod){let vod_play_from=vod.vod_play_from.split("$$$");let vod_play_url=vod.vod_play_url.split("$$$");let tab_removed_list=vod_play_from;let tab_ordered_list=vod_play_from;let tab_renamed_list=vod_play_from;let tab_list=vod_play_from;let play_ordered_list=vod_play_url;if(rule.tab_remove&&rule.tab_remove.length>0||rule.tab_order&&rule.tab_order.length>0){let tab_index_dict=get_tab_index(vod);if(rule.tab_remove&&rule.tab_remove.length>0){tab_removed_list=vod_play_from.filter(it=>!rule.tab_remove.includes(it));tab_list=tab_removed_list}if(rule.tab_order&&rule.tab_order.length>0){let tab_order=rule.tab_order;tab_ordered_list=tab_removed_list.sort((a,b)=>{return(tab_order.indexOf(a)===-1?9999:tab_order.indexOf(a))-(tab_order.indexOf(b)===-1?9999:tab_order.indexOf(b))});tab_list=tab_ordered_list}play_ordered_list=tab_list.map(it=>vod_play_url[tab_index_dict[it]])}if(rule.tab_rename&&typeof rule.tab_rename==="object"&Object.keys(rule.tab_rename).length>0){tab_renamed_list=tab_list.map(it=>rule.tab_rename[it]||it);tab_list=tab_renamed_list}vod.vod_play_from=tab_list.join("$$$");vod.vod_play_url=play_ordered_list.join("$$$");return vod}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;var MY_FLAG=playObj.flag;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;var flag=MY_FLAG;let common_play={parse:SPECIAL_URL.test(input)||/^(push:)/.test(input)?0:1,url:input,flag:flag,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.trim();if(lazy_code.startsWith("js:")){lazy_code=lazy_code.replace("js:","").trim()}print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:SPECIAL_URL.test(input)||/^(push:)/.test(input)?0:1,jx:tellIsJx(input),url:input}}catch(e){print(`js免嗅错误:${e.message}`);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length>=3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log(`执行嗅探规则发生错误:${e.message}`);return false}}}function getOriginalJs(js_code){let current_match=/var rule|[\u4E00-\u9FA5]+|function|let |var |const |\(|\)|"|'/;if(current_match.test(js_code)){return js_code}let rsa_private_key="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqin/jUpqM6+fgYP/oMqj9zcdHMM0mEZXLeTyixIJWP53lzJV2N2E3OP6BBpUmq2O1a9aLnTIbADBaTulTNiOnVGoNG58umBnupnbmmF8iARbDp2mTzdMMeEgLdrfXS6Y3VvazKYALP8EhEQykQVarexR78vRq7ltY3quXx7cgI0ROfZz5Sw3UOLQJ+VoWmwIxu9AMEZLVzFDQN93hzuzs3tNyHK6xspBGB7zGbwCg+TKi0JeqPDrXxYUpAz1cQ/MO+Da0WgvkXnvrry8NQROHejdLVOAslgr6vYthH9bKbsGyNY3H+P12kcxo9RAcVveONnZbcMyxjtF5dWblaernAgMBAAECggEAGdEHlSEPFmAr5PKqKrtoi6tYDHXdyHKHC5tZy4YV+Pp+a6gxxAiUJejx1hRqBcWSPYeKne35BM9dgn5JofgjI5SKzVsuGL6bxl3ayAOu+xXRHWM9f0t8NHoM5fdd0zC3g88dX3fb01geY2QSVtcxSJpEOpNH3twgZe6naT2pgiq1S4okpkpldJPo5GYWGKMCHSLnKGyhwS76gF8bTPLoay9Jxk70uv6BDUMlA4ICENjmsYtd3oirWwLwYMEJbSFMlyJvB7hjOjR/4RpT4FPnlSsIpuRtkCYXD4jdhxGlvpXREw97UF2wwnEUnfgiZJ2FT/MWmvGGoaV/CfboLsLZuQKBgQDTNZdJrs8dbijynHZuuRwvXvwC03GDpEJO6c1tbZ1s9wjRyOZjBbQFRjDgFeWs9/T1aNBLUrgsQL9c9nzgUziXjr1Nmu52I0Mwxi13Km/q3mT+aQfdgNdu6ojsI5apQQHnN/9yMhF6sNHg63YOpH+b+1bGRCtr1XubuLlumKKscwKBgQDOtQ2lQjMtwsqJmyiyRLiUOChtvQ5XI7B2mhKCGi8kZ+WEAbNQcmThPesVzW+puER6D4Ar4hgsh9gCeuTaOzbRfZ+RLn3Aksu2WJEzfs6UrGvm6DU1INn0z/tPYRAwPX7sxoZZGxqML/z+/yQdf2DREoPdClcDa2Lmf1KpHdB+vQKBgBXFCVHz7a8n4pqXG/HvrIMJdEpKRwH9lUQS/zSPPtGzaLpOzchZFyQQBwuh1imM6Te+VPHeldMh3VeUpGxux39/m+160adlnRBS7O7CdgSsZZZ/dusS06HAFNraFDZf1/VgJTk9BeYygX+AZYu+0tReBKSs9BjKSVJUqPBIVUQXAoGBAJcZ7J6oVMcXxHxwqoAeEhtvLcaCU9BJK36XQ/5M67ceJ72mjJC6/plUbNukMAMNyyi62gO6I9exearecRpB/OGIhjNXm99Ar59dAM9228X8gGfryLFMkWcO/fNZzb6lxXmJ6b2LPY3KqpMwqRLTAU/zy+ax30eFoWdDHYa4X6e1AoGAfa8asVGOJ8GL9dlWufEeFkDEDKO9ww5GdnpN+wqLwePWqeJhWCHad7bge6SnlylJp5aZXl1+YaBTtOskC4Whq9TP2J+dNIgxsaF5EFZQJr8Xv+lY9lu0CruYOh9nTNF9x3nubxJgaSid/7yRPfAGnsJRiknB5bsrCvgsFQFjJVs=";let decode_content="";function aes_decrypt(data){let key=CryptoJS.enc.Hex.parse("686A64686E780A0A0A0A0A0A0A0A0A0A");let iv=CryptoJS.enc.Hex.parse("647A797964730A0A0A0A0A0A0A0A0A0A");let encrypted=CryptoJS.AES.decrypt({ciphertext:CryptoJS.enc.Base64.parse(data)},key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);return encrypted}let error_log=false;function logger(text){if(error_log){log(text)}}let decode_funcs=[text=>{try{return ungzip(text)}catch(e){logger("非gzip加密");return""}},text=>{try{return base64Decode(text)}catch(e){logger("非b64加密");return""}},text=>{try{return aes_decrypt(text)}catch(e){logger("非aes加密");return""}},text=>{try{return RSA.decode(text,rsa_private_key,null)}catch(e){logger("非rsa加密");return""}}];let func_index=0;while(!current_match.test(decode_content)){decode_content=decode_funcs[func_index](js_code);func_index++;if(func_index>=decode_funcs.length){break}}return decode_content}function runMain(main_func_code,arg){let mainFunc=function(){return""};try{eval(main_func_code+"\nmainFunc=main;");return mainFunc(arg)}catch(e){log(`执行main_funct发生了错误:${e.message}`);return""}}function init(ext){console.log("init");rule={};rule_fetch_params={};fetch_params=null;try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){let is_file=ext.startsWith("file://");if(ext.startsWith("http")||is_file){let query=getQuery(ext);if(is_file){ext=ext.split("?")[0]}let js=request(ext,{method:"GET"});if(js){js=getOriginalJs(js);eval("(function(){"+js.replace("var rule","rule")+"})()")}if(query.type==="url"&&query.params){if(is_file&&/^http/.test(query.params)){rule.params=query.params}else{rule.params=urljoin(ext,query.params)}}else if(query.params){rule.params=query.params}}else{ext=getOriginalJs(ext);eval("(function(){"+ext.replace("var rule","rule")+"})()")}}else{console.log(`规则加载失败,不支持的规则类型:${typeof ext}`);return}rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:${e.message}`)}}if(rule["模板"]==="自动"){try{let host_headers=rule["headers"]||{};let host_html=getCode(HOST,{headers:host_headers});let match_muban="";let muban_keys=Object.keys(muban).filter(it=>!/默认|短视2|采集1/.test(it));for(let muban_key of muban_keys){try{let host_data=JSON.parse(home({},host_html,muban[muban_key].class_parse));if(host_data.class&&host_data.class.length>0){match_muban=muban_key;console.log(`自动匹配模板:【${muban_key}】`);break}}catch(e){console.log(`自动匹配模板:【${muban_key}】错误:${e.message}`)}}if(match_muban){muban["自动"]=muban[match_muban];if(rule["模板修改"]&&rule["模板修改"].startsWith("js:")){eval(rule["模板修改"].replace("js:","").trim())}}else{delete rule["模板"]}}catch(e){delete rule["模板"]}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.类型=rule.类型||"影视";rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.homeUrl=cheerio.jinja2(rule.homeUrl,{rule:rule});rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}if(rule.searchUrl.includes("[")&&rule.searchUrl.includes("]")&&!rule.searchUrl.includes("#")){let u1=rule.searchUrl.split("[")[0];let u2=rule.searchUrl.split("[")[1].split("]")[0];rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.searchUrl}else{rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl}rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.图片替换=rule.图片替换||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";if(!rule.hasOwnProperty("sniffer")){rule.sniffer=false}rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.sniffer&&!rule.isVideo){rule.isVideo="http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*|http((?!http).)*?obj/tos*"}rule.tab_remove=rule.hasOwnProperty("tab_remove")?rule.tab_remove:[];rule.tab_order=rule.hasOwnProperty("tab_order")?rule.tab_order:[];rule.tab_rename=rule.hasOwnProperty("tab_rename")?rule.tab_rename:{};if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}else if(k.toLowerCase()==="cookie"){let v=rule.headers[k];if(v&&v.startsWith("http")){console.log(v);try{v=fetch(v);console.log(v);rule.headers[k]=v}catch(e){console.log(`从${v}获取cookie发生错误:${e.message}`)}}}}}catch(e){console.log(`处理headers发生错误:${e.message}`)}}else{rule.headers={}}oheaders=deepCopy(rule.headers);rule_fetch_params={headers:rule.headers,timeout:rule.timeout,encoding:rule.encoding};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log(`init_test发生错误:${e.message}`)}}let homeHtmlCache=undefined;function home(filter,home_html,class_parse){console.log("home");home_html=home_html||"";class_parse=class_parse||"";if(typeof rule.filter==="string"&&rule.filter.trim().length>0){try{let filter_json=ungzip(rule.filter.trim());rule.filter=JSON.parse(filter_json)}catch(e){rule.filter={}}}let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:class_parse||rule.class_parse||"",cate_exclude:rule.cate_exclude,home_html:home_html};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";log("orId:"+orId);if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith("js:")){rule.proxy_rule=rule.proxy_rule.replace("js:","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("开始执行辅助嗅探代理规则...")}return enable_sniffer}function isVideo(url){let t=0;let is_video;if(rule.isVideo&&rule.isVideo.trim()){is_video=rule.isVideo.trim()}if(is_video.startsWith("js:")){is_video=is_video.replace("js:","");t=1}let isVideoObj={url:url,isVideo:is_video,t:t};let result=isVideoParse(isVideoObj);if(result){log("成功执行辅助嗅探规则并检测到视频地址:\n"+rule.isVideo)}return result}function getRule(key){return key?rule[key]||"":rule}function deepCopy(_obj){return JSON.parse(JSON.stringify(_obj))}function matchesAll(str,pattern,flatten){if(!pattern.global){pattern=new RegExp(pattern.source,"g"+(pattern.ignoreCase?"i":"")+(pattern.multiline?"m":""))}var matches=[];var match;while((match=pattern.exec(str))!==null){matches.push(match)}return flatten?matches.flat():matches}function stringUtils(){Object.defineProperties(String.prototype,{replaceX:{value:function(regex,replacement){let matches=matchesAll(this,regex,true);if(matches&&matches.length>1){const hasCaptureGroup=/\$\d/.test(replacement);if(hasCaptureGroup){return this.replace(regex,m=>m.replace(regex,replacement))}else{return this.replace(regex,(m,p1)=>m.replace(p1,replacement))}}return this.replace(regex,replacement)},configurable:true,enumerable:false,writable:true},parseX:{get:function(){try{return JSON.parse(this)}catch(e){console.log(e.message);return this.startsWith("[")?[]:{}}},configurable:true,enumerable:false}})}function cut(text,start,end,method,All){let result="";let c=(t,s,e)=>{let result="";let rs=[];let results=[];try{let lr=new RegExp(String.raw`${s}`.toString());let rr=new RegExp(String.raw`${e}`.toString());const segments=t.split(lr);if(segments.length<2)return"";let cutSegments=segments.slice(1).map(segment=>{let splitSegment=segment.split(rr);return splitSegment.length<2?undefined:splitSegment[0]+e}).filter(f=>f);if(All){return`[${cutSegments.join(",")}]`}else{return cutSegments[0]}}catch(e){console.log(`Error cutting text:${e.message}`)}return result};result=c(text,start,end);stringUtils();if(method&&typeof method==="function"){result=method(result)}return result}function DRPY(){return{runMain:runMain,getRule:getRule,init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai}}export default{runMain:runMain,getRule:getRule,init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai,DRPY:DRPY};
var rule = {
title: "斗鱼直播",
host: "https://m.douyu.com",
homeUrl: "/api/home/mix",
url: "/api/room/list?page=fypage&type=fyfilter",
filterable: 1,
filter_url: "{{fl.cateId}}",
filter: {
yl: [{
key: "cateId",
name: "分类",
value: [{
n: "原创IP",
v: "ip"
}, {
n: "一起看",
v: "yqk"
}, {
n: "二次元",
v: "ecy"
}, {
n: "音乐",
v: "music"
}, {
n: "户外",
v: "HW"
}, {
n: "美食",
v: "ms"
}, {
n: "心动派对",
v: "xdpd"
}, {
n: "音遇恋人",
v: "yinyu"
}, {
n: "星秀",
v: "xingxiu"
}, {
n: "心动FM",
v: "dtxs"
}, {
n: "娱乐推荐",
v: "yltj"
}, {
n: "新选",
v: "xinxuan"
}]
}],
PCgame: [{
key: "cateId",
name: "分类",
value: [{
n: "英雄联盟",
v: "LOL"
}, {
n: "热门游戏",
v: "rmyx"
}, {
n: "穿越火线",
v: "CF"
}, {
n: "重生边缘",
v: "CSBYOL"
}, {
n: "无畏契约",
v: "VALORANT"
}, {
n: "CFHD",
v: "CFHD"
}, {
n: "命运方舟",
v: "LostArk"
}, {
n: "DNF",
v: "DNF"
}, {
n: "DOTA2",
v: "DOTA2"
}, {
n: "使命召唤",
v: "COD"
}, {
n: "炉石传说",
v: "How"
}, {
n: "CS2",
v: "CounterStrike"
}, {
n: "lol云顶之弈",
v: "ydzhy"
}, {
n: "魔兽争霸",
v: "mszb"
}, {
n: "魔兽怀旧服",
v: "wowclassic"
}, {
n: "全民街篮",
v: "qmjl"
}, {
n: "自走棋",
v: "dota2rpg"
}, {
n: "传奇",
v: "cq"
}, {
n: "跑跑卡丁车",
v: "Popkart"
}, {
n: "网易游戏",
v: "wyyx"
}, {
n: "星际争霸",
v: "SC"
}, {
n: "守望先锋",
v: "Overwatch"
}, {
n: "DOTA",
v: "DOTA"
}, {
n: "魔兽世界",
v: "WOW"
}, {
n: "剑网3",
v: "JX3"
}, {
n: "魔域",
v: "EudemonsOnline"
}, {
n: "我的世界",
v: "MC"
}, {
n: "超激斗梦境",
v: "cjdmj"
}, {
n: "冒险岛",
v: "mxd"
}, {
n: "三国杀",
v: "sanguosha"
}, {
n: "梦幻西游",
v: "MHXYOL"
}, {
n: "天涯明月刀",
v: "tianya"
}, {
n: "街头篮球",
v: "jtlq"
}, {
n: "NBA2KOL2",
v: "NBA2KOL2"
}, {
n: "QQ飞车端游",
v: "qqfcdy"
}, {
n: "战地之王",
v: "AVA"
}, {
n: "军事游戏",
v: "jsyx"
}, {
n: "棋牌娱乐",
v: "qipai"
}, {
n: "FC ONLINE",
v: "FCOL"
}, {
n: "热门网游",
v: "rmwy"
}, {
n: "卡拉彼丘",
v: "klbq"
}, {
n: "诛仙世界",
v: "zxsj"
}, {
n: "千古风流",
v: "qgflpc"
}, {
n: "APEX",
v: "APEX"
}, {
n: "流放之路POE",
v: "PathofExile"
}, {
n: "剑网3缘起",
v: "JW3YQ"
}, {
n: "逆水寒",
v: "nsh"
}, {
n: "风暴英雄",
v: "HOTS"
}, {
n: "逆战",
v: "NZ"
}, {
n: "坦克世界",
v: "TKSJ"
}, {
n: "战舰世界",
v: "wfws"
}, {
n: "巫师之昆特牌",
v: "wszktp"
}, {
n: "反恐精英Online",
v: "CS"
}, {
n: "暗黑破坏神",
v: "DIABLO"
}, {
n: "梦三国2",
v: "msg2"
}, {
n: "传奇世界",
v: "cqsj"
}, {
n: "方舟:生存进化",
v: "fzscjh"
}, {
n: "神武4电脑版",
v: "swdnb"
}, {
n: "群雄逐鹿",
v: "qxzl"
}, {
n: "堡垒之夜",
v: "blzy"
}, {
n: "无限法则",
v: "roe"
}, {
n: "问道电脑版",
v: "wddnb"
}, {
n: "西山居游戏",
v: "Seasun"
}, {
n: "最终幻想14",
v: "FF14"
}, {
n: "战意",
v: "WYZY"
}, {
n: "剑灵",
v: "BladeSoul"
}, {
n: "星际战甲",
v: "Warframe"
}, {
n: "龙之谷",
v: "DragonNest"
}, {
n: "铁甲雄兵",
v: "tjxb"
}, {
n: "古剑奇谭网络版",
v: "gjqtwlb"
}, {
n: "轩辕传奇",
v: "XYCQ"
}, {
n: "神途",
v: "shentu"
}, {
n: "激战2",
v: "GuildWars2"
}, {
n: "高达文化区",
v: "gdyxq"
}, {
n: "忍者村大战2",
v: "rzcdz2"
}, {
n: "RPG网游专区",
v: "rpgwyzq"
}, {
n: "诛仙3",
v: "zhuxian3"
}, {
n: "笑傲江湖OL",
v: "xajhol"
}, {
n: "冒险岛2",
v: "MXD2"
}, {
n: "超击突破",
v: "SuperPeople"
}, {
n: "无尽战区",
v: "WJZQ"
}, {
n: "斗战神",
v: "dzs"
}, {
n: "永恒之塔",
v: "AION"
}, {
n: "九阴真经",
v: "JYZJ"
}, {
n: "FPS综合网游",
v: "FPSOL"
}, {
n: "劲舞团",
v: "jwt"
}, {
n: "天下",
v: "tianxai"
}, {
n: "泡泡堂",
v: "ppt"
}, {
n: "武侠乂",
v: "wxy"
}, {
n: "音乐游戏",
v: "MG"
}, {
n: "新倩女幽魂",
v: "ONLINE"
}, {
n: "天谕",
v: "tianyu"
}, {
n: "征途2",
v: "zhengtu2"
}, {
n: "QQ炫舞",
v: "qqxw"
}, {
n: "泰亚史诗",
v: "tyss"
}, {
n: "怪物猎人ol",
v: "MHol"
}, {
n: "手工星球",
v: "sgxq"
}, {
n: "星战前夜:晨曦",
v: "EVE"
}, {
n: "热血传奇:本源",
v: "rxcqhjsgb"
}, {
n: "枪火重生",
v: "qhcs"
}, {
n: "彩虹岛",
v: "CHD"
}, {
n: "御龙在天",
v: "YLZT"
}, {
n: "英魂之刃",
v: "YHZR"
}, {
n: "自由篮球",
v: "ZYLQ"
}, {
n: "洛奇英雄传",
v: "LQYXZ"
}, {
n: "封印者",
v: "FYZ"
}, {
n: "合金弹头",
v: "HJDT"
}, {
n: "新英雄年代",
v: "XYXSD"
}, {
n: "星尘传说",
v: "XCCS"
}, {
n: "盛趣游戏",
v: "SQYX"
}, {
n: "新热血英豪",
v: "XRXYH"
}, {
n: "沙盒游戏",
v: "SHYX"
}, {
n: "我的世界:地下城",
v: "MD"
}, {
n: "恐鬼症",
v: "KGZ"
}, {
n: "领地人生",
v: "LDRS"
}, {
n: "梦塔防",
v: "TDOTK"
}, {
n: "大话西游2",
v: "dhxy2"
}, {
n: "猎人",
v: "lr"
}, {
n: "热血江湖online",
v: "rxjhol"
}, {
n: "千年3",
v: "qn3"
}, {
n: "逍遥情缘",
v: "xyqy"
}, {
n: "快乐西游",
v: "klxy"
}, {
n: "鹿鼎记",
v: "ldj"
}, {
n: "新桃花源记",
v: "xthyj"
}, {
n: "疾风之刃电脑版",
v: "jfzr1"
}, {
n: "武魂2电脑版",
v: "wh2pc"
}, {
n: "奇迹世界sun",
v: "qjsjsun"
}, {
n: "剑侠世界2电脑版",
v: "jxsj2pc"
}, {
n: "斩魂",
v: "zhpc"
}, {
n: "大唐2",
v: "dt2pc"
}, {
n: "蜀山:初章",
v: "ssczpc"
}, {
n: "狼人对决网游",
v: "lrdjpc"
}, {
n: "武林群侠传",
v: "wlqxzpc"
}, {
n: "飘流幻境",
v: "plhjpc"
}, {
n: "破天一剑",
v: "ptyj"
}, {
n: "四国军棋",
v: "sgjq"
}, {
n: "新大话西游3",
v: "xy3"
}, {
n: "装甲战争",
v: "zjzz"
}, {
n: "暴雪游戏综合",
v: "g_bliz"
}, {
n: "长尾4部虚拟分区",
v: "cw4bxnfq"
}, {
n: "燕云十六声",
v: "WHEREWINDSMEET"
}, {
n: "THE FINALS",
v: "THEFINALS"
}, {
n: "NBA2K Online",
v: "NBA2KOL"
}, {
n: "塔瑞斯世界",
v: "Tarisland"
}, {
n: "跑跑卡丁车:漂移",
v: "KartRiderDrift"
}, {
n: "传奇永恒",
v: "EternalLegend"
}, {
n: "全境封锁2",
v: "TheDivision2"
}, {
n: "盛趣传奇",
v: "sqcq"
}, {
n: "火爆热游",
v: "hbry"
}, {
n: "火爆传奇",
v: "hbcq"
}]
}],
djry: [{
key: "cateId",
name: "分类",
value: [{
n: "主机游戏",
v: "TVgame"
}, {
n: "刺客信条:英灵殿",
v: "AC"
}, {
n: "马里奥制造",
v: "Mario"
}, {
n: "逃离塔科夫",
v: "EFT"
}, {
n: "命运2",
v: "MY2"
}, {
n: "恐怖游戏",
v: "Horror"
}, {
n: "荒野大镖客",
v: "hydbk"
}, {
n: "灵魂筹码",
v: "lhcm"
}, {
n: "骑马与砍杀",
v: "MountAndBlade"
}, {
n: "只狼",
v: "ZL"
}, {
n: "格斗游戏",
v: "FTG"
}, {
n: "饥荒",
v: "DontStarve"
}, {
n: "全境封锁",
v: "qjfs"
}, {
n: "怀旧游戏",
v: "classic"
}, {
n: "NBA2K",
v: "NBA2K"
}, {
n: "八方旅人",
v: "OT"
}, {
n: "血污:夜之仪式",
v: "Blood"
}, {
n: "人类一败涂地",
v: "Human"
}, {
n: "环世界",
v: "RimWorld"
}, {
n: "古墓丽影",
v: "gmly"
}, {
n: "鬼泣",
v: "DMC"
}, {
n: "往日不再",
v: "WRBZ"
}, {
n: "仙剑奇侠传",
v: "PAL"
}, {
n: "神秘海域",
v: "Uncharted"
}, {
n: "塞尔达系列",
v: "TLoZ"
}, {
n: "僵尸世界大战",
v: "WWZ"
}, {
n: "足球游戏",
v: "zq"
}, {
n: "橙光",
v: "cg"
}, {
n: "了不起的修仙模拟器",
v: "ACS"
}, {
n: "女神异闻录",
v: "P5"
}, {
n: "超级马里奥",
v: "SMO"
}, {
n: "三国志系列",
v: "Sangokushi"
}, {
n: "最终幻想",
v: "FF"
}, {
n: "中土世界:战争之影",
v: "MiddleEarth"
}, {
n: "流放者柯南",
v: "Conan"
}, {
n: "三国群英传",
v: "SANGO"
}, {
n: "无主之地",
v: "Bor"
}, {
n: "辐射",
v: "fs"
}, {
n: "SCUM",
v: "Scum"
}, {
n: "文明",
v: "CVI"
}, {
n: "仁王",
v: "NIOH"
}, {
n: "缺氧",
v: "ONI"
}, {
n: "全面吃鸡模拟器",
v: "TAB"
}, {
n: "古剑奇谭",
v: "GuJian3"
}, {
n: "皇牌空战",
v: "hpkz"
}, {
n: "体育游戏",
v: "tyyx"
}, {
n: "海岛大亨",
v: "hddh"
}, {
n: "碧海黑帆",
v: "klhdt"
}, {
n: "植物大战僵尸:花园战争系列",
v: "PvsZ"
}, {
n: "蜘蛛侠",
v: "Spide"
}, {
n: "勇者斗恶龙:建造者2",
v: "DQB2"
}, {
n: "遗迹:灰烬重生",
v: "Rem"
}, {
n: "血源",
v: "BB"
}, {
n: "旺达与巨像",
v: "SotC"
}, {
n: "死亡搁浅",
v: "DS"
}, {
n: "模拟人生",
v: "Sims"
}, {
n: "空洞骑士",
v: "HKS"
}, {
n: "胡闹厨房",
v: "Overcooked"
}, {
n: "地铁:离去",
v: "ME"
}, {
n: "生死狙击2",
v: "ssjjtwo"
}, {
n: "三国战纪",
v: "sgzj"
}, {
n: "怀旧FC",
v: "edwcy"
}, {
n: "经典单机",
v: "jddj"
}, {
n: "英雄无敌",
v: "HoMM"
}, {
n: "街机游戏",
v: "jjyx"
}, {
n: "合金装备",
v: "MetalGear"
}, {
n: "红色警戒",
v: "hsjj"
}, {
n: "镜之边缘",
v: "MsE"
}, {
n: "勿忘我",
v: "Remw"
}, {
n: "火焰纹章系列",
v: "FireEmblem"
}, {
n: "星露谷物语",
v: "Stardew"
}, {
n: "火炬之光",
v: "Torchlight"
}, {
n: "赛博朋克2077",
v: "Cyberpunk"
}, {
n: "中国式家长",
v: "CP"
}, {
n: "精灵宝可梦系列",
v: "Pokemon"
}, {
n: "尼尔:机械纪元",
v: "NieR"
}, {
n: "无人深空",
v: "NMS"
}, {
n: "EVOTINCTION",
v: "EVOTINCTION"
}, {
n: "GT赛车7",
v: "GT"
}, {
n: "超级机器人大战",
v: "SRW"
}, {
n: "这是我的战争",
v: "TWoM"
}, {
n: "杀戮尖塔",
v: "sljt"
}, {
n: "冰汽时代",
v: "Frostpunk"
}, {
n: "帝国时代",
v: "AoEIV"
}, {
n: "死亡空间",
v: "swkj"
}, {
n: "凯瑟琳Full Body",
v: "CFB"
}, {
n: "足球经理",
v: "Football"
}, {
n: "雨中冒险",
v: "RoR"
}, {
n: "亿万僵尸",
v: "Billions"
}, {
n: "武装突袭",
v: "ArmA"
}, {
n: "石油大亨",
v: "Oil"
}, {
n: "欧洲卡车模拟器",
v: "Truck"
}, {
n: "美国逃亡者",
v: "Fugitive"
}, {
n: "漫漫长夜",
v: "mmcy"
}, {
n: "永恒轮回",
v: "Survival"
}, {
n: "孤岛惊魂",
v: "FarCry"
}, {
n: "都市:天际线",
v: "Skylines"
}, {
n: "盗贼之海",
v: "hdzh"
}, {
n: "Dayz",
v: "DayZ"
}, {
n: "60秒",
v: "60S"
}, {
n: "俄罗斯钓鱼",
v: "RF"
}, {
n: "猎人:荒野的召唤",
v: "theHunter"
}, {
n: "恐怖黎明",
v: "GD"
}, {
n: "看门狗",
v: "kmg"
}, {
n: "真三国无双",
v: "DW"
}, {
n: "战斗砖块剧场",
v: "BT"
}, {
n: "泰拉瑞亚",
v: "Terraria"
}, {
n: "异星工厂",
v: "Factorio"
}, {
n: "UFC",
v: "UFC"
}, {
n: "底特律:变人",
v: "Detroit"
}, {
n: "恶魔城",
v: "Castlevania"
}, {
n: "毁灭战士",
v: "Doom"
}, {
n: "火影忍者:究极忍者风暴",
v: "Naruto"
}, {
n: "坎巴拉太空计划",
v: "Kerbal"
}, {
n: "龙珠:超宇宙",
v: "DBX"
}, {
n: "马里奥赛车",
v: "MarioKart"
}, {
n: "欧陆风云",
v: "EU"
}, {
n: "乞丐模拟器",
v: "HoboToughLife"
}, {
n: "小偷模拟器",
v: "ThiefSimulator"
}, {
n: "逆转裁判",
v: "AceA"
}, {
n: "超越光速",
v: "FTL"
}, {
n: "植物大战僵尸",
v: "PvZ"
}, {
n: "游戏开发者",
v: "GGM"
}, {
n: "最后的绿洲",
v: "LO"
}, {
n: "大富翁",
v: "RichMan"
}, {
n: "反恐精英",
v: "fkjy"
}, {
n: "英雄连",
v: "yxl"
}, {
n: "永劫无间",
v: "NB"
}, {
n: "初音未来:歌姬计划",
v: "MIKU"
}, {
n: "部落与弯刀",
v: "BLYWD"
}, {
n: "一起开火车!",
v: "Unrailed"
}, {
n: "霓虹深渊",
v: "NA"
}, {
n: "主机其他游戏",
v: "OG"
}, {
n: "战场兄弟",
v: "ZCXD"
}, {
n: "地狱潜者",
v: "DYQZ"
}, {
n: "地下城",
v: "dxc"
}, {
n: "人间地狱",
v: "RJDY"
}, {
n: "temtem",
v: "temtem"
}, {
n: "弹丸论破",
v: "dwlp"
}, {
n: "皇家美食",
v: "HJMS"
}, {
n: "基佬大乱斗",
v: "jldld"
}, {
n: "僵尸毁灭工程",
v: "jshmgc"
}, {
n: "岛屿生存者",
v: "Sur"
}, {
n: "冬日计划",
v: "drjh"
}, {
n: "四海兄弟",
v: "shxd"
}, {
n: "创世理想乡",
v: "Craftopia"
}, {
n: "柯娜:精神之桥",
v: "Kena"
}, {
n: "幽灵线:东京",
v: "GTO"
}, {
n: "Solar Ash",
v: "Ash"
}, {
n: "BUGSNAX",
v: "BUGSNAX"
}, {
n: "生化危机4重制版",
v: "ResidentEvil"
}, {
n: "Grounded",
v: "Grounded"
}, {
n: "Superliminal",
v: "Superliminal"
}, {
n: "Omno",
v: "Omno"
}, {
n: "Röki",
v: "Roki"
}, {
n: "Undungeon",
v: "Undungeon"
}, {
n: "糖豆人",
v: "FallGuys"
}, {
n: "渡神纪",
v: "Gods"
}, {
n: "Aeolis Tournament",
v: "Aeolis"
}, {
n: "猛兽派对",
v: "Animals"
}, {
n: "Olija",
v: "Olija"
}, {
n: "Creaks",
v: "Creaks"
}, {
n: "暗影火炬城",
v: "FIST"
}, {
n: "阿尔比恩",
v: "Albion"
}, {
n: "Uragun",
v: "Uragun"
}, {
n: "戴森球计划",
v: "DSP"
}, {
n: "Muse Dash",
v: "MuseDash"
}, {
n: "恐惧之间",
v: "Fearsurrounds"
}, {
n: "孤岛惊魂6",
v: "FarCry6"
}, {
n: "怪物猎人",
v: "MonsterHunterRise"
}, {
n: "黑神话:悟空",
v: "BlackMythWuKong"
}, {
n: "仁王2",
v: "Nioh2"
}, {
n: "三国群英传8",
v: "TheThreeKingdoms8"
}, {
n: "三国志14",
v: "THREEKINGDOMSXIV"
}, {
n: "杀手3",
v: "Hitman3"
}, {
n: "双人成行",
v: "ittakestwo"
}, {
n: "Scrapnaut",
v: "Scrapnaut"
}, {
n: "租房达人",
v: "TheTenants"
}, {
n: "狙击手:幽灵战士契约2",
v: "SniperContracts2"
}, {
n: "全面战争",
v: "TotalWarWARHAMMER"
}, {
n: "复体",
v: "TheComplex"
}, {
n: "战争机器:战术小队",
v: "GearsTactics"
}, {
n: "海绵宝宝:比奇堡的冒险",
v: "BattleforBikini"
}, {
n: "分离",
v: "Disintegration"
}, {
n: "奇妙探险队2",
v: "CuriousExpedition2"
}, {
n: "刺客信条:奥德赛",
v: "Odyssey"
}, {
n: "丧尸围城4",
v: "DeadRising4"
}, {
n: "星球大战:前线",
v: "Battlefront"
}, {
n: "Moonray",
v: "Moonray"
}, {
n: "灵魂旅人",
v: "SpiritFarerlhlr"
}, {
n: "面容",
v: "Visage"
}, {
n: "车祸现场模拟器",
v: "Accident"
}, {
n: "破门而入2:北方特遣队",
v: "DoorKickers2"
}, {
n: "俄罗斯方块效应:连接",
v: "TetrisEffect"
}, {
n: "SD高达G世纪:起源",
v: "SDGundamG"
}, {
n: "东方计划:不可思议的幻想乡",
v: "TouHou"
}, {
n: "Fate/EXTELLA",
v: "FateEXTELLA"
}, {
n: "临终:重生试炼",
v: "DYINGReborn"
}, {
n: "虚拟现实乐园",
v: "VRWorlds"
}, {
n: "苍翼默示录:神观之梦",
v: "CentralFiction"
}, {
n: "晚班",
v: "LateShift"
}, {
n: "子弹风暴",
v: "Bulletstorm"
}, {
n: "巡警",
v: "BeatCop"
}, {
n: "耻辱之日",
v: "DayofInfamy"
}, {
n: "狙击精英4",
v: "SniperElite4"
}, {
n: "热血物语:地下世界",
v: "RiverCityRansom"
}, {
n: "史诗战争模拟器",
v: "BattleSimulator"
}, {
n: "银河护卫队",
v: "Guardians"
}, {
n: "上古卷轴:传奇",
v: "ScrollsLegends"
}, {
n: "闪乱神乐:少女们的选择",
v: "SenranKagura"
}, {
n: "幽灵行动:荒野",
v: "GhostReconWildland"
}, {
n: "白色情人节",
v: "WhiteDay"
}, {
n: "誓死坚守",
v: "UntilWeDie"
}, {
n: "狂战传说",
v: "TalesofBerseria"
}, {
n: "双截龙4",
v: "DoubleDragon4"
}, {
n: "地下蚁国",
v: "Undergrowth"
}, {
n: "寻找天堂",
v: "findparadise"
}, {
n: "画中世界",
v: "Gorogoa"
}, {
n: "现代战争",
v: "ModernCombat"
}, {
n: "绯红结系",
v: "SCARLETNEXUS"
}, {
n: "罪恶装备:STRIVE",
v: "GuiltyGear"
}, {
n: "涅克罗蒙达:赏金猎人",
v: "NHiredGun"
}, {
n: "骑士精神2",
v: "Chivalry2"
}, {
n: "Rune Knights",
v: "RuneKnights"
}, {
n: "红至日2:幸存者",
v: "TheRed2"
}, {
n: "真女神转生3",
v: "ShinMegami3"
}, {
n: "速降王者",
v: "Descenders"
}, {
n: "工业崛起",
v: "RiseIndustry"
}, {
n: "前往中世纪",
v: "GoMedieval"
}, {
n: "Arid",
v: "Arid"
}, {
n: "伊始之地",
v: "TerraNil"
}, {
n: "进击的巨人2",
v: "AttackonTitan2"
}, {
n: "魔域之书",
v: "Bookofdevil"
}, {
n: "自由人:游击战争",
v: "Freeman"
}, {
n: "战国无双5",
v: "SWarriors5"
}, {
n: "不要喂食猴子",
v: "NotFeedMonkeys"
}, {
n: "古剑奇谭3",
v: "GuJianqitan3"
}, {
n: "剑士",
v: "KenshiJS"
}, {
n: "GRIS",
v: "GRIS"
}, {
n: "古剑奇谭:永夜",
v: "gujianyongye"
}, {
n: "永恒边缘",
v: "EdgeEternity"
}, {
n: "Below",
v: "Below"
}, {
n: "彩虹坠入",
v: "IrisFall"
}, {
n: "嗜血印",
v: "BloodySpell"
}, {
n: "兽人必须死3",
v: "OrcsDie3"
}, {
n: "狙击精英VR",
v: "SniperEliteVR"
}, {
n: "遗忘之城",
v: "ForgotCity"
}, {
n: "Last Stop",
v: "LastStop"
}, {
n: "边界之外",
v: "OutofLine"
}, {
n: "从军",
v: "jointhearmy"
}, {
n: "石炉",
v: "Stonehearth"
}, {
n: "狂热运输2",
v: "TransportFever2"
}, {
n: "机甲战士5",
v: "MechWarrior5"
}, {
n: "PICO PARK",
v: "PICOPARK"
}, {
n: "光明记忆:无限",
v: "Brightmemory"
}, {
n: "秘馆疑踪",
v: "HeavenDust"
}, {
n: "侠盗公司",
v: "RogueCompany"
}, {
n: "英雄传说:创之轨迹",
v: "HajimariNOKiseki"
}, {
n: "战地系列",
v: "Battlefiel"
}, {
n: "塞尔达传说:天空之剑HD",
v: "SkywardSword"
}, {
n: "尘埃异变",
v: "GRIME"
}, {
n: "异形:火力小队精英",
v: "FireteamElite"
}, {
n: "12分钟",
v: "TwelveMinutes"
}, {
n: "九十六号公路",
v: "Road96"
}, {
n: "FORECLOSED",
v: "FORECLOSED"
}, {
n: "RiMS Racing",
v: "RiMSRacing"
}, {
n: "钢铁之尾",
v: "TailsofIron"
}, {
n: "剑侠图",
v: "JianXiaTu"
}, {
n: "审判之逝",
v: "Lostjudgment"
}, {
n: "帝国神话",
v: "mythofempires"
}, {
n: "艾尔登法环",
v: "ELDENRING"
}, {
n: "极限竞速:地平线5",
v: "ForzaHorizon5"
}, {
n: "使命召唤系列",
v: "CALLOFDUTYCOD"
}, {
n: "网吧模拟器",
v: "InternetCS"
}, {
n: "The Anacrusis",
v: "TheAnacrusis"
}, {
n: "浩劫前夕",
v: "TheDayBefore"
}, {
n: "文字游戏",
v: "WordGame"
}, {
n: "消逝的光芒2",
v: "DyingLight2"
}, {
n: "无主之地3",
v: "Borderlands3"
}, {
n: "战神:诸神黄昏",
v: "GodofWarRagnarok"
}, {
n: "海上狼人杀",
v: "DreadHunger"
}, {
n: "侠乂行:浪迹天涯",
v: "XIAYIXING"
}, {
n: "最终幻想:起源",
v: "STRANGEROFPARADISE"
}, {
n: "HordeCore",
v: "HordeCore"
}, {
n: "双子星:盛气凌人",
v: "YoungSouls"
}, {
n: "Indies’ Lies",
v: "IndiesLies"
}, {
n: "Deck of Ashes",
v: "DeckofAshes"
}, {
n: "星空",
v: "Starfield"
}, {
n: "Ilysia",
v: "Ilysia"
}, {
n: "Project Q",
v: "ProjectQ"
}, {
n: "Pummel Party",
v: "PummelParty"
}, {
n: "Holomento",
v: "Holomento"
}, {
n: "Overprime",
v: "Overprime"
}, {
n: "森林之子",
v: "SonsOfTheForest"
}, {
n: "弈仙牌",
v: "yixianpai"
}, {
n: "夜族崛起",
v: "VRising"
}, {
n: "罗马复兴",
v: "RomanRenaissance"
}, {
n: "萤火突击",
v: "LostLight"
}, {
n: "High on Life",
v: "HighonLife"
}, {
n: "匹诺曹的谎言",
v: "LiesofP"
}, {
n: "Isonzo",
v: "Isonzo"
}, {
n: "瘟疫传说:安魂曲",
v: "Requiem"
}, {
n: "漂泊牧歌",
v: "WanderingVillage"
}, {
n: "塞尔达传说:王国之泪",
v: "TEARSKINGDOM"
}, {
n: "破碎线",
v: "Shatterline"
}, {
n: "卧龙:苍天陨落",
v: "Wolong"
}, {
n: "卡库远古封印",
v: "KAKU"
}, {
n: "原子之心",
v: "AtomicHeart"
}, {
n: "Warhaven",
v: "Warhaven"
}, {
n: "宝可梦:朱/紫",
v: "ScarletandViolet"
}, {
n: "Evercore Heroes",
v: "EvercoreHeroes"
}, {
n: "灵魂石幸存者",
v: "SoulstoneSurvivors"
}, {
n: "主机一起看",
v: "zjyqk"
}, {
n: "社交互动游戏",
v: "SJHDYX"
}, {
n: "轮回修仙路",
v: "lhxxl"
}, {
n: "Divine Knockout",
v: "DivineKnockout"
}, {
n: "至暗时刻",
v: "DarkandDarker"
}, {
n: "自杀小队:杀死正义联盟",
v: "KTJL"
}, {
n: "XDefiant",
v: "XDefiant"
}, {
n: "Warlander",
v: "Warlander"
}, {
n: "Scars Above",
v: "ScarsAbove"
}, {
n: "Pacific Drive",
v: "PacificDrive"
}, {
n: "最终幻想16",
v: "FinalFantasyXVI"
}, {
n: "街头霸王",
v: "StreetFighter"
}, {
n: "Tchia",
v: "Tchia"
}, {
n: "大侠立志传",
v: "HerosAdventure"
}, {
n: "最后纪元",
v: "LastEpoch"
}, {
n: "魔戒:咕噜",
v: "Gollum"
}, {
n: "Prison Life 2",
v: "PrisonLife"
}, {
n: "Innchanted",
v: "Innchanted"
}, {
n: "幻兽帕鲁",
v: "Palworld"
}, {
n: "Life by You",
v: "LifebyYou"
}, {
n: "Eresys",
v: "Eresys"
}, {
n: "Pax Dei",
v: "PaxDei"
}, {
n: "Teravit",
v: "Teravit"
}, {
n: "Caliber",
v: "Caliber"
}, {
n: "沙盒与副本:英勇之地",
v: "HerosLand"
}, {
n: "Coridden",
v: "Coridden"
}, {
n: "Unrecord",
v: "Unrecord"
}, {
n: "Deducto 2",
v: "Deducto2"
}, {
n: "装甲核心6:境界天火",
v: "ArmoredCore"
}, {
n: "Wayfinder",
v: "Wayfinder"
}, {
n: "迷瘴纪事",
v: "MiasmaChronicles"
}, {
n: "Minigame Madness",
v: "MinigameMadness"
}, {
n: "严阵以待",
v: "ReadyorNot"
}, {
n: "上古卷轴OL",
v: "TheElderScrolls"
}, {
n: "弹幕风暴",
v: "dmfb"
}, {
n: "学园构想家",
v: "SchoolHomeroom"
}, {
n: "弈仙牌手游",
v: "YiXianm"
}, {
n: "Jusant",
v: "JUSANT"
}, {
n: "潜水员戴夫",
v: "DAVETHEDIVER"
}, {
n: "GYLT",
v: "GYLT"
}, {
n: "索利斯堡",
v: "FortSolis"
}, {
n: "Towerborne",
v: "Towerborne"
}, {
n: "33 Immortals",
v: "33Immortals"
}, {
n: "Wildmender",
v: "Wildmender"
}, {
n: "How 2 Escape",
v: "How2Escape"
}, {
n: "碧蓝幻想:Relink",
v: "Relink"
}, {
n: "漫威蜘蛛侠2",
v: "MarvelSpiderman2"
}, {
n: "王权与自由",
v: "ThroneandLiberty"
}, {
n: "博德之门3",
v: "BG3"
}, {
n: "Eternights",
v: "Eternights"
}, {
n: "Project F",
v: "ProjectF"
}, {
n: "BaldMan Climbs Up",
v: "BaldManClimbsUp"
}, {
n: "FC24",
v: "FC24"
}, {
n: "NBA 2K24",
v: "NBA2K24"
}, {
n: "沉没之地",
v: "Sunkenland"
}, {
n: "七日世界",
v: "qrsj"
}, {
n: "雾锁王国",
v: "wswg"
}]
}],
syxx: [{
key: "cateId",
name: "分类",
value: [{
n: "元梦之星",
v: "YMZX"
}, {
n: "王者荣耀",
v: "wzry"
}, {
n: "LOL手游",
v: "LOLM"
}, {
n: "崩坏:星穹铁道",
v: "bhxqtd"
}, {
n: "和平精英",
v: "hpjy"
}, {
n: "暗区突围",
v: "aqtw"
}, {
n: "蛋仔派对",
v: "dzpd"
}, {
n: "高能英雄",
v: "gnyx"
}, {
n: "幻塔",
v: "ht"
}, {
n: "火影忍者",
v: "hyrz"
}, {
n: "COD手游",
v: "smzhsy"
}, {
n: "lol电竞经理",
v: "EGAME"
}, {
n: "DNF手游",
v: "mdnf"
}, {
n: "金铲铲之战",
v: "JGAME"
}, {
n: "天刀手游",
v: "tdsy"
}, {
n: "原神",
v: "yuanshen"
}, {
n: "航海王热血航线",
v: "HHWRXHX"
}, {
n: "逆水寒手游",
v: "NSHM"
}, {
n: "万国觉醒",
v: "wgjx"
}, {
n: "鸿图之下",
v: "htzx"
}, {
n: "欢乐麻将",
v: "HLMJ"
}, {
n: "王者模拟战",
v: "wzrpg"
}, {
n: "中国象棋",
v: "ZGXQ"
}, {
n: "天谕手游",
v: "tysy"
}, {
n: "巅峰坦克",
v: "DFTK"
}, {
n: "新游中心",
v: "xyzx"
}, {
n: "热门手游",
v: "phone"
}, {
n: "梦幻手游",
v: "mhxy"
}, {
n: "QQ飞车",
v: "qqfcsy"
}, {
n: "第五人格",
v: "dwrg"
}, {
n: "欢乐斗地主",
v: "hlddz"
}, {
n: "荒野乱斗",
v: "hyld"
}, {
n: "阴阳师",
v: "yys"
}, {
n: "狼人杀",
v: "LRS"
}, {
n: "JJ斗地主",
v: "jj"
}, {
n: "梦幻新诛仙",
v: "mhxzx"
}, {
n: "街霸对决",
v: "jbdj"
}, {
n: "机动都市阿尔法",
v: "jddsaef"
}, {
n: "一人之下",
v: "yrzx"
}, {
n: "多多自走棋",
v: "zzq"
}, {
n: "崩坏3",
v: "bhxl"
}, {
n: "风云岛行动",
v: "fydxd"
}, {
n: "云游戏",
v: "cloudgame"
}, {
n: "跑跑手游",
v: "PPKDCSY"
}, {
n: "率土之滨",
v: "stzb"
}, {
n: "灌篮高手",
v: "glgs"
}, {
n: "皇室战争",
v: "hszz"
}, {
n: "忍者必须死3",
v: "rzbxs3"
}, {
n: "神武4手游",
v: "sw3"
}, {
n: "梦幻模拟战",
v: "mhmnz"
}, {
n: "实况足球",
v: "skzq"
}, {
n: "剑与远征",
v: "jyyz"
}, {
n: "航海王:燃烧意志",
v: "hhwrsyz"
}, {
n: "球球大作战",
v: "qqdzz"
}, {
n: "英雄杀",
v: "yxs"
}, {
n: "魔域口袋版",
v: "mykdb"
}, {
n: "口袋新旅程",
v: "KDXLC"
}, {
n: "剑网3:指尖江湖",
v: "jw3zjjh"
}, {
n: "部落冲突",
v: "blct"
}, {
n: "剑与家园",
v: "jyjy"
}, {
n: "新笑傲江湖",
v: "xxajh"
}, {
n: "猫和老鼠",
v: "mhls"
}, {
n: "猎人手游",
v: "lrlr"
}, {
n: "明日之后",
v: "mrzh"
}, {
n: "影之诗",
v: "yzs"
}, {
n: "决战平安京",
v: "jzpaj"
}, {
n: "魂斗罗归来",
v: "DLHGL"
}, {
n: "贪吃蛇大作战",
v: "tcsdzz"
}, {
n: "圣斗士星矢",
v: "sdsxs"
}, {
n: "魔力宝贝手游",
v: "mlbbsy"
}, {
n: "哈利波特:魔法觉醒",
v: "HarryPotter"
}, {
n: "手游推广",
v: "rmsy"
}, {
n: "魔灵召唤",
v: "mlzh"
}, {
n: "香肠派对",
v: "xcpd"
}, {
n: "迷你世界",
v: "MNSJ"
}, {
n: "荒野行动",
v: "hyxd"
}, {
n: "大话西游2口袋版",
v: "dhxy2kdb"
}, {
n: "FC足球世界",
v: "FCZQSJ"
}, {
n: "街篮",
v: "jl"
}, {
n: "一起来捉妖",
v: "yiqilaizhuoyao"
}, {
n: "明日方舟",
v: "mrfz"
}, {
n: "自由幻想手游",
v: "zyhx"
}, {
n: "一梦江湖",
v: "ymjh"
}, {
n: "王牌战争:文明重启",
v: "wmcq"
}, {
n: "完美世界手游",
v: "wmsjsy"
}, {
n: "拳皇98OL",
v: "kof98"
}, {
n: "赛尔号",
v: "srh"
}, {
n: "猎魂觉醒",
v: "lhjx"
}, {
n: "仙境传说",
v: "xjcs"
}, {
n: "逃跑吧少年",
v: "tpbsn"
}, {
n: "石器时代",
v: "sqsd"
}, {
n: "英魂之刃口袋版",
v: "yh"
}, {
n: "拉结尔",
v: "lje"
}, {
n: "倩女幽魂手游",
v: "qnyhsy"
}, {
n: "决斗之城2",
v: "jdzc2"
}, {
n: "传奇手游",
v: "cqsy"
}, {
n: "欢乐升级",
v: "hlsj"
}, {
n: "雀魂",
v: "Majsoul"
}, {
n: "二次元手游",
v: "ecysy"
}, {
n: "天龙八部online",
v: "tianlongbabuonline"
}, {
n: "征途2手游",
v: "zt2sy"
}, {
n: "万王之王3D",
v: "wwzw3D"
}, {
n: "武林外传",
v: "wlwz"
}, {
n: "我叫MT4",
v: "MT4"
}, {
n: "元气骑士",
v: "yuanqiqishi"
}, {
n: "红警OL手游",
v: "hjolsy"
}, {
n: "植物大战僵尸手游",
v: "ZWDZJS"
}, {
n: "龙之谷手游",
v: "lzgsy"
}, {
n: "创造与魔法",
v: "ccymf"
}, {
n: "境界-死神激斗",
v: "jjssjd"
}, {
n: "奇迹觉醒",
v: "qjjx"
}, {
n: "光遇",
v: "skygy"
}, {
n: "游戏王:决斗链接",
v: "yxwjdlj"
}, {
n: "巅峰战舰",
v: "dfzj"
}, {
n: "绝世战魂",
v: "jszh"
}, {
n: "寻仙",
v: "xunxian"
}, {
n: "天天象棋",
v: "ttxq"
}, {
n: "王国纪元",
v: "wgjy"
}, {
n: "龙族幻想",
v: "lzhx"
}, {
n: "剑网3指尖对弈",
v: "jwszjdy"
}, {
n: "剑侠情缘2:剑歌行",
v: "jianxiaqingyuan"
}, {
n: "三国杀移动版",
v: "SGSSY"
}, {
n: "罗布乐思",
v: "Roblox"
}, {
n: "足球手游",
v: "zqsy"
}, {
n: "月圆之夜",
v: "yyzy"
}, {
n: "王牌战争",
v: "wpzz"
}, {
n: "秦时明月世界",
v: "qsmysj"
}, {
n: "独立手游",
v: "dlsy"
}, {
n: "神都夜行录",
v: "sdyxl"
}, {
n: "风之大陆",
v: "fzdl"
}, {
n: "金属对决",
v: "jsdj"
}, {
n: "轩辕剑龙舞云山",
v: "xyjlwys"
}, {
n: "微乐棋牌",
v: "WLQP"
}, {
n: "辐射:避难所Online",
v: "fsbnsonline"
}, {
n: "街篮2",
v: "jl2"
}, {
n: "极光计划",
v: "jgjh"
}, {
n: "不良人3",
v: "blr3"
}, {
n: "镇魔曲手游",
v: "zmq"
}, {
n: "传奇世界手游",
v: "cqsjsy"
}, {
n: "永恒纪元",
v: "yhjy"
}, {
n: "乱世王者",
v: "lswz"
}, {
n: "数码宝贝:相遇",
v: "smbbxy"
}, {
n: "仙剑4",
v: "xjqxz4"
}, {
n: "长安幻世绘",
v: "cahsh"
}, {
n: "篮球手游",
v: "lqsy"
}, {
n: "鬼泣-巅峰之战",
v: "gqdfzz"
}, {
n: "射击类手游",
v: "qtsy"
}, {
n: "命运歌姬",
v: "mygj"
}, {
n: "光明大陆",
v: "gmdl"
}, {
n: "暗黑不朽",
v: "diabloimmortal"
}, {
n: "新神魔大陆",
v: "xsmdl"
}, {
n: "公主连结Re:Dive",
v: "gzlj"
}, {
n: "三国志战略版",
v: "sgzzlb"
}, {
n: "天地劫:幽城再临",
v: "tdj"
}, {
n: "Disorder",
v: "Disorder"
}, {
n: "凹凸世界",
v: "atsj"
}, {
n: "云上城之歌",
v: "ysczg"
}, {
n: "五子棋",
v: "wzq"
}, {
n: "围棋",
v: "wq"
}, {
n: "梦想新大陆",
v: "mxxdl"
}, {
n: "三国志幻想大陆:国创加强版",
v: "sgzhxdl"
}, {
n: "全球行动",
v: "qqxd"
}, {
n: "诛仙手游",
v: "zxsy"
}, {
n: "妄想山海",
v: "wxsh"
}, {
n: "黎明觉醒:生机",
v: "lmjx"
}, {
n: "龙之谷2手游",
v: "lzg2sy"
}, {
n: "庆余年",
v: "QYN"
}, {
n: "我的侠客",
v: "wdxk"
}, {
n: "曙光英雄",
v: "sgyx"
}, {
n: "真三国无双霸",
v: "zsgwsb"
}, {
n: "大话西游手游",
v: "dhxysy"
}, {
n: "口袋进化",
v: "kdjh"
}, {
n: "开心消消乐",
v: "kxxxl"
}, {
n: "战争怒吼",
v: "zznh"
}, {
n: "忘川风华录",
v: "wcfhl"
}, {
n: "新剑侠情缘手游",
v: "xjxqysy"
}, {
n: "重生细胞",
v: "csxb"
}, {
n: "汉家江湖",
v: "HJJH"
}, {
n: "海岛奇兵",
v: "hdqb"
}, {
n: "钢铁力量2",
v: "gtll2"
}, {
n: "仙剑奇侠传九野",
v: "xjqxzjy"
}, {
n: "魔域手游",
v: "mysy"
}, {
n: "大唐无双手游",
v: "dtwssy"
}, {
n: "地铁跑酷",
v: "dtpk"
}, {
n: "战舰世界闪击战",
v: "zjsjsjz"
}, {
n: "狂暴之翼",
v: "kbzy"
}, {
n: "西游女儿国",
v: "xyneg"
}, {
n: "少年三国志",
v: "snsgz"
}, {
n: "钢琴师",
v: "gqs"
}, {
n: "横扫千军",
v: "hsqj"
}, {
n: "节奏大爆炸",
v: "jzdbz"
}, {
n: "喵斯快跑",
v: "mskp"
}, {
n: "双子",
v: "sz"
}, {
n: "梦想世界3手游",
v: "mxsj3"
}, {
n: "精灵之境",
v: "jlzj"
}, {
n: "镇魂街:武神躯",
v: "zhjwsq"
}, {
n: "斗罗大陆:斗神再临",
v: "dldldszl"
}, {
n: "斗罗大陆:武魂觉醒",
v: "dldlwhjx"
}, {
n: "斗罗大陆2绝世唐门",
v: "dldl2jstm"
}, {
n: "战神觉醒",
v: "zsjx"
}, {
n: "九州仙剑传H5",
v: "jzxjzh5"
}, {
n: "荣耀大天使",
v: "rydts"
}, {
n: "蓝月传奇",
v: "lycq"
}, {
n: "凡人修仙传挂机版H5",
v: "frxxzgjbh5"
}, {
n: "我的帝国H5",
v: "wddgh5"
}, {
n: "盗墓笔记",
v: "dmbj"
}, {
n: "剑与轮回",
v: "jylh"
}, {
n: "混沌起源",
v: "hdqy"
}, {
n: "大天使之剑",
v: "dtszj"
}, {
n: "战斗少女跑酷",
v: "zdsnpk"
}, {
n: "绝世仙王",
v: "jsxw"
}, {
n: "一刀传世",
v: "ydcs"
}, {
n: "斗罗大陆",
v: "dldl"
}, {
n: "破雪刃",
v: "pxr"
}, {
n: "JJ象棋",
v: "jjxq"
}, {
n: "天姬变",
v: "tjb"
}, {
n: "剑玲珑",
v: "jll"
}, {
n: "火线精英",
v: "hxjy"
}, {
n: "造梦西游OL",
v: "zmxyol"
}, {
n: "奥奇传说手游",
v: "aqcssy"
}, {
n: "战斗吧龙魂",
v: "zdblh"
}, {
n: "剑开仙门",
v: "jkxm"
}, {
n: "机甲爱丽丝",
v: "jjals"
}, {
n: "狼人对决",
v: "lrdj"
}, {
n: "最终幻想:勇气启示录 幻影战争",
v: "hyzz"
}, {
n: "贝比岛",
v: "bbd"
}, {
n: "葫芦娃兄弟",
v: "hlwxd"
}, {
n: "造梦西游4",
v: "zmxy4"
}, {
n: "比特小队",
v: "btxd"
}, {
n: "流言侦探",
v: "lyzt"
}, {
n: "少女前线",
v: "snqx"
}, {
n: "遇见",
v: "yj"
}, {
n: "霓虹深渊:无限",
v: "nhsywx"
}, {
n: "胡莱三国3",
v: "hlsg3"
}, {
n: "奥拉星",
v: "alx"
}, {
n: "先游云游戏",
v: "Gamer"
}, {
n: "绿茵信仰",
v: "lyxy"
}, {
n: "蜀山掌门",
v: "sszm"
}, {
n: "球球联盟",
v: "qqlm"
}, {
n: "碧蓝航线手游",
v: "blhxsy"
}, {
n: "300大作战",
v: "300dzz"
}, {
n: "第七史诗",
v: "dqss"
}, {
n: "宝可梦大集结",
v: "PokemonUNITE"
}, {
n: "无极仙途",
v: "wjxt"
}, {
n: "汉末霸业",
v: "hmby"
}, {
n: "EVE星战前夜:无烬星河",
v: "evexzqywjxh"
}, {
n: "少女前线2:追放",
v: "sq2zf"
}, {
n: "火力苏打(T3)",
v: "T3"
}, {
n: "植物大战僵尸2",
v: "zwdzjs2"
}, {
n: "球球英雄",
v: "qqyx"
}, {
n: "悠长假期",
v: "ycjq"
}, {
n: "无悔华夏",
v: "whrhx"
}, {
n: "猫之城",
v: "mzc"
}, {
n: "墨斗",
v: "modou"
}, {
n: "圣斗士星矢:正义传说",
v: "sdsxszyz"
}, {
n: "未定事件簿",
v: "wdsjp"
}, {
n: "白夜极光",
v: "byjg"
}, {
n: "斗罗大陆:魂师对决",
v: "dldlhsdj"
}, {
n: "古墓丽影传说:迷踪",
v: "gmlycsmz"
}, {
n: "放置与召唤",
v: "fzyzh"
}, {
n: "闪烁之光",
v: "syzg"
}, {
n: "老农种树",
v: "lnzs"
}, {
n: "三国演义:吞噬无界",
v: "sgyytswj"
}, {
n: "偶像梦幻祭2",
v: "oxmhj2"
}, {
n: "卡卡保皇",
v: "kkbh"
}, {
n: "灵猫传",
v: "lmz"
}, {
n: "绝对演绎",
v: "jdyy"
}, {
n: "剑侠世界3",
v: "jxsj3"
}, {
n: "召唤与合成2",
v: "zhyhc2"
}, {
n: "仙侠第一放置",
v: "xxdyfz"
}, {
n: "弓箭手大作战",
v: "gjsdzz"
}, {
n: "挨饿荒野",
v: "aehy"
}, {
n: "诺亚之心",
v: "nyzx"
}, {
n: "闪耀暖暖",
v: "synn"
}, {
n: "模拟城市:我是市长",
v: "mncswssc"
}, {
n: "重返帝国",
v: "cfdg"
}, {
n: "长安幻想",
v: "cahx"
}, {
n: "火炬之光:无限",
v: "hjzgwx"
}, {
n: "富豪闯三国",
v: "fhcsg"
}, {
n: "拂晓",
v: "fx"
}, {
n: "火影忍者:忍者新世代",
v: "hyrzrzxsd"
}, {
n: "滚动的天空",
v: "gddtk"
}, {
n: "新斗罗大陆",
v: "xdldl"
}, {
n: "登山赛车",
v: "dssc"
}, {
n: "荒野乱斗(腾讯版)",
v: "hyldtxb"
}, {
n: "小小勇者",
v: "xxyz"
}, {
n: "小冰冰传奇",
v: "xbbcq"
}, {
n: "三国战纪2手游",
v: "sgzj2"
}, {
n: "我的战舰",
v: "wdzj"
}, {
n: "我是大东家",
v: "wsddj"
}, {
n: "幸存者危城",
v: "xczwc"
}, {
n: "暗魔领主",
v: "amlz"
}, {
n: "冒险公社手游",
v: "mxgs"
}, {
n: "欧陆战争5:帝国",
v: "olzz5dg"
}, {
n: "纪念碑谷2",
v: "jnbg2"
}, {
n: "大航海探险物语",
v: "dhhtxwy"
}, {
n: "我在7年后等着你",
v: "wz7nhdzn"
}, {
n: "航海日记",
v: "hhrj"
}, {
n: "一拳超人:最强之男",
v: "yqcrzqzn"
}, {
n: "王国保卫战4",
v: "wgbwz4"
}, {
n: "半世界之旅",
v: "bsjzl"
}, {
n: "奥特曼宇宙英雄",
v: "atmyzyx"
}, {
n: "新三国杀",
v: "xsgs"
}, {
n: "奶块",
v: "nk"
}, {
n: "策魂三国",
v: "chsg"
}, {
n: "奥特曼系列OL",
v: "atmxlol"
}, {
n: "洪荒文明",
v: "hhwm"
}, {
n: "街头足球",
v: "jtzq"
}, {
n: "同人圣三国蜀汉传",
v: "trssgshc"
}, {
n: "我做夫人那些年",
v: "wzfrnxn"
}, {
n: "小小五千年",
v: "xxwqn"
}, {
n: "实况球会经理",
v: "skqhjl"
}, {
n: "时空猎人",
v: "sklr"
}, {
n: "星际逆战",
v: "xjnz"
}, {
n: "LoveLive! 学园偶像祭",
v: "lovelivexyoxj"
}, {
n: "黑色沙漠手游",
v: "hesmsy"
}, {
n: "魔力宝贝:旅人",
v: "mlbblr"
}, {
n: "盾之勇者成名录:浪潮",
v: "dzyzcmllc"
}, {
n: "魔力宝贝归来",
v: "mlbbgl"
}, {
n: "荣耀新三国",
v: "ryxsg"
}, {
n: "巅峰极速",
v: "dfjs"
}, {
n: "新盗墓笔记",
v: "xdmbj"
}, {
n: "卧龙吟2",
v: "wly2"
}, {
n: "武林闲侠",
v: "wlxx"
}, {
n: "淘米游戏",
v: "tmyx"
}, {
n: "暖雪",
v: "warmsnow"
}, {
n: "无期迷途",
v: "wqmt"
}, {
n: "逆光潜入",
v: "ngqr"
}, {
n: "CF手游",
v: "CFSY"
}, {
n: "新天龙八部手游",
v: "xtlbbsy"
}, {
n: "无神之界",
v: "wszj"
}, {
n: "尘白禁区",
v: "cbjq"
}, {
n: "传奇天下",
v: "CQTX"
}, {
n: "全民大灌篮",
v: "qmdgl"
}, {
n: "枪火重生手游",
v: "GunfireReborn"
}, {
n: "火影三国志",
v: "g_hysg"
}, {
n: "网易其它组",
v: "g_wyqt"
}, {
n: "三国战纪手游",
v: "sgzjsy"
}, {
n: "染·钟楼谜团",
v: "BOTC"
}, {
n: "绝区零",
v: "jql"
}, {
n: "魔兽弧光大作战",
v: "warcraftrumble"
}, {
n: "重返CODM",
v: "RECODM"
}, {
n: "综合手游",
v: "zhsy"
}, {
n: "IP游戏",
v: "ipyx"
}, {
n: "鸣潮",
v: "cm"
}, {
n: "棋牌游戏",
v: "QPYX"
}, {
n: "奥比岛:梦想国度",
v: "abdmxgd"
}, {
n: "铃兰之剑",
v: "llzjwzhpdsj"
}, {
n: "晶核",
v: "jhcoa"
}, {
n: "星之破晓",
v: "dhpx"
}, {
n: "赛尔计划",
v: "srjh"
}, {
n: "SLG综合",
v: "SLG"
}, {
n: "代号:伙伴",
v: "DHGB"
}, {
n: "天使之战",
v: "tszz"
}, {
n: "全明星街球派对",
v: "hoopheroes"
}, {
n: "合金弹头:觉醒",
v: "MetalSlug"
}, {
n: "白荆回廊",
v: "BJHL"
}, {
n: "三国志战棋版",
v: "g_sgzzqb"
}, {
n: "鹅鸭杀手游",
v: "GooseDuck"
}, {
n: "太空杀",
v: "SuperSus"
}, {
n: "天龙八部2:飞龙战天",
v: "tlbb2flzt"
}, {
n: "西行纪 燃魂",
v: "xxjrh"
}, {
n: "决胜巅峰",
v: "jueshengdianfeng"
}, {
n: "冒险岛:枫之传说",
v: "MapleStory"
}, {
n: "石器时代:觉醒",
v: "sqsdjx"
}, {
n: "星球:重启",
v: "xqcq"
}, {
n: "决战玛法",
v: "jzmf"
}, {
n: "二次元游戏",
v: "ECYYX"
}, {
n: "圣境之塔",
v: "sjzt"
}, {
n: "传说法师手游",
v: "CSFSSY"
}, {
n: "钢岚",
v: "Mecharashi"
}, {
n: "勇闯三国",
v: "ycsg"
}, {
n: "绯色回响",
v: "fshxgf"
}, {
n: "三国:谋定天下",
v: "sgmdtx"
}]
}],
kjwh: [{
key: "cateId",
name: "分类",
value: [{
n: "数码科技",
v: "smkj"
}, {
n: "纪录片",
v: "jlp"
}, {
n: "成年教育",
v: "jiaoyu"
}, {
n: "人文社科",
v: "Humanities"
}]
}],
yp: [{
key: "cateId",
name: "分类",
value: [{
n: "派对",
v: "paidui"
}, {
n: "心动FM.",
v: "DIANT"
}, {
n: "一起玩",
v: "yiqiwan"
}]
}],
voice: [{
key: "cateId",
name: "分类",
value: [{
n: "语音交友",
v: "yyjy"
}, {
n: "音乐之声",
v: "yyzs"
}, {
n: "连麦互动",
v: "lianmaihudong"
}, {
n: "娱乐开黑",
v: "ylkh"
}]
}]
},
filter_def: {
yl: {
cateId: "yqk"
},
PCgame: {
cateId: "LOL"
},
djry: {
cateId: "TVgame"
},
syxx: {
cateId: "wzry"
},
yz: {
cateId: "yz"
},
kjwh: {
cateId: "smkj"
},
yp: {
cateId: "yiqiwan"
},
voice: {
cateId: "yyzs"
},
znl: {
cateId: "znl"
}
},
class_name: "娱乐天地&网游竞技&单机热游&手游休闲&颜值&科技文化&语音互动&语音直播&正能量",
class_url: "yl&PCgame&djry&syxx&yz&kjwh&yp&voice&znl",
detailUrl: "https://m.douyu.com/fyid?dyshid=0-1c6d52c74b1e6bec7aa63a8e000617p1&dyshci=181",
searchUrl: "/api/search/liveRoom?#did=10000000000000000000000000001501&limit=20&offset=0&sk=**;post",
searchable: 2,
quickSearch: 0,
headers: {
"User-Agent": "MOBILE_UA"
},
timeout: 5e3,
limit: 8,
play_parse: !0,
lazy: "js:\n\
let rid=input;\n\
let api='https://m.douyu.com/api/room/ratestream';\n\
let body='rid='+rid+'&did=10000000000000000000000000001501&rate=0';\n\
let res=JSON.parse(post(api,{body:body,headers:{\n\
'User-Agent': MOBILE_UA,\n\
'Content-Type':'application/x-www-form-urlencoded'\n\
}}));\n\
let d=res.data||{};\n\
let play='';\n\
if(d.url){\n\
play=d.url;\n\
}else if(d.rtmp_url&&d.rtmp_live){\n\
play=d.rtmp_url+'/'+d.rtmp_live;\n\
}\n\
if(!play) throw '斗鱼未开播或取流失败';\n\
input={parse:0,url:play};\n",
isVideo: "js:/\\.m3u8|\\.flv/.test(input)",
推荐: "js:\n\
let d=[];\n\
let jo=JSON.parse(request(input)).data;\n\
jo.forEach(c=>{\n\
(c.list||[]).forEach(it=>{\n\
d.push({\n\
url: it.rid,\n\
title: it.roomName,\n\
img: it.roomSrc,\n\
desc: '👁'+it.hn+' · '+it.nickname\n\
})\n\
})\n\
});\n\
setResult(d);\n",
一级: "js:\n\
let d=[];\n\
let jo=JSON.parse(request(input)).data.list;\n\
jo.forEach(it=>{\n\
d.push({\n\
url: it.rid,\n\
title: it.roomName,\n\
img: it.roomSrc,\n\
desc: '👁'+it.hn+' · '+it.nickname\n\
})\n\
});\n\
setResult(d);\n",
二级: '*',
搜索: "js:\n\
let d=[];\n\
let r=input.split(';');\n\
let url=r[0].split('#')[0];\n\
let body=r[0].split('#')[1]||'';\n\
let jo=JSON.parse(post(url,{body:body,headers:rule.headers})).data.list;\n\
jo.forEach(it=>{\n\
d.push({\n\
url: it.roomId,\n\
title: it.roomName,\n\
img: it.roomSrc,\n\
desc: '👁'+it.hn+' · '+it.nickname\n\
})\n\
});\n\
setResult(d);\n",
};