🌈寻欢小说
https://寻欢小说2.luoyacheng.ip-ddns.com
lyc486 (807)05/16 18:29
这是一个学会了自己更新的书源😎。
书源会自己静默更新自己的代码。也可在登录界面点击远程代码手动更新。
正式版和测试版均能正常使用。
网络问题需要自行解决(移动用户推荐设置打开Cronet)。
网站质量不太行,遇到异常情况(比如目录获取失败)是因为网页本身就无法正常观看。可拷贝书籍URL到浏览器确认。
{ "bookSourceComment": "辣文小说:https:\/\/www.aaqqcc.com\nntr色情小说:https:\/\/www.aahhss.com\n中文成人小说网:https:\/\/www.aaccnn.com\nh18小说网:https:\/\/www.sseegg.com", "bookSourceGroup": "🙈,寻欢", "bookSourceName": "🌈寻欢小说", "bookSourceType": 0, "bookSourceUrl": "https:\/\/寻欢小说2.luoyacheng.ip-ddns.com", "customOrder": 2, "enabled": true, "enabledCookieJar": false, "enabledExplore": true, "exploreUrl": "@js:\nlet banben=\"1.0.3\";\neval((eval(java.importScript(lycurl)+'')[0].exploreUrl||'').replace('@js:',''));", "header": "@js:\neval(((cache.getFromMemory('xhycy')||(eval(java.readTxtFile(java.md5Encode16(lycurl)+'.json')+'')||[{}])[0]).header||'').replace('@js:',''));", "jsLib": "function gets(x, r) {\nreturn r==undefined?\nthis.java.getString(x)+'':\nPackages.io.legado.app.model.analyzeRule.AnalyzeRule().getString(x,r)+'';}\nfunction gete(x, r) {\nreturn r==undefined?\nthis.java.getElement(x): Packages.io.legado.app.model.analyzeRule.AnalyzeRule().setContent(r).getElement(x);}\nfunction gengxin(){\nconst {java, source} = this;\n\tlet url0='https:\/\/gitee.com\/lyc486\/yuedu2\/commits\/main\/书源\/寻欢小说\/xvhs.json?browser_history=0&page=1&per=4';\n\tlet rr0=java.get(url0,{'User-Agent': 'Mozilla\/5.0 (Linux; Android 14)','X-Requested-With': 'XMLHttpRequest'}).body();\n\tlet \tgxlrr = com.jayway.jsonpath.JsonPath.read(rr0, '$.list[0:4].title');\n\tlet [gxlr, gxlr2, gxlr3, gxlr4] = gxlrr;\n\tlet banben = String(source.exploreUrl).match(\/let banben=\"([\\d\\.]+)\"\/)[1];\n\tgxlr=String(gxlr).split(\/^([^\\-]+)-\/);\n\tgxlr[0]=='' ? '' : gxlr=['','0',gxlr[0]];\n\tlet gxts;\n\tif (gxlr[1]>banben){gxts=['更新','0,140,186'];}\n\telse {gxts= ['导入','76,175,80'];};\n\tlet htm = `<html>\n<head>\n<title>更新<\/title>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<style>\ntable {\n\ttext-align: center;\n\tmargin: 2em auto 0 auto;\n\t}\nth span{font-size: 1.2em;}\n.ann {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\theight: 50vh;\n\t}\nbutton {\n\tbackground-color: rgb(${gxts[1]});\n\tcolor: white;\n\tborder: none;\n\tborder-radius: 4px;\n\theight: 6vh;\n\twidth: 30vw;\n\toverflow: hidden;\n\t}\nbutton span {\n cursor: pointer;\n display: inline-block;\n position: relative;\n transition: 0.4s;\n}\nbutton span:after {\n content: '>';\n position: absolute;\n opacity: 0;\n top: 0;\n right: 30px;\n transition: 0.2s;\n}\nbutton:active span {\n padding-right: 20px;\n}\nbutton:active span:after {\n opacity: 1;\n right: -40px;\n}\n<\/style>\n<\/head>\n<body>\n<table border=\"1\" cellspacing=\"0\">\n<th colspan=\"2\">最新日志:<span>${gxlr[2]}<\/span><\/th>\n<tr>\n<td>仓库版本:${gxlr[1]}<\/td>\n<td>本地版本:${banben}<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" style=\"text-align: left;\">往期日志:${gxlr2}<br> ${gxlr3}<br> ${gxlr4}<\/td>\n<\/tr>\n<\/table>\n<div class=\"ann\">\n<a href=\"legado:\/\/import\/importonline?src=https:\/\/gitee.com\/lyc486\/yuedu2\/raw\/main\/书源\/寻欢小说\/xvhs.json\">\n<button><span>${gxts[0]}<\/span><\/button>\n<\/a>\n<\/div>\n<a href=\"legado:\/\/import\/importonline?src=https:\/\/cdn.jsdelivr.net\/gh\/Luoyacheng\/yuedu@main\/书源\/寻欢小说\/xvhs.json\" style=\"font-size: 10px;\">备用链接<\/a>\n<\/body>\n<\/html>`;\nif(typeof this.book=='undefined'||gxts[0]=='更新') java.startBrowser(`data:text\/html;base64,${java.base64Encode(htm)}`,'更新');\r\n}\nvar lycurl=((h)=>{\nfor (var i=0,s='';i<h.length;i+=2) s+=String.fromCharCode(parseInt(h.substr(i,2),16));return s;})('68747470733A2F2F67697465652E636F6D2F6C79633438362F7975656475322F7261772F6D61696E2F2545342542392541362545362542412539302F2545352541462542422545362541432541322545352542302538462545382541462542342F79792F787679632E6A736F6E');", "lastUpdateTime": "1747391349732", "loginCheckJs": "let r=cache.getFromMemory('xhycy');\nif (!r) {\nMath.random()<0.3&&java.downloadFile(lycurl);\nr=eval(java.readTxtFile(java.md5Encode16(lycurl)+'.json')+'')[0];\nr&&cache.putMemory('xhycy',r);}\neval(r.loginCheckJs||'result');", "loginUi": "[\n {\n\t\"name\": \"网站地址\",\n\t\"type\": \"text\"\n\t},\n {\n\t\"name\": \"更新远程代码\",\n\t\"type\": \"button\",\n\t\"action\": \"gxin()\",\n\t\"style\": {\n\t\t\"layout_flexGrow\": 1,\n\t\t\"layout_flexBasisPercent\": -1}\n\t},\n {\n\t\"name\": \"更新书源本体\",\n\t\"type\": \"button\",\n\t\"action\": \"gengxin()\",\n\t\"style\": {\n\t\t\"layout_flexGrow\": 1,\n\t\t\"layout_flexBasisPercent\": -1}\n\t},\n {\n\t\"name\": \"用户名\",\n\t\"type\": \"text\"\n\t},\n {\n\t\"name\": \"密码\",\n\t\"type\": \"password\"\n\t},\n {\n\t\"name\": \"💍网站\",\n\t\"type\": \"button\",\n\t\"action\": \"web()\",\n\t\"style\": {\n\t\t\"layout_flexGrow\": 0,\n\t\t\"layout_flexBasisPercent\": -1,\n\t\t\"layout_wrapBefore\": true}\n\t},\n {\n\t\"name\": \"🔺登 录🔺\",\n\t\"type\": \"button\",\n\t\"action\": \"Login()\",\n\t\"style\": {\n\t\t\"layout_flexGrow\": 1,\n\t\t\"layout_flexBasisPercent\": -1}\n\t},\n {\n\t\"name\": \"♤登出\",\n\t\"type\": \"button\",\n\t\"action\": \"re()\",\n\t\"style\": {\n\t\t\"layout_flexGrow\": 0,\n\t\t\"layout_flexBasisPercent\": -1}\n\t}\n]", "loginUrl": "eval(eval(java.importScript(lycurl)+'')[0].loginUrl);", "respondTime": 180000, "ruleBookInfo": { "author": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.author)", "canReName": "1", "coverUrl": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.coverUrl)", "init": "@js:\neval((cache.getFromMemory('xhycy').ruleBookInfo.init||'').replace('@js:','')||'result');", "intro": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.intro)", "kind": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.kind)", "lastChapter": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.lastChapter)", "name": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.name)", "wordCount": "@js:\ngets(cache.getFromMemory('xhycy').ruleBookInfo.wordCount)" }, "ruleContent": { "content": "@js:\nlet r=cache.getFromMemory('xhycy');\nif (!r) {\nr=eval(java.readTxtFile(java.md5Encode16(lycurl)+'.json')+'')[0];cache.putMemory('xhycy',r);}\ngets(r.ruleContent.content);", "replaceRegex": "{{(cache.getFromMemory('xhycy').ruleContent.replaceRegex||'##lyc₄₈₆##').replaceAll('\\\\\\\\','\\\\')}}" }, "ruleExplore": {}, "ruleSearch": { "author": "@js:\ngets(cache.getFromMemory('xhycy').ruleSearch.author)", "bookList": "@js:\ngete(cache.getFromMemory('xhycy').ruleSearch.bookList)", "bookUrl": "@js:\ngets(cache.getFromMemory('xhycy').ruleSearch.bookUrl)", "coverUrl": "@js:\ngets(cache.getFromMemory('xhycy').ruleSearch.coverUrl)", "name": "@js:\ngets(cache.getFromMemory('xhycy').ruleSearch.name)" }, "ruleToc": { "chapterList": "@js:\ngete(cache.getFromMemory('xhycy').ruleToc.chapterList)", "chapterName": "text", "chapterUrl": "href", "preUpdateJs": "let r=cache.getFromMemory('xhycy');\nif (!r) {\nr=eval(java.readTxtFile(java.md5Encode16(lycurl)+'.json')+'')[0];cache.putMemory('xhycy',r);}\neval(r.ruleToc.preUpdateJs||'');" }, "searchUrl": "<js>\neval(java.importScript(lycurl)+'')[0].searchUrl\n<\/js>", "weight": 0 }