[{"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(\/&#34;\/g,'\"').replace(\/&quot;\/g,'\"').replace(\/&amp;\/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('&amp;').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}]