🧁轻文库小说
轻文库小说
x5201314l (7559)08/20 22:08
-聆听月与悦 . 25-8.15 - -app链接(三十天有效期): https://www.123865.com/s/ASCSjv-z7QTv
{
"bookSourceComment": "-聆听月与悦 . 25-8.15\n-\n\t\n-app链接(三十天有效期):\n https:\/\/www.123865.com\/s\/ASCSjv-z7QTv",
"bookSourceName": "🧁轻文库小说",
"bookSourceType": 0,
"bookSourceUrl": "轻文库小说",
"customOrder": 6,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "[\n {\n \"title\": \" 最近更新 \",\n \"url\": \"{{Update()}}\",\n \"style\": {\n \"layout_flexGrow\": 0,\n \"layout_flexBasisPercent\": 1 \n }\n },\n {\n \"title\": \" ↓ 排行榜 ↓ \",\n \"url\": \"\",\n \"style\": {\n \"layout_flexGrow\": 0,\n \"layout_flexBasisPercent\": 1\n }\n },\n {\n \"title\": \" 总点击排行 \",\n \"url\": \"{{Every()}}\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.29\n }\n },\n {\n \"title\": \" 总推荐排行 \",\n \"url\": \"source.getKey()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.29\n }\n }\n]",
"header": "{\n\t\"User-Agent\": \"Dalvik\/2.1.0 (Linux; U; Android 15; V2338A Build\/AP3A.240905.015.A2)\",\n\t\"Content-Type\": \"application\/x-www-form-urlencoded\"\n}",
"jsLib": "let base_url = \"http:\/\/app.wenku8.com\/android.php\";\n\nfunction Update() {\n try {\n let burl = \"https:\/\/wenku8-relay.mewx.org\/,\";\n let by = \"action=novellist&sort=lastupdate&page={{page}}&t=0\";\n const timetoken = Packages.java.lang.System.currentTimeMillis();\n const base64Encode = (str) => {\n const bytes = new java.lang.String(str).getBytes(\"UTF-8\");\n return Packages.android.util.Base64.encodeToString(bytes, Packages.android.util.Base64.NO_WRAP);\n };\n \n let body = {\n \"body\": `&appver=1.22&timetoken=${timetoken}&request=${base64Encode(by)}`,\n \"charset\": \"UTF-8\",\n \"method\": \"POST\"\n };\n \n return burl + JSON.stringify(body);\n \n } catch (e) {\n \/\/ 错误处理\n Packages.java.lang.System.err.println(\"Update函数错误: \" + e);\n return \"https:\/\/wenku8-relay.mewx.org\/,\" + JSON.stringify({\n error: e.toString()\n });\n }\n}\nfunction Every() {\n let burl = \"https:\/\/wenku8-relay.mewx.org\/,\";\n let by = \"action=articlelist&sort=allvisit&page={{page}}&t=0\";\n const timetoken = Packages.java.lang.System.currentTimeMillis();\n const base64Encode = (str) => {\n const bytes = new java.lang.String(str).getBytes(\"UTF-8\");\n return Packages.android.util.Base64.encodeToString(bytes, Packages.android.util.Base64.NO_WRAP);\n };\n \n let body = {\n \"body\": `&appver=1.22&timetoken=${timetoken}&request=${base64Encode(by)}`,\n \"charset\": \"UTF-8\",\n \"method\": \"POST\"\n };\n return burl + JSON.stringify(body);\n }",
"lastUpdateTime": "1755698935015",
"respondTime": 180000,
"ruleBookInfo": {
"author": "\/\/data[@name='Author']\/@value",
"coverUrl": "@js:\nvar id = java.getString(\"\/\/data[@name='Title']\/@aid\");\nvar iid = id.toString().substring(0,1);\nvar cover = \"http:\/\/img.wenku8.com\/image\/\" + iid + \"\/\" + id + \"\/\" + id + \"s.jpg\";\ncover ",
"init": "@js:\n\/\/完整简介\nvar id = java.getString(\"\/\/data[@name='Title']\/@aid\");\nvar by = `action=book&do=intro&aid=${id}&t=0`;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n}\nvar url = base_url + \",\" + JSON.stringify(body);\nvar intro = java.ajax(url);\njava.put(\"intro\", intro);\njava.put(\"bid\", id);\nsrc",
"intro": " \n📖 书名:{{\/\/data[@name='Title']\/text()}}\n✏️ 作者:{{\/\/data[@name='Author']\/@value}}{{\"\\n\"+\"\"}}\n🏷 标签:{{\/\/data[@name='Tags']\/@value}}\n🎐 来源:{{\/\/data[@name='PressId']\/@value}}\n👀点击量:{{\/\/data[@name='TotalHitsCount']\/@value}}{{\"\\n\"+\"\"}}\n📜 简介:{{java.get(\"intro\")}}",
"kind": "\/\/data[@name='Tags']\/@value",
"lastChapter": "{{\/\/data[@name='LatestSection']\/text()}} {{\/\/data[@name='LastUpdate']\/@value}}",
"name": "\/\/data[@name='Title']\/text()",
"tocUrl": "@js:\nvar s = base_url + \",\";\nvar id = java.getString(\"\/\/data[@name='Title']\/@aid\");\nvar by = `action=book&do=list&aid=${id}&t=0`;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n}\nvar CheaperUrl = s + JSON.stringify(body);\nCheaperUrl"
},
"ruleContent": {
"content": "<js>\nfunction convertToSimpleImgTags(content) {\n if (!content || typeof content !== \"string\") {\n return content;\n }\n var imgRegex = \/(https?:\\\/\\\/[^\\s]+?\\.(?:jpg|png|webp|jpeg)(?:\\?[^\\s]*)?)\/gi;\n var newContent = content.replace(imgRegex, function(url) {\n return '<img src=\"' + url + '\">';\n });\n \n return newContent;\n}\nresult = convertToSimpleImgTags(result);\n<\/js>"
},
"ruleExplore": {
"author": "\/\/data[@name='Author']\/@value",
"bookList": "@XPath:item",
"bookUrl": "@js:\nvar s = base_url + \",\";\nvar id = java.getString(\"\/\/@aid\");\nvar by = `action=book&do=meta&aid=${id}&t=0`;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n}\nvar bookUrl = s + JSON.stringify(body);\nbookUrl",
"coverUrl": "@js:\nvar id = java.getString(\"\/\/@aid\");\nvar iid = id.toString().substring(0,1);\nvar cover = \"http:\/\/img.wenku8.com\/image\/\" + iid + \"\/\" + id + \"\/\" + id + \"s.jpg\";\ncover ",
"intro": "\/\/data[@name='IntroPreview']\/text()",
"kind": "\/\/data[@name='Tags']\/@value\n@js:\nif ( !result ) {\n\t result = java.get(\"tag\");\n\t} else {\n\t\t result\n\t}",
"lastChapter": "{{\/\/data[@name='LastUpdate']\/@value}}",
"name": "\/\/data[@name='Title']\/text()\n@js:\nif ( !result ) {\n\t let id = java.getString(\"\/\/@aid\");\n\t let by = `action=book&do=meta&aid=${id}&t=0`;\n\t let body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n }\n\t let book = java.ajax(base_url + \",\" + JSON.stringify(body));\n\t java.put(\"tag\", java.getString(\"\/\/data[@name='Tags']\/@value\", book));\n\t result = java.getString(\"\/\/data[@name='Title']\/text()\", book);\n\t} else {\n\t\t result\n\t}",
"wordCount": "\/\/data[@name='TotalHitsCount']\/@value"
},
"ruleSearch": {
"author": "\/\/data[@name='Author']\/@value",
"bookList": "@XPath:item",
"bookUrl": "@js:\nvar s = base_url + \",\";\nvar id = java.getString(\"\/\/@aid\");\nvar by = `action=book&do=meta&aid=${id}&t=0`;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n}\nvar bookUrl = s + JSON.stringify(body);\nbookUrl",
"checkKeyWord": "魔法师",
"coverUrl": "@js:\nvar id = java.getString(\"\/\/@aid\");\nvar iid = id.toString().substring(0,1);\nvar cover = \"http:\/\/img.wenku8.com\/image\/\" + iid + \"\/\" + id + \"\/\" + id + \"s.jpg\";\ncover ",
"intro": "\/\/data[@name='IntroPreview']\/text()",
"kind": "\/\/data[@name='Tags']\/@value",
"lastChapter": "{{\/\/data[@name='LastUpdate']\/@value}}",
"name": "\/\/data[@name='Title']\/text()",
"wordCount": "\/\/data[@name='TotalHitsCount']\/@value"
},
"ruleToc": {
"chapterList": "volume,chapter",
"chapterName": "\/text()[1]",
"chapterUrl": "@js:\nvar s = base_url + \",\";\nvar id = java.getString(\"\/\/chapter\/@cid\");\nvar vid = java.getString(\"\/\/volume\/@vid\");\nvar by = `action=book&do=text&aid=${java.get(\"bid\")}&cid=${id}&t=0`;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(by)}`,\n method: \"POST\"\n};\n\/\/ 当vid不为空时输出空字符串,否则输出拼接的URL\nvar ContentUrl = vid != \"\" ? \"\" : s + JSON.stringify(body);\nContentUrl",
"isVolume": "{{java.getString('vid')}}<js>if (result == \"\") {\n false\n} else {\n true\n}<\/js>"
},
"searchUrl": "@js:\nvar s = base_url + \",\";\nvar page = page-1;\nvar keywords = \"action=search&searchtype=articlename&searchkey=\" + key + \"&t=\" + page;\nvar body = {\n body: `&appver=1.22&timetoken=${Date.now()}&request=${java.base64Encode(keywords)}`,\n method: \"POST\"\n}\nvar url = s + JSON.stringify(body);\nurl",
"weight": 0
}