禁漫天堂(漫画小说视频)

https://jmtt1.net

laizhiyu (6509)10/31 12:20

jmtt1.net(18mh.net) 三模式书源 v1.0
二维码导入
{
    "bookSourceComment": "jmtt1.net(18mh.net) 三模式书源 v1.0",
    "bookSourceGroup": "AI",
    "bookSourceName": "禁漫天堂(漫画小说视频)",
    "bookSourceType": 0,
    "bookSourceUrl": "https:\/\/jmtt1.net",
    "bookUrlPattern": ".*\\\/(comic|novel|mv)\\\/detail\\\/\\d+.*",
    "concurrentRate": "1\/1500",
    "customButton": false,
    "customOrder": 0,
    "enabled": true,
    "enabledCookieJar": true,
    "enabledExplore": true,
    "eventListener": false,
    "exploreUrl": "@js:(function(){\nvar H='https:\/\/abandon.yyc2mhau.cc';\nvar m='';\ntry{m=String(source.get('jmMode'));}catch(e1){}\nif(m==='null'||m==='undefined'){m='';}\nif(m===''){try{m=String(source.getVariable());}catch(e2){}if(m==='null'||m==='undefined'){m='';}}\nvar seg='comic';if(m==='小说'){seg='novel';}else if(m==='视频'){seg='mv';}\nvar comicCats=[['全部',''],['爱情','\/aq'],['BL','\/bl'],['单本','\/db'],['短篇','\/dp'],['韩漫','\/hg'],['剧情','\/jq'],['乱伦','\/ll'],['奇幻','\/qh'],['日漫','\/rb'],['调教','\/tj'],['同人','\/tr'],['校园','\/xy']];\nvar novelCats=[['全部',''],['都市激情','\/dsjq'],['校园春色','\/xycs'],['乡村爱情','\/xcaq'],['系统异能','\/xtyn'],['家庭乱伦','\/jtll'],['穿越重生','\/cycs'],['经典武侠','\/jdwx'],['同人改编','\/trgb'],['科学幻想','\/kxhx'],['东方玄幻','\/dfxh'],['娱乐明星','\/ylmx'],['历史架空','\/lsjk'],['西方魔幻','\/xfmh'],['贤者小说','\/xzxs']];\nvar mvCats=[['全部',''],['AI短剧','\/aidj'],['国产视频','\/gcsp'],['日本AV','\/rbav'],['H动漫','\/hdm'],['偷拍摄像','\/tp'],['次元萝莉','\/cyll'],['国产传媒','\/gccm'],['主播福利','\/zbfl'],['吃瓜爆料','\/cgbl'],['无码流出','\/wmlc'],['高清AV','\/gqav'],['同人热播','\/trrb'],['3D动漫','\/3ddm']];\nvar cats=seg==='novel'?novelCats:(seg==='mv'?mvCats:comicCats);\nvar rows=[];\nfor(var i=0;i<cats.length;i++){\n  rows.push({title:seg+'·'+cats[i][0],url:H+'\/'+seg+'\/all'+cats[i][1]});\n}\nrows.push({title:'漫画·排行榜',url:H+'\/comic\/rank'});\nrows.push({title:'漫画·最近更新',url:H+'\/comic\/newest'});\nreturn JSON.stringify(rows);\n})()",
    "header": "{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.6367.82 Mobile Safari\/537.36\"}",
    "jsLib": "\/\/ jmLib: 线路\/模式\/请求工具(规则 @js 与 loginUrl 共享;ES5 语法,Rhino 安全子集)\nvar JM_HOST_DEF = 'https:\/\/abandon.yyc2mhau.cc';\nvar JM_UA = 'Mozilla\/5.0 (Linux; Android 14) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.6367.82 Mobile Safari\/537.36';\nvar JM_PUB = 'https:\/\/jmtt1.net';\n\nfunction jmStr(v) {\n  var s = String(v == null ? '' : v);\n  if (s === 'null' || s === 'undefined') s = '';\n  return s;\n}\n\nfunction jmHost(sv) {\n  try {\n    var h = jmStr(sv.get('jmHost'));\n    if (h.indexOf('http') === 0) return h;\n  } catch (e1) {}\n  try {\n    var v = jmStr(sv.getVariable());\n    if (v.indexOf('http') === 0) return v;\n  } catch (e2) {}\n  return JM_HOST_DEF;\n}\n\nfunction jmUA() {\n  return JM_UA;\n}\n\nfunction jmOpt(timeout) {\n  var t = timeout || 20000;\n  return ',{\"headers\":{\"User-Agent\":\"' + JM_UA + '\"},\"timeout\":' + t + '}';\n}\n\nfunction jmMode(sv) {\n  var m = '';\n  try {\n    m = jmStr(sv.get('jmMode'));\n  } catch (e1) {}\n  if (m === '') {\n    try {\n      var v = sv.getVariable();\n      m = jmStr(v);\n    } catch (e2) {}\n  }\n  if (m === '小说' || m === '视频') return m;\n  return '漫画';\n}\n",
    "lastUpdateTime": "1793420433119",
    "loginUi": "[\n  {\"name\":\"jmPub\",\"type\":\"text\",\"viewName\":\"'🌐 发布页地址(可改)'\",\"value\":\"https:\/\/jmtt1.net\",\"action\":\"jmSavePub(java)\"},\n  {\"name\":\"jmFetch\",\"type\":\"button\",\"viewName\":\"'📡 一键从发布页获取线路'\",\"action\":\"jmFetchLines(java)\"},\n  {\"name\":\"jmTest\",\"type\":\"button\",\"viewName\":\"'📶 测试延时(ms 回填各线路按钮)'\",\"action\":\"jmTestCurrent(java)\"},\n  {\"name\":\"jmStatus\",\"type\":\"button\",\"viewName\":\"jmHostLabel()\",\"action\":\"jmTestCurrent(java)\"},\n  {\"name\":\"jmModeC\",\"type\":\"button\",\"viewName\":\"jmModeLabel('漫画')\",\"action\":\"jmSetMode(java,'漫画')\"},\n  {\"name\":\"jmModeN\",\"type\":\"button\",\"viewName\":\"jmModeLabel('小说')\",\"action\":\"jmSetMode(java,'小说')\"},\n  {\"name\":\"jmModeV\",\"type\":\"button\",\"viewName\":\"jmModeLabel('视频')\",\"action\":\"jmSetMode(java,'视频')\"},\n  {\"name\":\"jmLine0\",\"type\":\"button\",\"viewName\":\"jmLineLabel(0)\",\"action\":\"jmPickLine(java,0)\"},\n  {\"name\":\"jmLine1\",\"type\":\"button\",\"viewName\":\"jmLineLabel(1)\",\"action\":\"jmPickLine(java,1)\"},\n  {\"name\":\"jmLine2\",\"type\":\"button\",\"viewName\":\"jmLineLabel(2)\",\"action\":\"jmPickLine(java,2)\"},\n  {\"name\":\"jmLine3\",\"type\":\"button\",\"viewName\":\"jmLineLabel(3)\",\"action\":\"jmPickLine(java,3)\"},\n  {\"name\":\"jmLine4\",\"type\":\"button\",\"viewName\":\"jmLineLabel(4)\",\"action\":\"jmPickLine(java,4)\"},\n  {\"name\":\"jmLine5\",\"type\":\"button\",\"viewName\":\"jmLineLabel(5)\",\"action\":\"jmPickLine(java,5)\"}\n]",
    "loginUrl": "\/\/ jmtt loginUrl: 登录检查 + 三模式切换 + 发布页获取线路 + 测速选线(V1 静态 loginUi 的 action 函数库)\n\/\/ 环境:$loginJS\\n$buttonJS,source\/java 绑定可用;java=SourceLoginJsExtensions(put\/get\/toast\/longToast\/ajax)\n\/\/ ★ 本串中 Mozilla\/5.0 (Linux; Android 14) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.6367.82 Mobile Safari\/537.36 占位在构建时替换为真实 UA;单引号字符串,避免与 action 的 Q() 拼接冲突\nfunction login() {\n  return '游客模式可用,无需登录。请使用下方按钮管理线路与模式。';\n}\n\nfunction jmQ(c) {\n  return String.fromCharCode(39);\n}\n\nfunction jmToast(jv, msg) {\n  try { jv.toast(msg); } catch (e1) {}\n  try { jv.longToast(msg); } catch (e2) {}\n}\n\/\/ 三模式切换:source.put('jmMode', mode) + 刷新面板按钮名\nfunction jmSetMode(java, mode) {\n  var jv = java;\n  try { jv.put('jmMode', mode); } catch (e1) {}\n  try { jv.setVariable(mode); } catch (e1b) {}\n  try { jv.toast('已切换:' + mode + ' 模式'); } catch (e2) {}\n  try { jv.reLoginView(false); } catch (e3) {}\n  return mode;\n}\n\n\/\/ 一键从发布页获取线路:抓 jmtt1.net 词表 → 生成候选 → 并发测速 → 最快者写 jmHost\nfunction jmFetchLines(java) {\n  var jv = java;\n  var msg = '';\n  try {\n    jmToast(jv, '⏳ 正在从发布页 jmtt1.net 获取线路…');\n    var pub = String(jv.ajax(jmPubUrl() + ',{\"timeout\":15000}'));\n    var mw = pub.match(\/words\\s*=\\s*'([a-z,]+)'\/);\n    if (!mw) { jmToast(jv, '❌ 发布页词表解析失败(检查发布页地址)'); return; }\n    var words = mw[1].split(',');\n    msg = '词表 ' + words.length + ' 词;';\n    \/\/ 生成候选:词表随机取 4 + backup 固定 2 = 6 线(与面板 6 个线路按钮对应)\n    var cand = [];\n    var used = {};\n    var tries = 0;\n    while (cand.length < 4 && tries < 60) {\n      tries++;\n      var w = words[Math.floor(Math.random() * words.length)];\n      if (w && !used[w]) { used[w] = 1; cand.push('https:\/\/' + w + '.yyc2mhau.cc'); }\n    }\n    \/\/ backup 固定域(\/index\/backup 页实测域名池样本)\n    var fixed = ['https:\/\/w9xfv.yyc2mhau.cc', 'https:\/\/18mh.01buliangrukou.com'];\n    for (var fi = 0; fi < fixed.length; fi++) {\n      if (cand.indexOf(fixed[fi]) < 0) cand.push(fixed[fi]);\n    }\n    jmSpeedTest(java, cand);\n  } catch (e) {\n    jmToast(jv, '❌ 获取线路失败:' + String(e).substring(0, 120));\n  }\n}\n\/\/ 逐线路测速:结果写 jmLatN 供 viewName 显示,最快写 jmHost;含 4073ms 防抖守卫\nfunction jmSpeedTest(java, cand) {\n  var jv = java;\n  var best = -1;\n  var bestMs = 999999;\n  for (var i = 0; i < cand.length; i++) {\n    var u = cand[i];\n    var t0 = Date.now();\n    var ok = false;\n    try {\n      String(jv.ajax(u + '\/favicon.ico,{\"timeout\":8000}'));\n      ok = true;\n    } catch (e) { ok = false; }\n    var ms = Date.now() - t0;\n    if (!ok) ms = 999999;\n    try { jv.put('jmLat' + i, ok ? (ms + 'ms') : '超时'); } catch (ep) {}\n    try { jv.put('jmLine' + i, u); } catch (ep2) {}\n    if (ok && ms < bestMs) { bestMs = ms; best = i; }\n  }\n  var msg = '';\n  for (var j = 0; j < cand.length; j++) {\n    var l = '';\n    try { l = jmStr(jv.get('jmLine' + j)); } catch (eg) {}\n    var lt = '';\n    try { lt = jmStr(jv.get('jmLat' + j)); } catch (eg2) {}\n    if (l !== '') msg += (j + 1) + '. ' + l.replace('https:\/\/', '') + ' → ' + lt + '\\n';\n  }\n  var cur = '';\n  try { cur = jmStr(jv.get('jmHost')); } catch (eg3) {}\n  if (best >= 0) {\n    try { jv.put('jmHost', cand[best]); } catch (ep3) {}\n    msg += '✅ 已切换最快线路:' + cand[best].replace('https:\/\/', '') + '(' + bestMs + 'ms)';\n    jmToast(jv, msg);\n  } else {\n    msg += '❌ 全部线路不可达';\n    jmToast(jv, msg);\n  }\n  try { jv.reLoginView(false); } catch (er) {}\n}\n\n\/\/ 保存发布页输入值;jmGetPubInp 始终返回 true(V1 静态面板 text 行的值经 form 机制自动持久化)\nfunction jmSavePub(java) {\n  var jv = java;\n  var v = '';\n  try { v = jmStr(jv.get('jmPub')); } catch (e) {}\n  if (v.indexOf('http') !== 0) v = 'https:\/\/jmtt1.net';\n  try { jv.put('jmPub', v); } catch (e2) {}\n  jmToast(jv, '✅ 发布页地址已保存:' + v);\n  try { jv.reLoginView(false); } catch (e3) {}\n}\n\nfunction jmGetPubInp(v) {\n  return true;\n}\n\n\/\/ jmFetchLines 改从 jmPub 读发布页地址\nfunction jmPubUrl() {\n  var v = '';\n  try { v = jmStr(source.get('jmPub')); } catch (e) {}\n  if (v.indexOf('http') !== 0) v = 'https:\/\/jmtt1.net';\n  return v.replace(\/\\\/+$\/, '');\n}\n\n\/\/ —— loginUrl 作用域独立的工具副本(不依赖 jsLib)——\nfunction jmStr(v) {\n  var s = String(v == null ? '' : v);\n  if (s === 'null' || s === 'undefined') s = '';\n  return s;\n}\n\n\/\/ 测试当前已存线路延时(不自动切换,只回填 ms 到各按钮)\nfunction jmTestCurrent(java) {\n  var jv = java;\n  var cand = [];\n  for (var i = 0; i < 6; i++) {\n    var u = '';\n    try { u = jmStr(jv.get('jmLine' + i)); } catch (e) {}\n    if (u.indexOf('http') === 0) cand.push(u);\n  }\n  if (cand.length === 0) {\n    jmToast(jv, '⚠️ 尚无线路缓存,请先点「📡 从发布页获取线路」');\n    return;\n  }\n  jmSpeedTest(java, cand, false);\n}\n\n\/\/ 点击某个线路按钮:快测该线 → 可达则切换 jmHost\nfunction jmPickLine(java, idx) {\n  var jv = java;\n  var u = '';\n  try { u = jmStr(jv.get('jmLine' + idx)); } catch (e) {}\n  if (u.indexOf('http') !== 0) {\n    jmToast(jv, '⚠️ 该线路位为空,请先点「📡 从发布页获取线路」');\n    return;\n  }\n  jmToast(jv, '⏳ 正在测试 ' + u.replace('https:\/\/', '') + ' …');\n  var t0 = Date.now();\n  var ok = false;\n  try {\n    String(jv.ajax(u + '\/favicon.ico,{\"timeout\":6000}'));\n    ok = true;\n  } catch (e2) { ok = false; }\n  var ms = Date.now() - t0;\n  if (ok) {\n    try { jv.put('jmHost', u); } catch (e3) {}\n    try { jv.put('jmLat' + idx, ms + 'ms'); } catch (e4) {}\n    jmToast(jv, '✅ 已切换线路:' + u.replace('https:\/\/', '') + '(' + ms + 'ms)');\n  } else {\n    try { jv.put('jmLat' + idx, '超时'); } catch (e5) {}\n    jmToast(jv, '❌ 该线路不可达(超时),未切换');\n  }\n  try { jv.reLoginView(false); } catch (e6) {}\n}\n\n\/\/ —— viewName 标签函数(面板每次渲染重跑)——\nfunction jmModeLabel(m) {\n  var cur = '';\n  try { cur = jmStr(source.get('jmMode')); } catch (e) {}\n  if (cur === '') cur = '漫画';\n  var icon = m === '漫画' ? '📖' : (m === '小说' ? '📝' : '🎬');\n  return icon + ' ' + m + (cur === m ? ' ✓' : '');\n}\n\nfunction jmLineLabel(i) {\n  var h = '';\n  try { h = jmStr(source.get('jmLine' + i)); } catch (e) {}\n  var lat = '';\n  try { lat = jmStr(source.get('jmLat' + i)); } catch (e2) {}\n  if (h === '') return '线路' + (i + 1) + '(空)';\n  var cur = '';\n  try { cur = jmStr(source.get('jmHost')); } catch (e3) {}\n  var tag = cur === h ? ' ●当前' : '';\n  return '切 ' + h.replace('https:\/\/', '') + (lat === '' ? '' : ' ' + lat) + tag;\n}\n\nfunction jmHostLabel() {\n  var h = '';\n  try { h = jmStr(source.get('jmHost')); } catch (e) {}\n  if (h === '') h = '默认 abandon.yyc2mhau.cc';\n  return '🌐 当前线路:' + h.replace('https:\/\/', '');\n}\n",
    "respondTime": 180000,
    "ruleBookInfo": {
        "author": "@js:(function(){try{var m=String(result).match(\/\"author\":\\s*\\{\\s*\"@type\":\\s*\"Person\",\\s*\"name\":\\s*\"([^\"]+)\"\/);if(m)return m[1];}catch(e){}try{var a=String(result).match(\/all\\\/author\\\/[^>]*>([^<]+)<\/);if(a)return a[1];}catch(e2){}return \"\";})()",
        "coverUrl": "@js:(function(){var t=String(result||\"\");var H=String(baseUrl).match(\/^https?:\\\/\\\/[^\\\/]+\/);H=H?H[0]:\"https:\/\/abandon.yyc2mhau.cc\";var m=t.match(\/data-src=\"https?:\\\/\\\/[^\\\/?]+(\\\/upload[^\"]+)\"\/);if(m){var p=m[1].split(\"?\")[0];var b=java.base64Encode(p);var ext=p.split(\".\").pop();return H+\"\/social-cover\/\"+b+\".\"+ext;}try{var og=t.match(\/og:image\" content=\"([^\"]+)\"\/);if(og)return og[1];}catch(e2){}return \"\";})()",
        "intro": "@js:(function(){try{var m=String(result).match(\/og:description\" content=\"([^\"]+)\"\/);if(m)return m[1];}catch(e){}return '';})()",
        "kind": "@js:(function(){try{var m=String(result).match(\/\"genre\":\\s*\\[([^\\]]+)\\]\/);if(m){return m[1].replace(\/\"\/g,'').split(',').join(',');}return '';}catch(e){}try{var t=String(result).match(\/jm-dt-tags[\\s\\S]{0,2500}?<\\\/div>\/);if(t){var g=t[0].match(\/>([^<>]{1,12})<\\\/<a>\/g)||[];var o=[];for(var i=0;i<g.length;i++){var w=g[i].replace(\/^>\/,'').replace(\/<\\\/a>$\/,'');if(w&&o.length<8)o.push(w);}return o.join(',');}return '';}catch(e2){}return '';})()",
        "lastChapter": "@js:(function(){try{var m=String(result).match(\/jm-dt-ch__no\">([^<]+)<[\\s\\S]{0,200}?jm-dt-ch__t\">([^<]+)<\/);if(m)return m[1]+' '+m[2];}catch(e){}return '';})()",
        "name": "@js:(function(){var t=String(result||\"\");var m=t.match(\/\"@type\":\\s*\"(?:ComicStory|Book|VideoObject)\"[\\s\\S]{0,3000}?\"name\":\\s*\"([^\"]+)\"\/);if(m)return m[1];try{var h=t.match(\/<h1[^>]*>([\\s\\S]{0,150}?)<\\\/h1>\/);if(h)return h[1].replace(\/<[^>]*>\/g,\"\").trim();}catch(e2){}return \"\";})()",
        "tocUrl": "@js:baseUrl"
    },
    "ruleContent": {
        "content": "@js:(function(){\nvar u=String(baseUrl||'');\nvar t=String(result||'');\nvar out=[];\n\/\/ ===== 视频分支 =====\nif(u.indexOf('\/mv\/')>=0){\n  var mid=(u.match(\/\\\/detail\\\/(\\d+)\/)||[])[1];\n  var embed=u.replace(\/\\\/detail\\\/\\d+.*$\/,'\/embed?id='+ (mid||''));\n  var title='';\n  try{var mm=String(result).match(\/\"@type\":\\s*\"VideoObject\"[\\s\\S]{0,2000}?\"name\":\\s*\"([^\"]+)\"\/);if(mm)title=mm[1];}catch(e3){}\n  try{java.startBrowser(embed, title||'禁漫天堂视频');}catch(e1){}\n  out.push('🎬 已在内置浏览器打开播放器。');\n  out.push('');\n  out.push('若未弹出,点菜单【刷新正文】重试,或手动打开:');\n  out.push(embed);\n  out.push('');\n  out.push('(三层签名链 m3u8+auth_key+1800s 窗口,需浏览器 hls.js 播放)');\n  return out.join('\\n');\n}\n\/\/ ===== 漫画分支 =====\nif(u.indexOf('\/comic\/')>=0){\n  var pi=t.indexOf('<section class=\"jm-rd-pages\"');\n  var pe=t.indexOf('<\/section>',pi);\n  var seg=pi>=0?t.substring(pi,pe):t;\n  var H=u.match(\/^https?:\\\/\\\/[^\\\/]+\/);\n  H=H?H[0]:'https:\/\/abandon.yyc2mhau.cc';\n  var re=\/data-src=\"(https?:\\\/\\\/[^\\\/?]+)(\\\/upload[^\"?]+)[^\"]*\"\/g;var m;\n  while((m=re.exec(seg))!==null){\n    var p=m[2];\n    var b=java.base64Encode(p);\n    var ext=p.split('.').pop();\n    out.push('<img src=\"'+H+'\/social-cover\/'+b+'.'+ext+'\">');\n  }\n  if(out.length===0){\n    var re2=\/<img[^>]*src=\"https?:\\\/\\\/[^\\\/?]+(\\\/upload[^\"?]+)[^\"]*\"\/g;var m2;\n    while((m2=re2.exec(seg))!==null){\n      var p2=m2[1];\n      var b2=java.base64Encode(p2);\n      var e2=p2.split('.').pop();\n      out.push('<img src=\"'+H+'\/social-cover\/'+b2+'.'+e2+'\">');\n    }\n  }\n  return out.join('\\n');\n}\n\/\/ ===== 小说分支 =====\nvar si=t.indexOf('jm-rd-text');\nvar st=t.indexOf('>',si);\nvar en=t.indexOf('data-rd-text-end',st);\nif(en<0)en=t.indexOf('<\/article>',st);\nif(en<0)en=st+60000;\nvar seg2=t.substring(st+1,en);\nvar ps=seg2.match(\/<p>[\\s\\S]*?<\\\/p>\/g)||[];\nvar ps2=[];\nfor(var i=0;i<ps.length;i++){\n  var x=ps[i].replace(\/^<p>\/,'').replace(\/<\\\/p>$\/,'').replace(\/<[^>]+>\/g,'').replace(\/&nbsp;\/g,' ');\n  if(x.replace(\/\\s\/g,'')!=='')ps2.push('  '+x);\n}\nif(ps2.length===0){ps2.push(String(t).substring(0,120));}\nreturn ps2.join('\\n');\n})()",
        "imageStyle": "FULL"
    },
    "ruleExplore": {},
    "ruleSearch": {
        "bookList": "li.jm-card,li.jm-vcard",
        "bookUrl": "a.jm-card__cover@href||a.jm-vcard__cover@href",
        "checkKeyWord": "浪花里",
        "coverUrl": "@js:(function(){var h=\"\";try{h=result.html();}catch(e){h=String(result);}var m=h.match(\/data-src=\"https?:\\\/\\\/[^\\\/?]+(\\\/upload[^\"]+)\"\/);if(m){var p=m[1].split(\"?\")[0];var b=java.base64Encode(p);var ext=p.split(\".\").pop();var H=String(baseUrl).match(\/^https?:\\\/\\\/[^\\\/]+\/);H=H?H[0]:\"https:\/\/abandon.yyc2mhau.cc\";return H+\"\/social-cover\/\"+b+\".\"+ext;}var s=h.match(\/src=\"(https?:[^\"]+upload[^\"]+)\"\/);return s?s[1]:\"\";})()",
        "kind": "span.jm-card__badge--status@text||span.jm-vcard__dur@text",
        "name": "h3 a@text"
    },
    "ruleToc": {
        "chapterList": "@js:(function(){\nvar u=String(baseUrl||'');\nvar t=String(result||'');\nvar ps=t.indexOf('data-jm-dt-panel=\"chap\"');\nvar seg=ps>=0?t.substring(ps):t;\nvar L=[];\nvar isC=u.indexOf('\/comic\/')>=0;\nvar isV=u.indexOf('\/mv\/')>=0;\nvar r;\nif(isC){r=\/href=\"(\\\/comic\\\/chapter\\\/\\d+\\\/\\d+)\"\/g;}\nelse{r=\/href=\"(\\\/novel_chapter\\\/\\d+\\\/\\d+\\.html)\"\/g;}\nvar seen={};var m;\nwhile((m=r.exec(seg))!==null){\n  var url=m[1];\n  if(seen[url])continue;\n  seen[url]=1;\n  var tail=url.split('\/').pop();\n  var num=tail.replace(\/^\\D+\/,'').replace(\/\\.html$\/,'');\n  var title='\\u7b2c'+num+'\\u7ae0';\n  var ctx=seg.substring(m.index, m.index+600);\n  var mn=ctx.match(\/jm-dt-ch__no\">([^<]+)<\/);\n  var mt=ctx.match(\/jm-dt-ch__t\">([^<]+)<\/);\n  if(mn&&mt){title=mn[1]+' '+mt[1];}\n  var o={};o['title']=title;o['url']=url;L.push(o);\n}\ntry{if(isV){book.type=4;}else if(!isC){book.type=8;}else{book.type=64;}}catch(eT){}\nif(L.length===0&&isV){var o2={};o2['title']='\\u25b6 \\u6253\\u5f00\\u64ad\\u653e';o2['url']=u;L.push(o2);}\nreturn L;\n})()",
        "chapterName": "title",
        "chapterUrl": "url"
    },
    "searchUrl": "@js:(function(){\nvar H='https:\/\/abandon.yyc2mhau.cc';\nvar UA='Mozilla\/5.0 (Linux; Android 14) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.6367.82 Mobile Safari\/537.36';\nvar m='';\ntry{m=String(source.get('jmMode'));}catch(e1){}\nif(m==='null'||m==='undefined'){m='';}\nif(m===''){try{m=String(source.getVariable());}catch(e2){}if(m==='null'||m==='undefined'){m='';}}\nvar seg='comic';\nif(m==='小说'){seg='novel';}else if(m==='视频'){seg='mv';}\nreturn H+'\/'+seg+'\/all?key_word={{key}}&page={{page}}' + ',{\"headers\":{\"User-Agent\":\"' + UA + '\"},\"timeout\":20000}';\n})()",
    "weight": 0
}
广告