完本小说网

https://www.finalbooks.work

yezechuandl (3004)07/22 14:13

//2025.7.22 ◎夜泽川◎
二维码导入
{
    "bookSourceComment": "\/\/2025.7.22 ◎夜泽川◎",
    "bookSourceGroup": "网络,自制",
    "bookSourceName": "完本小说网",
    "bookSourceType": 0,
    "bookSourceUrl": "https:\/\/www.finalbooks.work",
    "bookUrlPattern": "https?:\\\/\\\/www\\.finalbooks\\.work\\\/book\\\/\\d+\\\/?",
    "customOrder": 2,
    "enabled": true,
    "enabledCookieJar": true,
    "enabledExplore": true,
    "exploreUrl": "@js:\nvar result = [];\nvar push = (title, url, size) => result.push({\n    title: title,\n    url: url,\n    style: {\n        layout_flexGrow: 1,\n        layout_flexBasisPercent: size\n    }\n});\n\nvar tags = org.jsoup.Jsoup.parse(java.ajax(source.key + \"\/category\/\"))\n    .select('.CGsectionTwo-left a')\n    .toArray()\n    .map(tag => {\n        let text = [String(tag.text()).trim(), String(tag.attr('href')).match(\/(\\d+)\/)[1]];\n        return String(tag.text()).trim() ? text :  null;\n    })\n    .filter(item => item !== null);\n\n[\n    [\"༺ˇ»`ʚ  分类  ɞ´«ˇ༻\", \"\/category\/\"],\n    [\"༺ˇ»`ʚ  排行榜  ɞ´«ˇ༻\", null],\n    [\"༺ˇ»`ʚ  总榜  ɞ´«ˇ༻\", \"\/rank\/all\/\"],\n    [\"༺ˇ»`ʚ  周榜  ɞ´«ˇ༻\", \"\/rank\/\"],\n    [\"༺ˇ»`ʚ  月榜  ɞ´«ˇ༻\", \"\/rank\/month\/\"],\n    [\"༺ˇ»`ʚ  全本  ɞ´«ˇ༻\", \"\/category\/finish\/\"]\n].forEach(item => {\n    push(item[0], null, 1);\n    if (item[1]) {\n        tags.forEach((tag, index) => {\n            let url = item[1] + tag[1] + \"\/{{page}}.html\";\n            push(tag[0], url, (index ? 0.2 : 1));\n        });\n    }\n});\nJSON.stringify(result);",
    "header": "{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 9) Mobile Safari\/537.36\"}",
    "jsLib": "function decrypt(encryptedTxt, keySeed) {\n    const { java } = this;\n    let result;\n    try {\n        const fullKey = java.md5Encode(keySeed);\n        const ivBytes = java.strToBytes(fullKey.substring(0, 16));\n        const keyBytes = java.strToBytes(fullKey.substring(16));\n\n        const Cipher = java.createSymmetricCrypto(\n            \"AES\/CBC\/Pkcs7Padding\",\n            keyBytes,\n            ivBytes\n        );\n\n        result = Cipher.decryptStr(java.base64DecodeToByteArray(encryptedTxt));\n    } catch (e) {\n        java.log(e.message);\n        result = \"解密失败\";\n    }\n    return result;\n}",
    "lastUpdateTime": "1753164782957",
    "respondTime": 180000,
    "ruleBookInfo": {
        "author": "@get:{a}",
        "coverUrl": "@get:{i}",
        "init": "@put:{\"n\":\"[property$=book_name]@content\",\n\"a\":\"[property$=author]@content\",\n\"t\":\"[property~=category|status]@content\",\n\"l\":\"[property$=lastest_chapter_name]@content\",\n\"i\":\"[property$=image]@content\",\n\"o\":\"[property$=description]@content\",\n\"g\":\"[property$=update_time]@content\",\n\"m\":\"[email protected]@a@href\"\n}",
        "intro": "@get:{o}",
        "kind": "@get:{t}",
        "lastChapter": "@get:{l}◎@get:{g}",
        "name": "@get:{n}",
        "tocUrl": "@get:{m}"
    },
    "ruleContent": {
        "content": "@js:\nlet data = src.match(\/d\\(\"([^\\)]+)\/)[1].replace(\/\"|\\s\/g, \"\").trim().split(\",\");\ndecrypt(data[0], data[1]);"
    },
    "ruleExplore": {
        "author": "a[href^=\"\/writer\/\"]@text",
        "bookList": "[class$=\"unit\"]",
        "bookUrl": "a[href^=\"\/book\/\"]@href",
        "kind": "p.-1@text",
        "name": "a[href^=\"\/book\/\"][0]@text"
    },
    "ruleSearch": {
        "author": "a[href^=\"\/writer\/\"]@text",
        "bookList": ".SHsectionThree-middle > p",
        "bookUrl": "a[href^=\"\/book\/\"]@href",
        "kind": "a[href^=\"\/category\/\"]@text",
        "name": "a[href^=\"\/book\/\"]@text"
    },
    "ruleToc": {
        "chapterList": "ol > li\n<js>\nlet Regex_ = \/(data-[a-zA-Z0-9]+)\/g;\nlet label = result.select('li')[0].outerHtml().match(Regex_)[1];\nresult.sort((a, b) => +a.attr(label) - +b.attr(label));\nchapterList = result.select('a').toArray().map(e => {\n    let labeln = e.outerHtml().match(Regex_);\n    return {\n        title: String(e.attr(labeln[0])).trim() || e.text(),\n        url: java.base64Decode(String(e.attr(labeln[1])))\n    }\n});\nJSON.stringify(chapterList);\n<\/js>\n$[*]",
        "chapterName": "$.title",
        "chapterUrl": "$.url",
        "nextTocUrl": "@js:\nvar pages = [];\nvar endPage = String(java.getString('#end@href'));\nvar num = +endPage.match(\/(\\d+)\/g)[1];\nfor (let i = 2; i <= num; i++) {\n      pages.push(String(book.tocUrl).replace(\/$\/, i + \".html\"));\n}\npages;"
    },
    "searchUrl": "\/search\/{{key}}\/{{page}}",
    "weight": 0
}
广告