添加-目录网址

添加-目录网址

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
}
广告