🎉 聚合书库
https://book4.cc
kirasama (14497)08/20 23:30
🎉 聚合书库
{
"bookSourceComment": "",
"bookSourceGroup": "",
"bookSourceName": "🎉 聚合书库",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/book4.cc",
"bookUrlPattern": "https?:\/\/book4.cc\/AU文学\/.{1,3}\/\\d+\/",
"customOrder": 1060,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "@js:\nvar sort = [],\n header = eval(getHeaders(source)),\n src = java.connect(\n \tbaseUrl, header).body(),\n b = src.match(\/(html_b|dstr)=\"(.*?)\"\/);\nif (b) src = dec(b);\nvar doc = org.jsoup.Jsoup.parse(src),\n a = doc.select(\"ul.nav.nav-pills li a\");\nfor (let i = 1; i < a.size(); i++) {\n let fl = ({\n \"title\": a[i].text(),\n \"url\": `${a[i].attr(\"href\")}<,{{page}}>`,\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexShrink\": 1,\n \"layout_alignSelf\": \"auto\",\n \"layout_flexBasisPercent\": 0.2,\n \"layout_wrapBefore\": false\n }\n });\n sort.push(fl);\n}\n\nJSON.stringify(sort);",
"header": "@js:\nJSON.stringify({\n\t\"Referer\": baseUrl + \"\/\",\n\t\"X-Requested-With\": \"mark.via\",\n\t\"Accept-Language\": \"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7\",\n\t\"User-Agent\": java.getWebViewUA()\n\t});",
"jsLib": "function as(input) {\n var ts = this[\"\\x6a\\x61\\x76\\x61\"][\"\\x62\\x61\\x73\\x65\\x36\\x34\\x44\\x65\\x63\\x6f\\x64\\x65\"](input);\n return ts;\n}\n\nfunction dec(a) {\n var to = this.as(a[2]),\n html = (a[1].includes(\"str\") ?\n decodeURIComponent(to) : to);\n return html;\n}\n\nfunction getHeaders(that) {\n const source = (that || this.source);\n var header = String(source.header);\n if (\/^.?js(:|>)\/.test(header)) {\n let h1 = header.split(\"js:\"),\n h2 = header.split(\"js>\");\n let head = (Array.isArray(h1) && h1[1]) || (Array.isArray(h2) && h2[1]);\n return String(head.toString());\n } else return header;\n}",
"lastUpdateTime": "1787239843908",
"loginCheckJs": "var url = result.url(), src = result.body(),\nb = src.match(\/(html_b|dstr)=\"(.*?)\"\/);\nif(b){\n\th = dec(b);\n\tresult = Packages.io.legado.app.help.http.StrResponse(url, h);\n\t}\nresult",
"respondTime": 3667,
"ruleBookInfo": {
"author": "$.author",
"coverUrl": "$.cover",
"init": "<js>\nvar data = {}, n = 0, so = 1;\nvar v = book.getVariable(\"custom\"),\nb = result.match(\/book=(\\{.*\\})\/) || [];\ntry {\n data = JSON.parse(b[1]);\n} catch (err) {\n java.log(err)\n data = eval(\"(\" + b[1] + \")\");\n}\nvar img = java.getString(\n\t\".book-img img@src\", result);\nlet origin = data[\"同书名作者其他阅读源\"];\n\/\/java.log(JSON.stringify(origin[0]))\nif (v != \"\") {\n so = n;\n n = Number(v) - 1;\n}\n\nlet obj = origin[n],\ninfo = `<br>当前源:【${so}】状态:${obj.isok ? \"可用\" : \"异常\"}\n最新章节:${obj.last_chapter_name}\n更新时间:${obj.time_update}\n源列表(多个源可设置书籍变量更改接口)\\n` + origin.map((o, i) =>`源接口:〔${i + 1}〕状态:${o.isok ? \"可用\" : \"异常\"}\n\t最新章节:${o.last_chapter_name}\n\t更新时间:${o.time_update}`).join(\"\\n\");\nobj.intro = `${info} <br>本书《${book.name}》简介:\\n${obj.intro}`;\nlet load = result.match(\/load_js\\('(.+?)'\/);\n\t\/\/java.log(load.toString());\n\tlet kind = `${obj.type_name},${obj.time_update}`, \n\tlast = `${obj.last_chapter_name}•${obj.time_update}`;\nobj.kind = kind; obj.last = last;\nobj.dir = ( (load && load[1]) || \"\/show_jsload_book_info\/\") + obj.book_yun_path;\nobj.cover = img;\nJSON.stringify(obj);\n<\/js>",
"intro": "$.intro",
"kind": "$.kind",
"lastChapter": "$.last",
"name": "$.book_name",
"tocUrl": "$.dir"
},
"ruleContent": {
"content": "article > .entry-content > p@html\n##<p style.*|.*<a href.*"
},
"ruleExplore": {
"author": "p.author.0@text",
"bookList": "<js>\nString(result).replace(\/<!--|-->\/g, \"\");\n<\/js>\n#main li",
"bookUrl": "a.1@href",
"coverUrl": "img@src",
"intro": "p.-1@text##简介:",
"kind": "p.author.1:3:4@text",
"lastChapter": "a.-2@text",
"name": "h3 a@text##《|》"
},
"ruleSearch": {
"author": "p.author.0@text",
"bookList": "<js>\nString(result).replace(\/<!--|-->\/g, \"\");\n<\/js>\n#book_list li",
"bookUrl": "a.1@href",
"coverUrl": "img@src",
"intro": "p.-1@html##简介:",
"kind": "p.author.1:-2@text",
"lastChapter": "a.-1@text",
"name": "a.1@text##《|》"
},
"ruleToc": {
"chapterList": "@js:\nvar _ = JSON.parse(result).chapter_list;\nArray.from(_, ($) => ({\n name: $.name,\n link: book.bookUrl + $.file_name,\n info: String(`${$.len}字`)\n}));",
"chapterName": "name",
"chapterUrl": "link",
"preUpdateJs": "java.refreshTocUrl()",
"updateTime": "info"
},
"searchUrl": "https:\/\/book4.cc\/AU文学\/searchword?q={{key}}",
"variableComment": "设置源变量更改接口",
"weight": 0
}