添加-目录网址
添加-目录网址
wang_fuchen (14509)2天前
V0.17
1、添加网址:把书籍的目录网址(或 结尾递增 的正文网址)输入阅读APP书架上的添加网址。
2、设置章数:获取目录,出现没图片的 验证码 输入时:
(1)网址为 结尾递增 的正文网址,则输入 总章数(大于9)。
(2)不输入内容,正则匹配获取目录。
(3)输入6,获取所有a链接。
3、如果一直加载目录或章节不存在,可以试试:
(1)在订阅里新建 单URL 的订阅源,源URL为之前添加的地址。
(2)从订阅源进入网址,把网址上需要 确认 的点一下。
#、懂正则的可以自己修改正则来适配。
#、替换净化推荐:开头[\s\S]{1,300}结尾
#、替换的 特定范围 保留最后的网站名+书源,可以只在这个网站生效,比如:苦读书;添加-目录网址 {
"bookSourceComment": "V0.17\n\n1、添加网址:把书籍的目录网址(或 结尾递增 的正文网址)输入阅读APP书架上的添加网址。\n\n2、设置章数:获取目录,出现没图片的 验证码 输入时:\n(1)网址为 结尾递增 的正文网址,则输入 总章数(大于9)。\n(2)不输入内容,正则匹配获取目录。\n(3)输入6,获取所有a链接。\n\n3、如果一直加载目录或章节不存在,可以试试:\n(1)在订阅里新建 单URL 的订阅源,源URL为之前添加的地址。\n(2)从订阅源进入网址,把网址上需要 确认 的点一下。\n\n#、懂正则的可以自己修改正则来适配。\n#、替换净化推荐:开头[\\s\\S]{1,300}结尾\n#、替换的 特定范围 保留最后的网站名+书源,可以只在这个网站生效,比如:苦读书;添加-目录网址",
"bookSourceName": "添加-目录网址",
"bookSourceType": 0,
"bookSourceUrl": "添加-目录网址",
"bookUrlPattern": "https?:\/\/.+",
"customButton": false,
"customOrder": 0,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": false,
"eventListener": false,
"lastUpdateTime": "1788130966322",
"respondTime": 180000,
"ruleBookInfo": {
"name": "title@text"
},
"ruleContent": {
"content": "<js>\nconst html = org.jsoup.Jsoup.parse(java.ajax(baseUrl + ',{\"webView\":true}'));\nconst hrefs = [];\nfunction isSameOrigin(url1, url2) {\n\tvar urlreg = \/^(?:https?:)\\\/\\\/([^\\\/:]+)(?:[\\\/:])?\/;\n \tvar javaUrl1 = url1.match(urlreg);\n \tvar javaUrl2 = url2.match(urlreg);\n return !javaUrl2 || javaUrl1[1] == javaUrl2[1];\n}\nfor (var a of html.select(\"a\")) {\n var href = a.attr('href');\n if (href && href != baseUrl && isSameOrigin(baseUrl, href)) {\n var text = a.text();\n \tif(text && \/下[—一]?页\/.test(text)){\n \t\tjava.put(\"下一页3\", href);\n \t}else if(\/\\d_\\d\/.test(href)){\n \t hrefs.push(href);\n \t}\n }\n}\njava.put(\"下一页2\", hrefs);\nhtml.select(\"form,cite,a,b,button,h1,h2,h3,h4\").remove();\nhtml.select(\"br,p\").before(\"\\n\");\nconst btext = html.body().wholeText();\njava.put(\"文本内容\", btext);\nbtext;\n<\/js>",
"nextContentUrl": "<js>\nvar nowpage = Number(java.get(\"正文页\")) || 1;\nif(nowpage < 25){\n\tjava.put(\"正文页\", nowpage + 1);\nvar next = java.get(\"下一页3\");\nif(!next || !next.length() || next == baseUrl){\nvar nexts = java.get(\"下一页2\").split(\",\");\nvar num = baseUrl.match(\/\\d_(\\d+)\/);\nif(num){\n num = '_' + (Number(num[1]) + 1);\n for (var target of nexts) {\n \tif(target.indexOf(num) !== -1){\n \t\tnext = target;\n \t\tbreak;\n\t\t}\n }\n}else if(nexts[0].length){\n\tnext = nexts[0];\n}\nnext = next && next.length() && next != baseUrl ? next : null;\nif(!next){\nvar page = java.get(\"文本内容\").match(\/第[^\\n\\d]{0,5}(\\d+)\\\/(\\d+)[^\\n\\d]{0,5}页\/);\nif(page){\n\tvar npage = Number(page[1])+1;\n\tvar mpage = Number(page[2]);\n\tif(npage <= mpage){\n\t\tnext = baseUrl.replace(\/(_\\d+)?(\\.html|\\\/)?$\/, \"_\"+npage+\"$2\");\n\t}\n}\n}\n}\nnext;\n}\n<\/js>",
"replaceRegex": "<js>\nconst FILTER_RULES = [\n \/[^一-龟\\n]+function\\(\\)\\{[^一-龟]+\/g,\n]\nfor(let reg of FILTER_RULES){\n\tresult = result.replace(reg, \"\");\n}\nresult;\n<\/js>"
},
"ruleExplore": {},
"ruleSearch": {},
"ruleToc": {
"chapterList": "<js>\nconst html = org.jsoup.Jsoup.parse(java.ajax(baseUrl + ',{\"webView\":true}'));\nconst allA = html.select(\"a\");\nconst alist = [];\nconst digit = '[\\\\d一二三四五六七八九十零百千万]';\nconst regz = new RegExp(String.raw`前言|后记|番外|(?:序|${digit})(?:[章节回]|[^一-龟\\da-zA-Z]|\\s*$)|[【】]`);\nfor (var a of allA) {\n var href = a.attr('href');\n var text = a.text();\n if(href && href != baseUrl && text){\n regz.test(text) && alist.push(a);\n \/下[—一]?页|^\\s*Next\/.test(text) && java.put(\"下一页\", href);\n }\n}\nconst blist = [];\nconst regn = \/([^\\d])(\\d+)(\\.html|\\\/)?$\/;\nconst isZw = baseUrl.match(regn);\nvar nums = Number(java.get(\"目录类型\")) || -1;\nif (nums == -1 && (isZw || alist.length)) {\n try { nums = Number(java.getVerificationCode('')); } catch (e) { nums = 1; }\n java.put(\"目录类型\", nums);\n}\nif(nums > 9 && isZw){\nvar nowUrl = baseUrl;\n for(var i=0;i<nums;i++){\n blist.push({ href: nowUrl, text: \"第\" + (i + 1) + \"章\" });\n var matchs = nowUrl.match(regn);\n nowUrl = nowUrl.replace(regn, \"$1\") + (Number(matchs[2]) + 1) + (matchs[3] || \"\");\n}\n}\nblist.length ? blist : alist.length && nums != 6 ? alist : allA;\n<\/js>",
"chapterName": "text",
"chapterUrl": "href",
"nextTocUrl": "<js>\njava.get(\"下一页\");\n<\/js>"
},
"weight": 0
}