真白萌(请先登录)
https://masiro.me
Ice-Min (10007)07/08 15:21
1.增加了APP内购买章节功能,再也不用去网站支付了;
2.现在需要支付的章节,正文内容很直观,和站内一样的显示;
3.本次之后应该就不会在这更新了,通过书源的更新按钮就行了;
4.老规矩,有问题先看源注释,还有问题那就没办法了;
{
"bookSourceComment": "1.需要在书源登录真白萌,才能正常使用此书源,登陆时请耐心等待验证;\n2.章节前面有🔒的标志,且内容为\"立即打钱\",请唤起小说界面UI,点击右上角的书源名,有购买选项;\n3.请确保自己账号金币充足,另外购买后不会去掉🔒,但正文会自动刷新;\n4.真白萌有访问次数限制,短时间访问太多次会被ban,所以建议把APP的正文预下载调低;\n5.如果刷新正文一直是获取失败,那请隔一段时间再刷新,也有可能是需要重新登录书源;\n6.现在登录按钮有两个功能了,一个登录,一个更新书源;\n7.仅限本次更新书源后,可能会显示你的书找不到源,删除后再重新搜索添加吧;\n8.删除后不要退出APP,这样可以保证你重新添加的书籍之前缓存的章节还在;\n9.待补充;",
"bookSourceGroup": "轻小说",
"bookSourceName": "真白萌(请先登录)",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/masiro.me",
"concurrentRate": "2500",
"customOrder": 2,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"header": "{\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14)\",\n \"Referer\": \"https:\/\/masiro.me\/\"\n}",
"jsLib": "function update() {\n const {java} = this;\n let sourceUrl = \"https:\/\/gitee.com\/Ice-Min\/MyBookSource\/raw\/master\/书源\/真白萌\/真白萌.json\";\n let importUrl = \"legado:\/\/import\/importonline?src=\" + sourceUrl;\n\n let importHtml = `data:text\/html;charset=utf-8,<html>\n<head>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>更新书源<\/title>\n<style>\n.importSource {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\theight: 50vh;\n\t}\nbutton {\n\tbackground-color: rgb(100,150,220);\n\tcolor: white;\n\tborder: none;\n\tborder-radius: 4px;\n\theight: 6vh;\n\twidth: 30vw;\n\toverflow: hidden;\n\t}\n<\/style>\n<\/head>\n<body><div class=\"importSource\"><a href=\"${importUrl}\"><button>更新书源<\/button><\/a><\/div><\/body>\n<\/html>`;\n java.startBrowser(importHtml, \"更新书源\");\n}",
"lastUpdateTime": "1751959278204",
"loginUi": "[\n {\n \"name\": \"登录\",\n \"type\": \"button\",\n \"action\": \"login()\"\n },\n {\n \"name\": \"更新书源\",\n \"type\": \"button\",\n \"action\": \"update()\"\n }\n]",
"loginUrl": "function login() {\n java.startBrowser(\"https:\/\/masiro.me\/admin\/auth\/login\", \"真白萌登录\");\n}",
"respondTime": 4841,
"ruleBookInfo": {
"author": ".author@a@text",
"canReName": "1",
"coverUrl": "https:\/\/masiro.me{{@@.mailbox-attachment-icon@img@data-src##\\?quality=.+}}",
"intro": "div.brief@html##简介:",
"kind": "span.label@text",
"lastChapter": "a.nw-a@text",
"name": "div.novel-title@text",
"tocUrl": "@js:\nvar options = {webView: true};\nvar theBookUrl = baseUrl + \",\" + JSON.stringify(options);\ntheBookUrl;",
"wordCount": "div.n-chapters@text##字数 : |字共.+话"
},
"ruleContent": {
"content": "@js:\nif(`{{@@class.cost@value}}` !== \"\") {\n`{{@@class.error-box@html}}\n{{@@class.cost@value}} 金币`;\n} else {\n`{{@@class.nvl-content@html}}`;\n}",
"payAction": "(function(){\n java.setContent(java.ajax(\"https:\/\/masiro.me\" + baseUrl));\n let costUrl = \"https:\/\/masiro.me\/admin\/pay\";\n let chapterBody = `type=${java.getString(\"class.type@value\")}&object_id=${java.getString(\"class.object_id@value\")}&cost=${java.getString(\"class.cost@value\")}`;\n let headers = {\n \"X-CSRF-TOKEN\": java.getString(\"class.csrf@value\"),\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14)\",\n \"Referer\": String(\"https:\/\/masiro.me\" + baseUrl)\n };\n let responseBody = java.post(costUrl, chapterBody, headers).body();\n if(JSON.parse(responseBody).code === 1) {\n java.longToast(JSON.parse(responseBody).msg);\n return true;\n } else {\n java.longToast(JSON.parse(responseBody).msg || \"支付失败\");\n return false;\n }\n})()"
},
"ruleExplore": {},
"ruleSearch": {
"author": "author",
"bookList": "novels",
"bookUrl": "https:\/\/masiro.me\/admin\/novelView?novel_id={{@json:id}}",
"checkKeyWord": "黄油路人",
"coverUrl": "cover_img",
"intro": "brief",
"kind": "tags..name",
"lastChapter": "new_up_content",
"name": "title",
"wordCount": "words"
},
"ruleToc": {
"chapterList": "ul.chapter-ul@.episode-ul>a, li.chapter-box>b",
"chapterName": ".episode-box>span:nth-of-type(1)@text||li.chapter-box>b@text",
"chapterUrl": "href",
"isVip": "@js:\nvar doc = org.jsoup.Jsoup.parse(result);\nvar smallElement = doc.select(\".episode-box > small:first-of-type\").first();\nvar isVIP = (smallElement != null && smallElement.text().trim().length() > 0);\n\/\/var isVIP = smallElement ? smallElement.text().trim().length > 0 : false;\nisVIP;",
"isVolume": "li.chapter-box>b@text",
"updateTime": ".episode-box>span:nth-of-type(2)>span[title]@text"
},
"searchUrl": "https:\/\/masiro.me\/admin\/loadMoreNovels?page={{page}}&keyword={{key}}",
"weight": 0
}