黄果短剧🔞
https://l205.arj2ftl0.cc
laizhiyu (6509)11/03 23:40
修复优化
{
"bookSourceComment": "发布页:\nhttps:\/\/huangguoai.pages.dev\nhttps:\/\/huang-guo.pages.dev\nv11站根二次迁移+正文双斜杠根修:①正文空根因实锤——hg_line带尾斜杠,ruleContent拼URL未剥尾斜杠→\/\/video\/12\/双斜杠→站点对\/video\/N\/路由返回74KB降级页(无<source>标签),而\/、\/search\/、\/ai-duanju\/等路由容忍双斜杠→搜索\/发现\/详情\/目录全正常唯独正文空;修复=ruleContent统一line.replace(\/\\\/$\/,'')(与ruleToc既有写法一致)。②发布页publish.js的urls数组已只剩xxbgwypx.cc一个根域(jxqgmx5ga.cc被站点弃用+DNS污染双重死亡,18子域全灭15s超时)→exploreUrl静态域名\/FIX候选池\/DEF默认线\/hgDef\/hgRoots全部迁移xxbgwypx.cc(大学子域10\/10全活292-773ms)。③FIX bad判据追加jxqgmx5ga强制迁移(老设备存量的jxqg死线自动切新根域,防间歇污染探活假阳性,参照h2na6qa39先例);hgRootSort殿后jxqg。④教训:同站不同路由对URL双斜杠容忍度不同,拼URL必须无条件剥尾斜杠。其余同v10(ajaxAll(true)测速提速+分批断路器\/StrResponse raw().code()判活\/E版兼容ArrayList目录\/crypto-image封面解密\/视频setType三件套)。",
"bookSourceGroup": "影视,AI,R18",
"bookSourceName": "黄果短剧🔞",
"bookSourceType": 4,
"bookSourceUrl": "https:\/\/l205.arj2ftl0.cc",
"bookUrlPattern": "https?:\/\/[^\/]+\/video\/\\d+(?:\/ep-\\d+)?\/?$",
"concurrentRate": "1\/1500",
"coverDecodeJs": "(function(){\ntry{\nvar baos=new Packages.java.io.ByteArrayOutputStream();\nvar buf=new Packages.java.lang.String('00000000000000000000000000000000').getBytes();\nvar n=result.read(buf);\nwhile(n>0){baos.write(buf,0,n);n=result.read(buf)}\nvar enc=baos.toByteArray();\nif(!enc||enc.length<32)return enc;\nvar b0=(enc[0]+256)%256,b1=(enc[1]+256)%256,b2=(enc[2]+256)%256;\nif((b0===255&&b1===216)||(b0===137&&b1===80&&b2===78)||(b0===71&&b1===73&&b2===70)||(b0===82&&b1===73&&b2===70))return enc;\nif(enc.length%16!==0)return enc;\nvar Cipher=Packages.javax.crypto.Cipher;\nvar SKS=Packages.javax.crypto.spec.SecretKeySpec;\nvar IVS=Packages.javax.crypto.spec.IvParameterSpec;\nvar c=Cipher.getInstance('AES\/CBC\/NoPadding');\nc.init(Cipher.DECRYPT_MODE,new SKS(new Packages.java.lang.String('f5d965df75336270').getBytes('UTF-8'),'AES'),new IVS(new Packages.java.lang.String('97b60394abc2fbe1').getBytes('UTF-8')));\nvar dec=c.doFinal(enc);\nif(!dec||dec.length<32)return enc;\nvar eoi=-1;\nfor(var i=dec.length-2;i>0;i--){\n if((dec[i]+256)%256===255&&(dec[i+1]+256)%256===217){eoi=i;break}\n}\nif(eoi>0&&eoi+2<dec.length)return Packages.java.util.Arrays.copyOf(dec,eoi+2);\nreturn dec;\n}catch(e){return null}\n})()\n",
"customButton": false,
"customOrder": 30,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"eventListener": false,
"exploreUrl": "AI成人短剧::https:\/\/thu.xxbgwypx.cc\/ai-duanju\/{{page}}\/&&AI成人漫剧::https:\/\/thu.xxbgwypx.cc\/ai-manju\/{{page}}\/&&AI换脸::https:\/\/thu.xxbgwypx.cc\/ai-huanlian\/{{page}}\/&&AI魔改::https:\/\/thu.xxbgwypx.cc\/ai-mogai\/{{page}}\/&&热播排行榜::https:\/\/thu.xxbgwypx.cc\/ranks\/hot\/&&精品专题::https:\/\/thu.xxbgwypx.cc\/topics\/hot-aiduanju\/&&全部专题::https:\/\/thu.xxbgwypx.cc\/topics\/",
"header": "{\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 14; Pixel 8 Build\/UQ1A.240105.002; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/131.0.6778.81 Mobile Safari\/537.36\",\"Accept\":\"text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,*\/*;q=0.8\",\"Accept-Language\":\"zh-CN,zh;q=0.9,en;q=0.8\",\"Referer\":\"https:\/\/l205.arj2ftl0.cc\/\"}",
"lastUpdateTime": "1793720409523",
"loginUi": "[{\"name\": \"黄果短剧 · 线路面板\", \"type\": \"label\", \"style\": {\"layout_flexBasisPercent\": 1}}, {\"name\": \"发布页地址\", \"type\": \"text\", \"key\": \"发布页地址\", \"default\": \"https:\/\/huangguoai.pages.dev\/publish.js\", \"hint\": \"需以 http:\/\/ 或 https:\/\/ 开头\", \"style\": {\"layout_flexBasisPercent\": 1}}, {\"name\": \"获取网址并测速\", \"type\": \"button\", \"action\": \"FQ_hgGo()\", \"style\": {\"layout_flexBasisPercent\": 1}}, {\"name\": \"测速结果 · 点按切换\", \"type\": \"label\", \"style\": {\"layout_flexBasisPercent\": 1}}, {\"name\": \"线路1\", \"type\": \"button\", \"viewName\": \"FQ_siteName(0)\", \"action\": \"FQ_hgPick(0)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路2\", \"type\": \"button\", \"viewName\": \"FQ_siteName(1)\", \"action\": \"FQ_hgPick(1)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路3\", \"type\": \"button\", \"viewName\": \"FQ_siteName(2)\", \"action\": \"FQ_hgPick(2)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路4\", \"type\": \"button\", \"viewName\": \"FQ_siteName(3)\", \"action\": \"FQ_hgPick(3)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路5\", \"type\": \"button\", \"viewName\": \"FQ_siteName(4)\", \"action\": \"FQ_hgPick(4)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路6\", \"type\": \"button\", \"viewName\": \"FQ_siteName(5)\", \"action\": \"FQ_hgPick(5)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路7\", \"type\": \"button\", \"viewName\": \"FQ_siteName(6)\", \"action\": \"FQ_hgPick(6)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路8\", \"type\": \"button\", \"viewName\": \"FQ_siteName(7)\", \"action\": \"FQ_hgPick(7)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路9\", \"type\": \"button\", \"viewName\": \"FQ_siteName(8)\", \"action\": \"FQ_hgPick(8)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路10\", \"type\": \"button\", \"viewName\": \"FQ_siteName(9)\", \"action\": \"FQ_hgPick(9)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路11\", \"type\": \"button\", \"viewName\": \"FQ_siteName(10)\", \"action\": \"FQ_hgPick(10)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"线路12\", \"type\": \"button\", \"viewName\": \"FQ_siteName(11)\", \"action\": \"FQ_hgPick(11)\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"当前线路\", \"type\": \"button\", \"action\": \"FQ_hgCur()\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"检查登录状态\", \"type\": \"button\", \"action\": \"FQ_hgChk()\", \"style\": {\"layout_flexBasisPercent\": 0.32}}, {\"name\": \"恢复默认\", \"type\": \"button\", \"action\": \"FQ_hgRst()\", \"style\": {\"layout_flexBasisPercent\": 0.32}}]",
"loginUrl": "function hgST(s){s=String(s==null?'':s);return s.replace(\/\\\/+$\/,'')}\nfunction hgNL(){return String.fromCharCode(10)}\nfunction hgQ(c){return String.fromCharCode(34)+c+String.fromCharCode(34)}\nfunction hgDef(){return 'https:\/\/thu.xxbgwypx.cc'}\nfunction hgPubs(){return ['https:\/\/huangguoai.pages.dev\/publish.js','https:\/\/hu-guo.pages.dev\/publish.js']}\nfunction hgSubs(){return ['thu','pku','fdu','sjtu','zju','nju','xmu','sysu','whu','jlu','scu','ruc','bnu','nku','tju','sdu','hust','xjtu','hit']}\nfunction hgRoots(){return ['xxbgwypx.cc']}\nfunction hgHost(u){var s=hgST(u).replace(\/^https?:\\\/\\\/\/,'');var i=s.indexOf('\/');return i>0?s.substring(0,i):s}\nfunction hgShort(h){h=String(h||'');var d=h.split('.');var t=d[0]||h;if(t.length>13)t=t.substring(0,13);return t}\nfunction hgGV(k,dv){var v='';try{v=String(source.get(k)||'')}catch(e){}\n if(!v||v=='null'||v=='undefined')v=dv;return v?hgST(v):''}\nfunction hgSV(k,v){try{source.put(k,String(v))}catch(e){}}\nfunction hgT(t){try{java.longToast(t)}catch(e){try{java.toast(t)}catch(e2){}}}\nfunction hgSites(){var r=hgGV('hg_sites','');var a=[];if(r){try{a=JSON.parse(r)}catch(e){}}return a}\nfunction hgRootSort(roots){\n var pri=[],last=[];\n for(var i=0;i<roots.length;i++){\n var r=roots[i];\n if(r.indexOf('arj2ftl0')>=0||r.indexOf('40ygo615')>=0||r.indexOf('h2na6qa39')>=0||r.indexOf('jxqgmx5ga')>=0)last.push(r);\n else pri.push(r);\n }\n return pri.concat(last)}\nfunction hgCand(){\n var roots=hgRoots();\n var ph='';\n var pubs=hgPubs();\n var pv=hgGV('pub','');\n if(pv.indexOf('http')===0)pubs=[pv].concat(pubs);\n for(var pi=0;pi<pubs.length;pi++){\n try{ph=String(java.ajax(pubs[pi]+',{\"timeout\":8000,\"retry\":0}'))}catch(e){}\n if(ph.length>500)break;\n }\n if(ph.length>500){\n var m=ph.match(\/var\\s+urls\\s*=\\s*\\[([\\s\\S]*?)\\]\/);\n if(m){var re=\/['\"]([a-z0-9.\\-]+\\.[a-z]{2,}\\\/?)['\"]\/gi,mm;\n var pr=[];\n while((mm=re.exec(m[1]))!=null)pr.push(mm[1].replace(\/\\\/+$\/,''));\n if(pr.length)roots=pr;\n }\n }\n roots=hgRootSort(roots);\n var cs=[];\n for(var i=0;i<roots.length;i++)for(var j=0;j<hgSubs().length;j++)cs.push('https:\/\/'+hgSubs()[j]+'.'+roots[i]);\n cs.push(hgDef());\n var seen={},ls=[];\n for(var m2=0;m2<cs.length;m2++){if(!seen[cs[m2]]){seen[cs[m2]]=1;ls.push(cs[m2])}}\n return ls}\nfunction hgBatchProbe(urls){\n var rows=[];\n var res=null;\n try{res=java.ajaxAll(urls,true)}catch(e1){if(urls&&urls.length===1){}else{try{res=java.ajaxAll(urls)}catch(e2){}}}\n if(!res&&urls&&urls.length===1){\n try{var b=String(java.ajax(urls[0]+',{\"timeout\":8000,\"retry\":0}'));if(b.length>20000&&b.indexOf('Exception')<0)rows.push({url:urls[0],host:hgHost(urls[0]),ms:0,fin:''})}catch(e3){}\n return rows}\n if(res){\n for(var k=0;k<res.length;k++){\n var code=-9,ms=-1,bl=0,fin='',bod='';\n try{code=res[k].raw().code()}catch(e){}\n try{ms=res[k].callTime()}catch(e){}\n try{bod=String(res[k].body());bl=bod.length}catch(e){}\n try{var ss=String(res[k].raw().toString());var fm=ss.match(\/url=(\\S+?)\\}\/);if(fm)fin=fm[1]}catch(e){}\n var isErr=(bod.indexOf('Exception')>=0&&bl<3000);\n if(code>=200&&code<400&&bl>20000&&!isErr)rows.push({url:urls[k],host:hgHost(urls[k]),ms:ms,fin:fin});\n }\n }\n return rows}\nfunction FQ_siteName(i){\n try{\n var a=hgSites();\n if(!a.length)return '线路'+(i+1);\n if(i>=a.length)return '';\n var s=a[i];\n var cur=hgGV('hg_line',hgDef());\n return hgShort(s.host)+' '+s.ms+'ms'+(s.url===cur?' ✓':'');\n }catch(e){return '线路'+(i+1)}\n}\nfunction FQ_hgGo(){\n try{\n var t0=Date.now();\n var p=hgGV('pub',hgPubs()[0]);\n if(!p||p.indexOf('http')!=0){hgT('发布页地址无效:需以 http:\/\/ 或 https:\/\/ 开头');return}\n hgT('正在抓取发布页并测速...');\n var ls=hgCand();\n var rows=[];\n var B=10,NEED=12;\n for(var b=0;b<ls.length&&rows.length<NEED;b+=B){\n var batch=ls.slice(b,b+B);\n var bu=[];\n for(var q=0;q<batch.length;q++)bu.push(batch[q]+'\/');\n var got=hgBatchProbe(bu);\n for(var g=0;g<got.length&&rows.length<NEED;g++)rows.push(got[g]);\n }\n if(!rows.length){hgT('测速完成:'+ls.length+' 条线路全部不可用'+hgNL()+'耗时 '+((Date.now()-t0)\/1000).toFixed(1)+' 秒');return}\n rows.sort(function(x,y){return x.ms-y.ms});\n hgSV('hg_sites',JSON.stringify(rows));\n hgSV('hg_line',rows[0].url);\n hgSV('hg_line_ts',String(Date.now()));\n hgSV('hg_line_chk',String(Date.now()));\n hgT('测速完成('+ls.length+' 条,可用 '+rows.length+' 条,耗时 '+((Date.now()-t0)\/1000).toFixed(1)+' 秒)'+hgNL()+'已选最快:'+rows[0].host+'('+rows[0].ms+'ms)'+hgNL()+'若按钮名未刷新,重新打开本面板即可');\n try{java.reLoginView(false)}catch(e){}\n }catch(e){hgT('测速失败:'+String(e).substring(0,100))}\n}\nfunction FQ_hgPick(i){\n try{\n var a=hgSites();\n if(!a.length||!a[i]){\n hgT('该线路尚未测速,请先点「获取网址并测速」');\n return;\n }\n hgSV('hg_line',a[i].url);\n hgSV('hg_line_ts',String(Date.now()));\n hgSV('hg_line_chk',String(Date.now()));\n hgT('已选择网站:'+a[i].host+hgNL()+'延迟:'+a[i].ms+'ms');\n try{java.reLoginView(false)}catch(e){}\n }catch(e){hgT('切换失败:'+String(e).substring(0,80))}\n}\nfunction FQ_hgCur(){\n try{hgT('当前线路:'+hgGV('hg_line',hgDef()))}catch(e){}\n}\nfunction FQ_hgChk(){\n try{\n var L=hgGV('hg_line',hgDef());\n var h='';\n try{h=String(java.ajax(L+'\/profile\/,{\"timeout\":8000,\"retry\":0}'))}catch(e){}\n if(h.length<2000||(h.indexOf('Exception')>=0&&h.length<3000)){hgT('无法连接线路:'+L+hgNL()+'请检查网络或切换线路');return}\n var guest=h.indexOf('data-auth-open='+hgQ('login')+'>'+String.fromCharCode(30331,24405,47,27880,20876))>=0;\n var dash=h.indexOf('ID'+String.fromCharCode(65306)+String.fromCharCode(8212))>=0;\n var out=h.indexOf(String.fromCharCode(36864,20986))>=0||h.indexOf('signOut')>=0||h.indexOf('logout')>=0;\n if(guest&&dash)hgT('游客状态(未登录)'+hgNL()+'搜索\/详情\/目录\/播放均可正常使用'+hgNL()+'登录后可看收藏与观看历史'+hgNL()+'当前线路:'+L);\n else if(out)hgT('已登录'+hgNL()+'当前线路:'+L);\n else hgT('状态未知(页面结构可能已变化)'+hgNL()+'当前线路:'+L);\n }catch(e){hgT('检查失败:'+String(e).substring(0,80))}\n}\nfunction FQ_hgRst(){\n try{\n hgSV('pub',hgPubs()[0]);hgSV('hg_line',hgDef());hgSV('hg_line_ts','0');hgSV('hg_line_chk','0');hgSV('hg_sites','');\n hgT('已恢复默认'+hgNL()+'线路:'+hgDef());\n try{java.reLoginView(false)}catch(e){}\n }catch(e){}\n}\nfunction login(){\n try{java.longToast('当前为游客模式,无需登录');}catch(e){try{java.toast('当前为游客模式,无需登录')}catch(e2){}}\n}\n",
"respondTime": 180000,
"ruleBookInfo": {
"author": "@js:\n(function(){\nvar h=String(result);\nvar a=h.match(\/<meta name=author content=\"([^\"]*)\"\/);\nif(a)return a[1];\nvar b=h.match(\/class=\"hg-topic-banner__body\"[^>]*>[\\s\\S]*?<p>([^<]*)<\\\/p>\/);\nreturn b?b[1].substring(0,40):'黄果短剧';\n})()",
"coverUrl": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-history=\"[^\"]*\"[^>]*>\/);\nif(m){\n var d=m[0].replace(\/"\/g,'\"').replace(\/"\/g,'\"').replace(\/&\/g,'&');\n var c=d.match(\/\"cover\":\"([^\"]+)\"\/);\n if(c){var o=c[1];if(o.indexOf('http')!==0)o='https:\/\/pic.drleao.cn'+o;return o+(o.indexOf('?')<0?'?':'&')+'hgimgv=2';}\n}\nvar ds=h.match(\/data-src=\"(https:\\\/\\\/pic\\.[^\"]+)\"\/);\nif(ds){var o2=ds[1];return o2+(o2.indexOf('?')<0?'?':'&')+'hgimgv=2';}\nreturn '';\n})()",
"intro": "meta[name=description]@content",
"kind": "@js:\n(function(){\nvar h=String(result);\nvar t=h.match(\/data-track-total-episode=\"(\\d+)\"\/);\nif(t)return t[1]+'集';\nvar g=h.match(\/class=\"hg-topic-extra-pc\">([^<]*)<\\\/span>\/);\nif(g)return g[1];\nreturn '';\n})()",
"name": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/<h1[^>]*class=\"hg-web-play__title\"[^>]*>([^<]*)<\\\/h1>\/);\nif(m)return m[1].trim();\nvar t=h.match(\/<h1[^>]*>([^<]*)<\\\/h1>\/);\nif(t)return t[1].replace(\/介绍$\/,'').trim();\nvar og=h.match(\/property=\"og:title\" content=\"([^\"]*)\"\/);\nif(og)return og[1].replace(\/_免费在线观看.*$\/,'').trim();\nreturn '';\n})()"
},
"ruleContent": {
"content": "@js:\n(function(){\nvar FIX=(function(){var DEF='https:\/\/thu.xxbgwypx.cc' ;var cur=DEF;try{var t=String(source.get('hg_line')||'');if(t.indexOf('http')===0)cur=t}catch(e){} var bad=cur.indexOf('h2na6qa39')>=0||cur.indexOf('arj2ftl0')>=0||cur.indexOf('40ygo615')>=0||cur.indexOf('jxqgmx5ga')>=0;var now=Date.now();var ts=0;try{ts=parseInt(String(source.get('hg_line_chk')))}catch(e){} if(isNaN(ts))ts=0;if(!bad&&now-ts<180000)return cur;var ok=false;if(!bad)try{ok=String(java.ajax(cur+'\/,{\"timeout\":8000,\"retry\":0}')).length>20000}catch(e){} if(ok){try{source.put('hg_line_chk',String(now))}catch(e){} return cur}var best='';var cs=['https:\/\/thu.xxbgwypx.cc','https:\/\/pku.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/sjtu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc'];var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} if(!res){try{res=java.ajaxAll(cs)}catch(e2){ } } if(res){var mBest=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<400&&bl>20000&&ms<mBest){mBest=ms;best=cs[k]} } } if(!best)best=DEF;try{source.put('hg_line',best);source.put('hg_line_chk',String(now))}catch(e6){} try{java.longToast('原线路不可用,已自动切换:'+best)}catch(e7){} return best})();var h='';var got='';\nfor(var att=0;att<3&&(!got);att++){\n var line=(att===0)?FIX:((function(){var cs=['https:\/\/pku.xxbgwypx.cc','https:\/\/thu.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc','https:\/\/xmu.xxbgwypx.cc','https:\/\/sysu.xxbgwypx.cc','https:\/\/jlu.xxbgwypx.cc'] ;var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} var best='';if(res){var mb=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<401&&bl>20000&&ms<mb){mb=ms;best=cs[k]} } } return best||FIX})());\n if(att>0){try{source.put('hg_line',line);source.put('hg_line_chk',String(Date.now()))}catch(e8){}}\n var h2=String(java.ajax(String(baseUrl).replace(\/^https?:\\\/\\\/[^\\\/]+\/,line.replace(\/\\\/$\/,''))+',{\"timeout\":8000,\"retry\":0}'));\n var mm=h2.match(\/<source src=\"([^\"]+)\"\/);\n if(mm){got=mm[1].split('&').join('&')}else{try{source.put('hg_line_chk','0')}catch(e9){}}\n}\nreturn got;\n})()"
},
"ruleExplore": {
"author": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar t=h.match(\/data-track-type-name=\"([^\"]*)\"\/);\nvar tg=h.match(\/class=\"hg-drama-card__tags\">([\\s\\S]*?)<\\\/div>\/)||h.match(\/class=\"hg-rank-item__tags\">([\\s\\S]*?)<\\\/div>\/);\nvar g='';\nif(tg)g=tg[1].replace(\/<span class=\"sr-only\">[\\s\\S]*?<\\\/span>\/g,'').replace(\/<[^>]*>\/g,' ').replace(\/\\s+\/g,' ').trim();\nif(t)return t[1];\nreturn g;\n})()",
"bookList": ".hg-list-page .hg-card-grid .hg-drama-card, .hg-list-page .hg-rank-item, .hg-list-page .hg-topic-grid .hg-topic-card",
"bookUrl": "@js:\n(function(){\nvar FIX=(function(){var DEF='https:\/\/thu.xxbgwypx.cc' ;var cur=DEF;try{var t=String(source.get('hg_line')||'');if(t.indexOf('http')===0)cur=t}catch(e){} var bad=cur.indexOf('h2na6qa39')>=0||cur.indexOf('arj2ftl0')>=0||cur.indexOf('40ygo615')>=0||cur.indexOf('jxqgmx5ga')>=0;var now=Date.now();var ts=0;try{ts=parseInt(String(source.get('hg_line_chk')))}catch(e){} if(isNaN(ts))ts=0;if(!bad&&now-ts<180000)return cur;var ok=false;if(!bad)try{ok=String(java.ajax(cur+'\/,{\"timeout\":8000,\"retry\":0}')).length>20000}catch(e){} if(ok){try{source.put('hg_line_chk',String(now))}catch(e){} return cur}var best='';var cs=['https:\/\/thu.xxbgwypx.cc','https:\/\/pku.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/sjtu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc'];var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} if(!res){try{res=java.ajaxAll(cs)}catch(e2){ } } if(res){var mBest=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<400&&bl>20000&&ms<mBest){mBest=ms;best=cs[k]} } } if(!best)best=DEF;try{source.put('hg_line',best);source.put('hg_line_chk',String(now))}catch(e6){} try{java.longToast('原线路不可用,已自动切换:'+best)}catch(e7){} return best})();\nvar h=String(result);\nvar root='';\ntry{root=String(source.get('hg_line')||'')}catch(e){}\nif(!root||root.indexOf('http')!==0){try{root=String(source.getBookSourceUrl())}catch(e2){root=''}}\nroot=root.split(String.fromCharCode(35,35))[0];\nif(!root||root.indexOf('http')!==0)root=String(baseUrl||'').split(String.fromCharCode(35,35))[0].replace(\/\\\/$\/,'');\nroot=root.replace(\/\\\/$\/,'');\nvar tp=h.match(\/href=\"(\\\/topics\\\/[a-zA-Z0-9\\-]+\\\/)\"\/);\nif(tp)return root+tp[1];\nvar mv=h.match(\/href=\"(\\\/video\\\/\\d+\\\/)\"\/);\nif(mv)return root+mv[1];\nreturn '';\n})()",
"coverUrl": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-src=\"([^\"]+)\"\/);\nif(!m)return '';\nvar o=m[1];\nreturn o+(o.indexOf('?')<0?'?':'&')+'hgimgv=2';\n})()",
"intro": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar d=h.match(\/class=\"hg-drama-card__desc\">([\\s\\S]*?)<\\\/p>\/)||h.match(\/class=\"hg-rank-item__desc\">([\\s\\S]*?)<\\\/p>\/);\nreturn d?d[1].replace(\/<[^>]*>\/g,'').trim():'';\n})()",
"kind": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return '专题合集';\nvar t=h.match(\/data-track-type-name=\"([^\"]*)\"\/);\nvar tg=h.match(\/class=\"hg-drama-card__tags\">([\\s\\S]*?)<\\\/div>\/)||h.match(\/class=\"hg-rank-item__tags\">([\\s\\S]*?)<\\\/div>\/);\nvar g='';\nif(tg)g=tg[1].replace(\/<span class=\"sr-only\">[\\s\\S]*?<\\\/span>\/g,'').replace(\/<[^>]*>\/g,' ').replace(\/\\s+\/g,' ').trim();\nif(t)return t[1]+' · '+g;\nreturn g;\n})()",
"lastChapter": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-ep-base=\"([^\"]*)\"\/);\nif(m&&m[1]){\n var t=h.match(\/hg-ep-time__at\">([^<]*)<\/);\n return t&&t[1]?m[1]+'('+t[1]+')':m[1];\n}\nvar s=h.match(\/hg-drama-card__episode\">([^<]*)<\/);\nif(s&&s[1])return s[1];\nreturn '';\n})()",
"name": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-track-title=\"([^\"]*)\"\/);\nif(m)return m[1];\nvar tp=h.match(\/class=\"hg-topic-card__title\">([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar a=h.match(\/class=\"hg-drama-card__title\"[^>]*>[\\s\\S]*?<a[^>]*>([\\s\\S]*?)<\\\/a>\/)||h.match(\/class=\"hg-rank-item__title\"[^>]*>[\\s\\S]*?<a[^>]*>([\\s\\S]*?)<\\\/a>\/);\nif(a)return a[1].replace(\/<[^>]*>\/g,'').replace(\/全集在线观看\/g,'').trim();\nreturn '';\n})()"
},
"ruleSearch": {
"author": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar t=h.match(\/data-track-type-name=\"([^\"]*)\"\/);\nvar tg=h.match(\/class=\"hg-drama-card__tags\">([\\s\\S]*?)<\\\/div>\/)||h.match(\/class=\"hg-rank-item__tags\">([\\s\\S]*?)<\\\/div>\/);\nvar g='';\nif(tg)g=tg[1].replace(\/<span class=\"sr-only\">[\\s\\S]*?<\\\/span>\/g,'').replace(\/<[^>]*>\/g,' ').replace(\/\\s+\/g,' ').trim();\nif(t)return t[1];\nreturn g;\n})()",
"bookList": ".hg-list-page .hg-card-grid .hg-drama-card, .hg-list-page .hg-rank-item, .hg-list-page .hg-topic-grid .hg-topic-card",
"bookUrl": "@js:\n(function(){\nvar FIX=(function(){var DEF='https:\/\/thu.xxbgwypx.cc' ;var cur=DEF;try{var t=String(source.get('hg_line')||'');if(t.indexOf('http')===0)cur=t}catch(e){} var bad=cur.indexOf('h2na6qa39')>=0||cur.indexOf('arj2ftl0')>=0||cur.indexOf('40ygo615')>=0||cur.indexOf('jxqgmx5ga')>=0;var now=Date.now();var ts=0;try{ts=parseInt(String(source.get('hg_line_chk')))}catch(e){} if(isNaN(ts))ts=0;if(!bad&&now-ts<180000)return cur;var ok=false;if(!bad)try{ok=String(java.ajax(cur+'\/,{\"timeout\":8000,\"retry\":0}')).length>20000}catch(e){} if(ok){try{source.put('hg_line_chk',String(now))}catch(e){} return cur}var best='';var cs=['https:\/\/thu.xxbgwypx.cc','https:\/\/pku.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/sjtu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc'];var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} if(!res){try{res=java.ajaxAll(cs)}catch(e2){ } } if(res){var mBest=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<400&&bl>20000&&ms<mBest){mBest=ms;best=cs[k]} } } if(!best)best=DEF;try{source.put('hg_line',best);source.put('hg_line_chk',String(now))}catch(e6){} try{java.longToast('原线路不可用,已自动切换:'+best)}catch(e7){} return best})();\nvar h=String(result);\nvar root='';\ntry{root=String(source.get('hg_line')||'')}catch(e){}\nif(!root||root.indexOf('http')!==0){try{root=String(source.getBookSourceUrl())}catch(e2){root=''}}\nroot=root.split(String.fromCharCode(35,35))[0];\nif(!root||root.indexOf('http')!==0)root=String(baseUrl||'').split(String.fromCharCode(35,35))[0].replace(\/\\\/$\/,'');\nroot=root.replace(\/\\\/$\/,'');\nvar tp=h.match(\/href=\"(\\\/topics\\\/[a-zA-Z0-9\\-]+\\\/)\"\/);\nif(tp)return root+tp[1];\nvar mv=h.match(\/href=\"(\\\/video\\\/\\d+\\\/)\"\/);\nif(mv)return root+mv[1];\nreturn '';\n})()",
"checkKeyWord": "全班地铁求生",
"coverUrl": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-src=\"([^\"]+)\"\/);\nif(!m)return '';\nvar o=m[1];\nreturn o+(o.indexOf('?')<0?'?':'&')+'hgimgv=2';\n})()",
"intro": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar d=h.match(\/class=\"hg-drama-card__desc\">([\\s\\S]*?)<\\\/p>\/)||h.match(\/class=\"hg-rank-item__desc\">([\\s\\S]*?)<\\\/p>\/);\nreturn d?d[1].replace(\/<[^>]*>\/g,'').trim():'';\n})()",
"kind": "@js:\n(function(){\nvar h=String(result);\nvar tp=h.match(\/class=\"hg-topic-card__meta\">[\\s\\S]*?<span>([^<]+)<\/);\nif(tp)return '专题合集';\nvar t=h.match(\/data-track-type-name=\"([^\"]*)\"\/);\nvar tg=h.match(\/class=\"hg-drama-card__tags\">([\\s\\S]*?)<\\\/div>\/)||h.match(\/class=\"hg-rank-item__tags\">([\\s\\S]*?)<\\\/div>\/);\nvar g='';\nif(tg)g=tg[1].replace(\/<span class=\"sr-only\">[\\s\\S]*?<\\\/span>\/g,'').replace(\/<[^>]*>\/g,' ').replace(\/\\s+\/g,' ').trim();\nif(t)return t[1]+' · '+g;\nreturn g;\n})()",
"lastChapter": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-ep-base=\"([^\"]*)\"\/);\nif(m&&m[1]){\n var t=h.match(\/hg-ep-time__at\">([^<]*)<\/);\n return t&&t[1]?m[1]+'('+t[1]+')':m[1];\n}\nvar s=h.match(\/hg-drama-card__episode\">([^<]*)<\/);\nif(s&&s[1])return s[1];\nreturn '';\n})()",
"name": "@js:\n(function(){\nvar h=String(result);\nvar m=h.match(\/data-track-title=\"([^\"]*)\"\/);\nif(m)return m[1];\nvar tp=h.match(\/class=\"hg-topic-card__title\">([^<]+)<\/);\nif(tp)return tp[1].trim();\nvar a=h.match(\/class=\"hg-drama-card__title\"[^>]*>[\\s\\S]*?<a[^>]*>([\\s\\S]*?)<\\\/a>\/)||h.match(\/class=\"hg-rank-item__title\"[^>]*>[\\s\\S]*?<a[^>]*>([\\s\\S]*?)<\\\/a>\/);\nif(a)return a[1].replace(\/<[^>]*>\/g,'').replace(\/全集在线观看\/g,'').trim();\nreturn '';\n})()"
},
"ruleToc": {
"chapterList": "@js:\n(function(){\ntry{book.setType(4)}catch(e){}\nvar FIX=(function(){var DEF='https:\/\/thu.xxbgwypx.cc' ;var cur=DEF;try{var t=String(source.get('hg_line')||'');if(t.indexOf('http')===0)cur=t}catch(e){} var bad=cur.indexOf('h2na6qa39')>=0||cur.indexOf('arj2ftl0')>=0||cur.indexOf('40ygo615')>=0||cur.indexOf('jxqgmx5ga')>=0;var now=Date.now();var ts=0;try{ts=parseInt(String(source.get('hg_line_chk')))}catch(e){} if(isNaN(ts))ts=0;if(!bad&&now-ts<180000)return cur;var ok=false;if(!bad)try{ok=String(java.ajax(cur+'\/,{\"timeout\":8000,\"retry\":0}')).length>20000}catch(e){} if(ok){try{source.put('hg_line_chk',String(now))}catch(e){} return cur}var best='';var cs=['https:\/\/thu.xxbgwypx.cc','https:\/\/pku.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/sjtu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc'];var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} if(!res){try{res=java.ajaxAll(cs)}catch(e2){ } } if(res){var mBest=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<400&&bl>20000&&ms<mBest){mBest=ms;best=cs[k]} } } if(!best)best=DEF;try{source.put('hg_line',best);source.put('hg_line_chk',String(now))}catch(e6){} try{java.longToast('原线路不可用,已自动切换:'+best)}catch(e7){} return best})();var h='';var usable=false;var line=FIX;\nfor(var att=0;att<3&&(!usable);att++){\n if(att>0){line=(function(){var cs=['https:\/\/pku.xxbgwypx.cc','https:\/\/thu.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc','https:\/\/xmu.xxbgwypx.cc','https:\/\/sysu.xxbgwypx.cc','https:\/\/jlu.xxbgwypx.cc'] ;var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} var best='';if(res){var mb=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<401&&bl>20000&&ms<mb){mb=ms;best=cs[k]} } } return best||FIX})()}\n var h2=String(java.ajax(String(baseUrl).replace(\/^https?:\\\/\\\/[^\\\/]+\/,line.replace(\/\\\/$\/,''))+',{\"timeout\":8000,\"retry\":0}'));\n if(h2.indexOf('data-track-total-episode')>=0||h2.indexOf('hg-list-page')>=0){h=h2;usable=true}\n else{try{source.put('hg_line_chk','0')}catch(e9){}}\n}\nvar bUrl=String(baseUrl).replace(\/^https?:\\\/\\\/[^\\\/]+\/,(usable?line:FIX).replace(\/\\\/$\/,''));\nvar root='';\ntry{root=String(source.get('hg_line')||'')}catch(e){}\nif(!root||root.indexOf('http')!==0){try{root=String(source.getBookSourceUrl())}catch(e2){root=''}}\nroot=root.split(String.fromCharCode(35,35))[0];\nif(!root||root.indexOf('http')!==0)root=String(baseUrl||'').split(String.fromCharCode(35,35))[0].replace(\/\\\/$\/,'');\nroot=root.replace(\/\\\/$\/,'');\nvar list=new Packages.java.util.ArrayList();\nvar TAB=String.fromCharCode(9);\nvar m=h.match(\/data-track-total-episode=\"(\\d+)\"\/);\nif(m){\n var total=parseInt(m[1]);\n var vr=String(bUrl).replace(\/\\\/$\/,'').replace(\/\\\/ep-\\d+$\/,'');\n for(var i=1;i<=total;i++){list.add('第'+i+'集'+TAB+vr+(i===1?'\/':'\/ep-'+i+'\/'));}\n return list;\n}\nvar li=h.indexOf('hg-list-page');\nif(li<0){\n var vr2=String(bUrl).replace(\/\\\/$\/,'').replace(\/\\\/ep-\\d+$\/,'');\n list.add('第1集'+TAB+vr2+'\/');\n return list;\n}\nvar body=h.substring(li);\nvar re=\/data-track-title=\"([^\"]*)\"\/g,mm;\nwhile((mm=re.exec(body))!=null){\n var st=body.lastIndexOf('<div',mm.index);\n var seg=body.substring(st,st+1500);\n var u=seg.match(\/href=\"(\\\/video\\\/\\d+\\\/)\"\/);\n if(!u)continue;\n list.add(mm[1]+TAB+root+u[1]);\n}\nif(list.size()===0)list.add('专题视频'+TAB+root+'\/');\nreturn list;\n})()",
"chapterName": "@js:\n(function(){\nvar s=''+result;var i=s.indexOf(String.fromCharCode(9));return i>0?s.substring(0,i):s;\n})()",
"chapterUrl": "@js:\n(function(){\nvar s=''+result;var i=s.indexOf(String.fromCharCode(9));return i>0?s.substring(i+1):s;\n})()"
},
"searchUrl": "{{(function(){var DEF='https:\/\/thu.xxbgwypx.cc' ;var cur=DEF;try{var t=String(source.get('hg_line')||'');if(t.indexOf('http')===0)cur=t}catch(e){} var bad=cur.indexOf('h2na6qa39')>=0||cur.indexOf('arj2ftl0')>=0||cur.indexOf('40ygo615')>=0||cur.indexOf('jxqgmx5ga')>=0;var now=Date.now();var ts=0;try{ts=parseInt(String(source.get('hg_line_chk')))}catch(e){} if(isNaN(ts))ts=0;if(!bad&&now-ts<180000)return cur;var ok=false;if(!bad)try{ok=String(java.ajax(cur+'\/,{\"timeout\":8000,\"retry\":0}')).length>20000}catch(e){} if(ok){try{source.put('hg_line_chk',String(now))}catch(e){} return cur}var best='';var cs=['https:\/\/thu.xxbgwypx.cc','https:\/\/pku.xxbgwypx.cc','https:\/\/fdu.xxbgwypx.cc','https:\/\/sjtu.xxbgwypx.cc','https:\/\/zju.xxbgwypx.cc','https:\/\/nju.xxbgwypx.cc'];var res=null;try{res=java.ajaxAll(cs,true)}catch(e1){} if(!res){try{res=java.ajaxAll(cs)}catch(e2){ } } if(res){var mBest=1e12;for(var k=0;k<res.length;k++){var code=-9,ms=1e12,bl=0;try{code=res[k].raw().code()}catch(e3){} try{ms=res[k].callTime()}catch(e4){} try{bl=String(res[k].body()).length}catch(e5){} if(code>=200&&code<400&&bl>20000&&ms<mBest){mBest=ms;best=cs[k]} } } if(!best)best=DEF;try{source.put('hg_line',best);source.put('hg_line_chk',String(now))}catch(e6){} try{java.longToast('原线路不可用,已自动切换:'+best)}catch(e7){} return best})()}}\/search\/video\/{{encodeURIComponent(key)}}\/",
"weight": 0
}