新书阁

https://www.xinshuge.xyz

chuxs (8615)05/04 18:40

新书阁 xinshuge
二维码导入
{
    "bookSourceComment": "\/\/无名25.05.04,源社区群友解决加密",
    "bookSourceGroup": "源社区",
    "bookSourceName": "新书阁",
    "bookSourceType": 0,
    "bookSourceUrl": "https:\/\/www.xinshuge.xyz",
    "bookUrlPattern": "https:\/\/www.xinshuge.xyz",
    "concurrentRate": "",
    "customOrder": 1,
    "enabled": true,
    "enabledCookieJar": true,
    "enabledExplore": true,
    "header": "{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; 2312DRAABC) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/132.0.0.0 Mobile Safari\/537.36\"}",
    "lastUpdateTime": "1746355238136",
    "respondTime": 180000,
    "ruleBookInfo": {
        "author": "p.0@text",
        "coverUrl": "img@src@js:result = \"https:\/\/www.xinshuge.xyz\" + result",
        "init": ".detail-box",
        "intro": ".desc@text",
        "kind": "p[1,2,3]@text##类别:##",
        "name": "h1@text",
        "tocUrl": ""
    },
    "ruleContent": {
        "content": "<js>\nvar doc = result;\njava.log(\"----\" + baseUrl);\nvar finalContent = \"\"; \ntry {\n    var contentText = \"\";\n    \n    \n    if (doc) {\n        var contentElement = org.jsoup.Jsoup.parse(doc).select(\".content\");\n        if (contentElement) {\n            contentText = contentElement.text().trim();\n        } else {\n            contentText = \"\";\n        }\n    } else {\n        \/\/ throw new Error(\"HTML parsing failed\");\n        contentText = \"【无法解析HTML】\"; \n    }\n    \/\/ 解密\n    var decryptedText = \"\";\n    var atob = function(val) {\n        try {\n            return String(java.base64Decode(val, \"ISO-8859-1\"));\n        } catch (e) {\n            \/\/ java.log(\"Base64 解码失败 for: \" + val + \", Error: \" + e);\n            return \"\";\n        }\n    };\n    function _0x5472bc(_0x29b0fa) {\n        return _0x29b0fa.slice().reverse();\n    }\n    function _0x17ef6d(aR) {\n        var _0xe4c1a0 = '';\n        try {\n            for (var _0x15efce = 0; _0x15efce < aR.length; _0x15efce++) {\n                _0xe4c1a0 += String.fromCharCode(aR[_0x15efce]);\n            }\n            return decodeURIComponent(escape(_0xe4c1a0));\n        } catch(e) {\n            \/\/ java.log(\"字节转字符串或 decodeURIComponent 出错: \" + e);\n            return _0xe4c1a0;\n        }\n    }\n    function _0x325420(encodedData, encodedKey) {\n        try {\n            var keyBytesRaw = atob(encodedKey).split('').map(c => c.charCodeAt(0));\n            if (!keyBytesRaw || keyBytesRaw.length === 0) throw new Error(\"解码后的密钥为空\");\n            var keyBytesProcessed = _0x5472bc(keyBytesRaw);\n            if (!keyBytesProcessed || keyBytesProcessed.length === 0) throw new Error(\"处理后的密钥为空\");\n\n            var dataBytesRaw = atob(encodedData).split('').map(c => c.charCodeAt(0));\n            if (!dataBytesRaw) throw new Error(\"解码后的数据为空\");\n\n            var decryptedBytes = dataBytesRaw.map((byte, index) => byte ^ keyBytesProcessed[index % keyBytesProcessed.length]);\n            return _0x17ef6d(decryptedBytes);\n        } catch (e) {\n            \/\/ java.log(\"解密函数 _0x325420 内部错误: \" + e);\n            return \"【解密过程出错】\"; \/\/ 返回错误指示\n        }\n    }\n    var paramRegex = \/await\\s+_0x\\w+\\('(.+?)','(.+?)'\\)\/;\n    var ar = result.match(paramRegex);\n    if (ar && ar[1] && ar[2]) {\n        var encodedDataParam = ar[1];\n        var encodedKeyParam = ar[2];\n        \/\/ java.log(\"提取到加密参数,准备解密...\");\n        \/\/ --- 调用解密函数 ---\n        decryptedText = _0x325420(encodedDataParam, encodedKeyParam);\n        \/\/ java.log(\"解密后文本长度: \" + decryptedText.length);\n    } else {\n        java.log(\"未能从 HTML 中用正则匹配到解密所需的参数\");\n        decryptedText = \"【未能提取加密参数】\"; \/\/ 设置错误提示\n    }\n\n    \/\/ --- 拼接结果\n    finalContent = contentText + \"\\n\\n\" + decryptedText; \n\n} catch (e) {\n    java.log(\"错误: \" + e);\n    finalContent = \"【规则执行出错: \" + e + \"】\"; \/\/ 在最终输出中包含错误信息\n}\nresult = finalContent; \n<\/js>",
        "imageStyle": "",
        "nextContentUrl": "<js>\nvar nextChapterUrl = null; \ntry {    \n    var doc = result;\n    if (!doc) {        \n        throw new Error(\"HTML 解析失败\"); \n    }        \n    var nextLink = org.jsoup.Jsoup.parse(doc).select(\"a:containsOwn(下─章)\");\n    if (nextLink) {        \n        var onclickValue = nextLink.attr(\"onclick\");\n        if (onclickValue) {                        \n            var idRegex = \/location\\.href='([^']+)\\.idx'\/;\n            var idMatch = onclickValue.match(idRegex);\n            if (idMatch && idMatch[1]) {\n                var chapterIdPart = idMatch[1];                 \n                var checkRegex = \/_\\d+$\/; \n                if (checkRegex.test(chapterIdPart)) {                                      \n                    var newFileName = chapterIdPart + \".html\";                                        \n                    var lastSlashRegex = \/\\\/[^\/]*$\/;\n                    if (typeof baseUrl === 'string') {                        \n                        nextChapterUrl = baseUrl.replace(lastSlashRegex, \"\/\" + newFileName);\n                        \n                    }\n                }\n            }\n        }\n    }\n} catch (e) {    \n    nextChapterUrl = null; \n}\nresult = nextChapterUrl;\n<\/js>",
        "replaceRegex": "##抱歉,章节内容加载错误,未能成功加载章节内容或刷新页面。|Sorry, there was an error loading the chapter content. We were unable to successfully load the chapter or refresh the page.|抱歉,章節內容載入錯誤,未能成功載入章節內容或重新整理頁面。|本章节部分内容加载错误,请正常浏览,重新载入或刷新当前网页|www.xinshuge.xyz |本章未完,点击下一章继续阅读|新书阁|www.xinshuge.xyz|https:\/\/www.xinshuge.xyz|第\\w+章.*\\(\\d+\\\/\\d+\\)"
    },
    "ruleExplore": {},
    "ruleSearch": {
        "author": ".b1@text",
        "bookList": "<js>\nif(result.match(\/Just a\/)){\n\txb=(baseUrl)+\",\"+JSON.stringify({\n\t\t\"headers\":{\n\t\t\t\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; 2312DRAABC) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/132.0.0.0 Mobile Safari\/537.36\"\n}})\ncookie.removeCookie(source.bookSourceUrl)\njava.startBrowserAwait(xb,\"验证\")\nresult=java.ajax(xb)\n\t}\n\tresult\n\t<\/js>\n\nclass.txt-pic-list txt-list-row5@li",
        "bookUrl": "a@href@js:result+',{webView:“true”}'",
        "checkKeyWord": "斗罗",
        "intro": ".desc@text",
        "kind": ".b2,.b3@text",
        "name": "class.h1@text"
    },
    "ruleToc": {
        "chapterList": ".section-list[1]@li",
        "chapterName": "text",
        "chapterUrl": "a@href@js:result = \"https:\/\/www.xinshuge.xyz\" + result +',{webView:“true”}'",
        "nextTocUrl": "text.下─页@href@js:java.log(result)"
    },
    "searchUrl": "\/search\/{{key}}.html",
    "weight": 0
}
广告