全本小说网
https://www.quanben.io
langzaier (13654)09/27 00:10
//2026.9.26 by狼崽儿
修复目录数量少无法获取目录的bug
2026.9.27
顺带完善了详情页的规则,优化了简介显示,同时微调动态获取发现页的规则,使其兼容旧版阅读。
{
"bookSourceGroup": "通常书源",
"bookSourceName": "全本小说网",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.quanben.io",
"customOrder": 596,
"enabled": true,
"enabledCookieJar": false,
"enabledExplore": true,
"exploreUrl": "@js:\nlet url = String(source.getVariable()!=\"\"?source.getVariable():source.getKey()).replace(\/\\\/$\/, '') \nlet arr = []\nlet push = (title, url, type) => arr.push({\n title: title,\n url: url,\n style: {\n layout_flexGrow: 1,\n layout_flexBasisPercent: type\n }\n})\n\npush(\"🏷️全部分类🏷️\", \"\", 1)\nlet res = org.jsoup.Jsoup.parse(java.ajax(url))\nlet lis = res.select('.nav a');\nfor (let i = 0; i < lis.length; i++) {\n let text = lis[i].text();\n let href = url + String(lis[i].attr('href')).replace(\/\\.html\/g,\"_\\{\\{page\\}\\}\\.html\");\n push(text, href, 0.25);\n}\nJSON.stringify(arr)",
"header": "{\n \"User-Agent\":\"Mozilla\/5.0 (Linux; Android 12; Yolo) AppleWebKit\/603.1.30 (KHTML, like Gecko) Version\/4.0 Chrome\/100.0.2987.108 Mobile Safari\/537.36\"\n}",
"lastUpdateTime": "1790439036821",
"loginUrl": "https:\/\/www.quanben.io",
"respondTime": 12478,
"ruleBookInfo": {
"kind": "[property=\"og:novel:category\"]@content",
"tocUrl": "text.章节列表@href"
},
"ruleContent": {
"content": "#content@p!0@html##{{chapter.title}}"
},
"ruleExplore": {},
"ruleSearch": {
"author": "p.0@span@text",
"bookList": ".row",
"bookUrl": "h3 a@href",
"coverUrl": "img@src",
"intro": "p.1@text",
"name": "h3 a@text"
},
"ruleToc": {
"chapterList": "<js>\nvar page = String(result)\nvar blocks = []\nvar pos = 0\nwhile (true) {\n var k = page.indexOf('class=\"list3\"', pos)\n if (k < 0) { break }\n var s0 = page.lastIndexOf('<ul', k)\n var e0 = page.indexOf('<\/ul>', k)\n if (s0 < 0 || e0 < 0) { break }\n blocks.push(page.substring(s0, e0 + 5))\n pos = e0 + 5\n}\nvar m = page.match(\/var[ ]+callback[ ]*=[ ]*'([^']+)'\/)\nvar cb = m ? m[1] : ''\nm = page.match(\/load_more[(][ ]*'([^']+)'\/)\nvar bid = m ? m[1] : ''\nvar mid = ''\nfunction qb64(str) {\n var C = 'PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN'\n var out = ''\n for (var i = 0; i < str.length; i++) {\n var n0 = C.indexOf(str.charAt(i))\n var code = n0 == -1 ? str.charAt(i) : C.charAt((n0 + 3) % 62)\n out += C.charAt(parseInt(Math.random() * 62, 10)) + code + C.charAt(parseInt(Math.random() * 62, 10))\n }\n return out\n}\nif (cb && bid) {\n var u = ''\n try { u = baseUrl ? String(baseUrl) : '' } catch (e1) { u = '' }\n if (!u) { try { u = String(source.getKey()) } catch (e2) { u = '' } }\n var host = 'https:\/\/www.quanben.io'\n var p = u.indexOf('\/\/')\n if (p > -1) {\n var q = u.indexOf('\/', p + 2)\n if (q > -1) { host = u.substring(0, q) } else if (u.length > p + 2) { host = u }\n }\n var api = host + '\/index.php?c=book&a=list.jsonp&callback=' + cb + '&book_id=' + bid + '&b=' + qb64(cb)\n var opt = JSON.stringify({ headers: { Referer: host + '\/list.html' } })\n var txt = java.ajax(api + ',' + opt)\n if (txt) {\n var a1 = txt.indexOf('(')\n var b1 = txt.lastIndexOf(')')\n if (a1 > -1 && b1 > a1) {\n try { var jd = JSON.parse(txt.substring(a1 + 1, b1)); if (jd && jd.content) { mid = String(jd.content) } } catch (e3) { mid = '' }\n }\n }\n}\nvar out = blocks.length > 0 ? blocks[0] : ''\nout += mid\nfor (var i2 = 1; i2 < blocks.length; i2++) { out += blocks[i2] }\nout\n<\/js>ul li a",
"chapterName": "text",
"chapterUrl": "href"
},
"searchUrl": "{{String(source.getVariable()!=\"\"?source.getVariable():source.getKey()).replace(\/\\\/$\/, '')}}\/index.php?c=book&a=search&keywords={{key}}",
"weight": 0,
"bookSourceComment": ""
}