[{"bookSourceComment":"番茄小说（fanqienovel.com 公开接口版）。\n· 搜索走番茄 App 搜索接口；详情\/目录走网页公开 JSON 接口；正文经私用区字符映射表还原。\n· 仅能读取公开\/免费章节，VIP 章节需在官方 App 内阅读。\n· 接口若变更，优先更新 searchUrl 与 ruleContent，映射表见 charset.json。\n· 仅供个人学习研究，请遵守番茄小说用户协议。","bookSourceGroup":"番茄,小说","bookSourceName":"番茄ai-deepseek","bookSourceType":0,"bookSourceUrl":"https:\/\/fanqienovel.com##番茄ai-deepseek","bookUrlPattern":"https?:\/\/(www\\.)?fanqienovel\\.com\/(page\/|api\/book\/info\\?bookId=)\\d+","customOrder":0,"enabled":true,"enabledCookieJar":true,"enabledExplore":false,"exploreUrl":"","header":"{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/120.0.0.0 Mobile Safari\/537.36\", \"Accept\": \"application\/json, text\/plain, *\/*\", \"Accept-Language\": \"zh-CN,zh;q=0.9\", \"Referer\": \"https:\/\/fanqienovel.com\/\", \"Cookie\": \"novel_web_id=7294561234567890123\"}","lastUpdateTime":"1792678167856","loginUrl":"","respondTime":180000,"ruleBookInfo":{"author":"$.data.author","coverUrl":"$.data.thumbUrl","init":"{{'https:\/\/fanqienovel.com\/api\/book\/info?bookId=' + String(baseUrl).replace(\/[^0-9]\/g, '')}}","intro":"$.data.abstract","kind":"@js:var o = '';\ntry {\n  var j = JSON.parse(result);\n  var d = j.data || {};\n  var n = [];\n  try {\n    var c = JSON.parse(d.categoryV2 || '[]');\n    for (var i = 0; i < c.length; i++) {\n      if (c[i] && c[i].Name) n.push(c[i].Name);\n    }\n  } catch (e1) {}\n  if (String(d.creationStatus) === '0') n.push('完结');\n  else if (String(d.creationStatus) === '1') n.push('连载');\n  o = n.join(',');\n} catch (e) {}\no;","lastChapter":"$.data.lastChapterTitle","name":"$.data.bookName","tocUrl":"","wordCount":"$.data.wordNumber"},"ruleContent":{"content":"@js:var A=[\"D\", \"在\", \"主\", \"特\", \"家\", \"军\", \"然\", \"表\", \"场\", \"4\", \"要\", \"只\", \"v\", \"和\", \"?\", \"6\", \"别\", \"还\", \"g\", \"现\", \"儿\", \"岁\", \"?\", \"?\", \"此\", \"象\", \"月\", \"3\", \"出\", \"战\", \"工\", \"相\", \"o\", \"男\", \"直\", \"失\", \"世\", \"F\", \"都\", \"平\", \"文\", \"什\", \"V\", \"O\", \"将\", \"真\", \"T\", \"那\", \"当\", \"?\", \"会\", \"立\", \"些\", \"u\", \"是\", \"十\", \"张\", \"学\", \"气\", \"大\", \"爱\", \"两\", \"命\", \"全\", \"后\", \"东\", \"性\", \"通\", \"被\", \"1\", \"它\", \"乐\", \"接\", \"而\", \"感\", \"车\", \"山\", \"公\", \"了\", \"常\", \"以\", \"何\", \"可\", \"话\", \"先\", \"p\", \"i\", \"叫\", \"轻\", \"M\", \"士\", \"w\", \"着\", \"变\", \"尔\", \"快\", \"l\", \"个\", \"说\", \"少\", \"色\", \"里\", \"安\", \"花\", \"远\", \"7\", \"难\", \"师\", \"放\", \"t\", \"报\", \"认\", \"面\", \"道\", \"S\", \"?\", \"克\", \"地\", \"度\", \"I\", \"好\", \"机\", \"U\", \"民\", \"写\", \"把\", \"万\", \"同\", \"水\", \"新\", \"没\", \"书\", \"电\", \"吃\", \"像\", \"斯\", \"5\", \"为\", \"y\", \"白\", \"几\", \"日\", \"教\", \"看\", \"但\", \"第\", \"加\", \"候\", \"作\", \"上\", \"拉\", \"住\", \"有\", \"法\", \"r\", \"事\", \"应\", \"位\", \"利\", \"你\", \"声\", \"身\", \"国\", \"问\", \"马\", \"女\", \"他\", \"Y\", \"比\", \"父\", \"x\", \"A\", \"H\", \"N\", \"s\", \"X\", \"边\", \"美\", \"对\", \"所\", \"金\", \"活\", \"回\", \"意\", \"到\", \"z\", \"从\", \"j\", \"知\", \"又\", \"内\", \"因\", \"点\", \"Q\", \"三\", \"定\", \"8\", \"R\", \"b\", \"正\", \"或\", \"夫\", \"向\", \"德\", \"听\", \"更\", \"?\", \"得\", \"告\", \"并\", \"本\", \"q\", \"过\", \"记\", \"L\", \"让\", \"打\", \"f\", \"人\", \"就\", \"者\", \"去\", \"原\", \"满\", \"体\", \"做\", \"经\", \"K\", \"走\", \"如\", \"孩\", \"c\", \"G\", \"给\", \"使\", \"物\", \"?\", \"最\", \"笑\", \"部\", \"?\", \"员\", \"等\", \"受\", \"k\", \"行\", \"一\", \"条\", \"果\", \"动\", \"光\", \"门\", \"头\", \"见\", \"往\", \"自\", \"解\", \"成\", \"处\", \"天\", \"能\", \"于\", \"名\", \"其\", \"发\", \"总\", \"母\", \"的\", \"死\", \"手\", \"入\", \"路\", \"进\", \"心\", \"来\", \"h\", \"时\", \"力\", \"多\", \"开\", \"已\", \"许\", \"d\", \"至\", \"由\", \"很\", \"界\", \"n\", \"小\", \"与\", \"Z\", \"想\", \"代\", \"么\", \"分\", \"生\", \"口\", \"再\", \"妈\", \"望\", \"次\", \"西\", \"风\", \"种\", \"带\", \"J\", \"?\", \"实\", \"情\", \"才\", \"这\", \"?\", \"E\", \"我\", \"神\", \"格\", \"长\", \"觉\", \"间\", \"年\", \"眼\", \"无\", \"不\", \"亲\", \"关\", \"结\", \"0\", \"友\", \"信\", \"下\", \"却\", \"重\", \"己\", \"老\", \"2\", \"音\", \"字\", \"m\", \"呢\", \"明\", \"之\", \"前\", \"高\", \"P\", \"B\", \"目\", \"太\", \"e\", \"9\", \"起\", \"稜\", \"她\", \"也\", \"W\", \"用\", \"方\", \"子\", \"英\", \"每\", \"理\", \"便\", \"四\", \"数\", \"期\", \"中\", \"C\", \"外\", \"样\", \"a\", \"海\", \"们\", \"任\"];\nvar B=[\"s\", \"?\", \"作\", \"口\", \"在\", \"他\", \"能\", \"并\", \"B\", \"士\", \"4\", \"U\", \"克\", \"才\", \"正\", \"们\", \"字\", \"声\", \"高\", \"全\", \"尔\", \"活\", \"者\", \"动\", \"其\", \"主\", \"报\", \"多\", \"望\", \"放\", \"h\", \"w\", \"次\", \"年\", \"?\", \"中\", \"3\", \"特\", \"于\", \"十\", \"入\", \"要\", \"男\", \"同\", \"G\", \"面\", \"分\", \"方\", \"K\", \"什\", \"再\", \"教\", \"本\", \"己\", \"结\", \"1\", \"等\", \"世\", \"N\", \"?\", \"说\", \"g\", \"u\", \"期\", \"Z\", \"外\", \"美\", \"M\", \"行\", \"给\", \"9\", \"文\", \"将\", \"两\", \"许\", \"张\", \"友\", \"0\", \"英\", \"应\", \"向\", \"像\", \"此\", \"白\", \"安\", \"少\", \"何\", \"打\", \"气\", \"常\", \"定\", \"间\", \"花\", \"见\", \"孩\", \"它\", \"直\", \"风\", \"数\", \"使\", \"道\", \"第\", \"水\", \"已\", \"女\", \"山\", \"解\", \"d\", \"P\", \"的\", \"通\", \"关\", \"性\", \"叫\", \"儿\", \"L\", \"妈\", \"问\", \"回\", \"神\", \"来\", \"S\", \"\", \"四\", \"望\", \"前\", \"国\", \"些\", \"O\", \"v\", \"l\", \"A\", \"心\", \"平\", \"自\", \"无\", \"军\", \"光\", \"代\", \"是\", \"好\", \"却\", \"c\", \"得\", \"种\", \"就\", \"意\", \"先\", \"立\", \"z\", \"子\", \"过\", \"Y\", \"j\", \"表\", \"\", \"么\", \"所\", \"接\", \"了\", \"名\", \"金\", \"受\", \"J\", \"满\", \"眼\", \"没\", \"部\", \"那\", \"m\", \"每\", \"车\", \"度\", \"可\", \"R\", \"斯\", \"经\", \"现\", \"门\", \"明\", \"V\", \"如\", \"走\", \"命\", \"y\", \"6\", \"E\", \"战\", \"很\", \"上\", \"f\", \"月\", \"西\", \"7\", \"长\", \"夫\", \"想\", \"话\", \"变\", \"海\", \"机\", \"x\", \"到\", \"W\", \"一\", \"成\", \"生\", \"信\", \"笑\", \"但\", \"父\", \"开\", \"内\", \"东\", \"马\", \"日\", \"小\", \"而\", \"后\", \"带\", \"以\", \"三\", \"几\", \"为\", \"认\", \"X\", \"死\", \"员\", \"目\", \"位\", \"之\", \"学\", \"远\", \"人\", \"音\", \"呢\", \"我\", \"q\", \"乐\", \"象\", \"重\", \"对\", \"个\", \"被\", \"别\", \"F\", \"也\", \"书\", \"稜\", \"D\", \"写\", \"还\", \"因\", \"家\", \"发\", \"时\", \"i\", \"或\", \"住\", \"德\", \"当\", \"o\", \"l\", \"比\", \"觉\", \"然\", \"吃\", \"去\", \"公\", \"a\", \"老\", \"亲\", \"情\", \"体\", \"太\", \"b\", \"万\", \"C\", \"电\", \"理\", \"?\", \"失\", \"力\", \"更\", \"拉\", \"物\", \"着\", \"原\", \"她\", \"工\", \"实\", \"色\", \"感\", \"记\", \"看\", \"出\", \"相\", \"路\", \"大\", \"你\", \"候\", \"2\", \"和\", \"?\", \"与\", \"p\", \"样\", \"新\", \"只\", \"便\", \"最\", \"不\", \"进\", \"T\", \"r\", \"做\", \"格\", \"母\", \"总\", \"爱\", \"身\", \"师\", \"轻\", \"知\", \"往\", \"加\", \"从\", \"?\", \"天\", \"e\", \"H\", \"?\", \"听\", \"场\", \"由\", \"快\", \"边\", \"让\", \"把\", \"任\", \"8\", \"条\", \"头\", \"事\", \"至\", \"起\", \"点\", \"真\", \"手\", \"这\", \"难\", \"都\", \"界\", \"用\", \"法\", \"n\", \"处\", \"下\", \"又\", \"Q\", \"告\", \"地\", \"5\", \"k\", \"t\", \"岁\", \"有\", \"会\", \"果\", \"利\", \"民\"];\nfunction dec(s) {\n  var o = '';\n  for (var i = 0; i < s.length; i++) {\n    var c = s.charCodeAt(i);\n    if (c >= 58344 && c <= 58715) {\n      var k = c - 58344;\n      var v = A[k];\n      if (v === undefined || v === '?' || v === '') v = B[k];\n      if (v === undefined || v === '?' || v === '') v = '';\n      o += v;\n    } else {\n      o += s[i];\n    }\n  }\n  return o;\n}\nfunction plain(h) {\n  return String(h)\n    .replace(\/<br\\s*\\\/?>\/gi, '\\n')\n    .replace(\/<\\\/p>\/gi, '\\n\\n')\n    .replace(\/<[^>]+>\/g, '');\n}\nvar html = '';\ntry {\n  var j = JSON.parse(result);\n  html = ((j.data || {}).chapterData || {}).content || '';\n} catch (e) { html = ''; }\nif (!html) {\n  try {\n    var cid = (String(baseUrl).match(\/\\d+\/) || [''])[0];\n    var page = java.ajax('https:\/\/fanqienovel.com\/reader\/' + cid);\n    var m = String(page).match(\/\"content\":\"((?:[^\"\\\\]|\\\\.)*)\"\/);\n    if (m) html = JSON.parse('\"' + m[1] + '\"');\n  } catch (e2) {}\n}\nvar t = dec(plain(html));\nt = t.replace(\/&nbsp;\/g, ' ')\n     .replace(\/&amp;\/g, '&')\n     .replace(\/&lt;\/g, '<')\n     .replace(\/&gt;\/g, '>')\n     .replace(\/&quot;\/g, '\"')\n     .replace(\/&#39;\/g, \"'\");\nt = t.replace(\/[ \\t]+\\n\/g, '\\n')\n     .replace(\/\\n{3,}\/g, '\\n\\n')\n     .replace(\/^\\s+|\\s+$\/g, '');\nt || '【本章正文获取失败：可能是 VIP\/付费章节，或接口被风控。可尝试换源，或在番茄小说官方 App 内阅读本章。】';","nextContentUrl":"","replaceRegex":"","title":"","webJs":""},"ruleExplore":{"author":"","bookList":"","bookUrl":"","coverUrl":"","intro":"","kind":"","lastChapter":"","name":"","wordCount":""},"ruleSearch":{"author":"$.author","bookList":"@js:var out = [];\ntry {\n  \/\/ 书号为 19 位时按数字返回会被 JS 截断，先把裸数字包成字符串再解析\n  var raw = String(result)\n    .replace(\/\"book_id\"\\s*:\\s*(\\d{15,})\/g, '\"book_id\":\"$1\"')\n    .replace(\/\"bookId\"\\s*:\\s*(\\d{15,})\/g, '\"bookId\":\"$1\"');\n  var j = JSON.parse(raw);\n  var d = (j && j.data) || {};\n  var rs = d.resp_data || {};\n  var sb = rs.search_book_data || {};\n  var list = sb.book_data || sb.bookData || [];\n  for (var i = 0; i < list.length; i++) {\n    var b = list[i] || {};\n    var id = String(b.book_id || b.bookId || '');\n    if (!id) continue;\n    out.push({\n      book_id: id,\n      book_name: b.book_name || b.bookName || '',\n      author: b.author || b.author_name || b.authorName || '',\n      abstract: b.abstract || b.intro || '',\n      thumb_url: b.thumb_url || b.thumbUrl || b.expand_thumb_url || '',\n      word_number: b.word_number || b.wordNumber || '',\n      category: b.category || b.category_name || '',\n      last_chapter_title: b.last_chapter_title || b.lastChapterTitle || ''\n    });\n  }\n} catch (e) {}\nJSON.stringify(out);","bookUrl":"@js:var o = (typeof result === 'object' && result) ? result : null;\nif (!o || !(o.book_id || o.bookId)) {\n  try { o = JSON.parse(result); } catch (e) { o = {}; }\n}\nvar id = String((o && (o.book_id || o.bookId)) || '').replace(\/[^0-9]\/g, '');\n'https:\/\/fanqienovel.com\/page\/' + id;","checkKeyWord":"","coverUrl":"$.thumb_url","intro":"$.abstract","kind":"$.category","lastChapter":"$.last_chapter_title","name":"$.book_name","wordCount":"$.word_number"},"ruleToc":{"chapterList":"@js:var out = [];\ntry {\n  var bid = String(baseUrl).replace(\/[^0-9]\/g, '');\n  var txt = java.ajax('https:\/\/fanqienovel.com\/api\/reader\/directory\/detail?bookId=' + bid);\n  txt = String(txt).replace(\/\"itemId\"\\s*:\\s*(\\d{15,})\/g, '\"itemId\":\"$1\"');\n  var j = JSON.parse(txt);\n  var vols = (j.data && j.data.chapterListWithVolume) || [];\n  for (var v = 0; v < vols.length; v++) {\n    var chs = vols[v] || [];\n    for (var i = 0; i < chs.length; i++) {\n      var c = chs[i] || {};\n      if (!c.itemId) continue;\n      out.push({\n        title: String(c.title || ('第' + (out.length + 1) + '章')),\n        url: 'https:\/\/fanqienovel.com\/api\/reader\/full?itemId=' + c.itemId,\n        isVip: c.isChapterLock === true\n      });\n    }\n  }\n} catch (e) {}\nJSON.stringify(out);","chapterName":"","chapterUrl":"","formatJs":"","isVolume":"","nextTocUrl":"","updateTime":""},"searchUrl":"https:\/\/api5-normal-lf.fqnovel.com\/reading\/bookapi\/search\/page\/v\/?query={{key}}&aid=1967&offset={{(page-1)*10}}&count=10&iid=2665637677906061&app_name=novelapp&version_code=495","weight":0}]