🐸漫蛙
https://manwapm.cc
langzaier (13654)2天前
更新了发布页地址。其实大家可以不用过度依赖发布页,发布页地址常常更换,漫蛙的大陆网址都是manwa+2字母.cc,在浏览器用穷举法一个个试,很快就能试出来。比如我现在试出来了manwaqe.cc,manwark.cc,manwaro.cc,肯定还有更多能用的。这个源的具体使用方法可查源注释。原作者ljy911028的版本更好操作上手,只需要把当前域名粘贴进去就可以,且把域名更换了也可以通过阅读主页的批量换源功能批量换回原来的源。但缺点是无法查看自己在漫蛙的收藏书架。这个版本的可以看。
{
"bookSourceComment": "【原作者注释】\n↓漫蛙走失页:\nhttps:\/\/mwmissing1.cc\nhttps:\/\/fuwbl.cc\/maKapG\n↓大陆网域,会自动跳转最新的网域:\nhttps:\/\/fuwbl.cc\nhttps:\/\/manwapm.cc\nhttps:\/\/manwapl.cc\nhttps:\/\/manwapk.cc\n(进不去请先切换WiFi\/4g及开关飞航模式试试刷新试试看)\n↓非大陆地区:\nhttps:\/\/manwa.me\nby狼崽儿 \/\/2026.7.27\n原作者ljy911028\n登录接口默认第一个。部分作品需要先登录才能访问。\n如果是第一次使用某个接口,可以先登录再搜索,阅读会长期保存该接口的登录状态。但是不同接口都需要单独登录,如果切换到第一次使用的域名,切记记得登录。\n没有测试接口快慢的功能,所以需要自己慢慢试哪个接口可以用❤️(2026.8.26 已完全移除此功能)\n\/\/2026.8.28 by狼崽儿\n【V2大更新❗️】【请仔细看源注释❗️】\n\n1.众所周知,漫蛙的子域名太多了,硬编码的子域名组已经无法适应变化。所以本版本采用自定义输入网址后缀的两个字母来访问国内子站。\n 〔👉使用攻略〕①(已经知道可用地址的小伙伴去第②步)\n 如果你不知道现在哪个漫蛙的域名可以用,可以复制发布页https:\/\/mwmissing1.cc在浏览器打开,或者直接点击登录处的发布页,进去点击备用地址等待重定向,成功进入漫蛙后观察上面的域名,比如当前域名是https:\/\/manwapm.cc,记住它,或者直接复制。\n ②模板:https:\/\/manwapm.cc\n 该网址的后缀是pm,所以直接在自定义域名输入pm,点击右上角√保存(一定要保存!)\n 支持粘贴pm、https:\/\/manwapm.cc、https:\/\/manwapm.cc\/、manwapm.cc、https:\/\/manwapm.cc\/\/\/\n ③默认域名是漫蛙主域名https:\/\/manwa.me,需要挂梯使用。如果想回退到该域名,点击清除自定义以后❌不要点击√,直接返回。或者删除所有自定义域名字母并点击清除自定义后保存。\n ④(可选)登录篇\n 某些🔞作品需要登录才能搜索得到。应在填写好域名之后点击💡登录页面💡,跳转至真正的登录页登录(确保已开启CookieJar)。依然是没有登录过的网站需要重新登录。\n Q:为什么不能直接在阅读里登录呢?\n A:因为登录强制需要输入验证码,目前我没找到什么控件可以在登录显示验证码。\n Q:如何验证已经登录了?\n A:我在搜索的校验关键词放了一个隐藏作品的名字,你们去校验的时候发现出来的不是这本书就说明无登录cookie。你们也可以更换成其他隐藏作品自行校验。\n \n2.发现页在自定义域名后,旧版书源需要在探索页长按此源刷新。\n ①保持了原作者的标签添加简易性。想要添加新标签,直接复制上一个标签到下一行,然后替换里面的文字就可以了。\n ②新增了⭐ 我的收藏。登录之后即可在探索页查看收藏书柜。为了避免不爱登录的小伙伴校验失败,所以⭐ 我的收藏放置在了分类和标签中间的位置。\n ps:如果查看失败,大概率是曾经清除过cookie,重新在登录页面登录。(校验搜索会出现隐藏作品不代表仍然处于登录状态,只能证明当初已经登录过的cookie仍然在发挥作用)小概率是网站负担过重,主动关闭了收藏书柜的查看功能,过一段时间再查看。\n 因为本人从来都没有在网站上收藏的习惯,所以为了测验此功能而临时收藏的书籍数量少,在测试时并没有出现bug,具体使用情况你们自行辨别一下。\n\n3.使用小贴士❤️\n如果遇到高峰期不出图,可以尝试挂梯。虽然漫蛙的国内子域名网站挂梯之后是进不去的,但是图片都是海外的主站服务器返回的。挂梯之后会使阅读更快接收到图片。",
"bookSourceName": "🐸漫蛙",
"bookSourceType": 2,
"bookSourceUrl": "https:\/\/manwapm.cc",
"customButton": false,
"customOrder": 53,
"enabled": false,
"enabledCookieJar": true,
"enabledExplore": true,
"eventListener": false,
"exploreUrl": "@js:\nvar _o = {};\ntry { _o = JSON.parse(source.getVariable()); } catch (e) { _o = {}; }\nvar _base = _o.custom || (_o.suffix && \/^[a-z]{1,2}$\/.test(_o.suffix) ? 'https:\/\/manwa' + _o.suffix + '.cc' : 'https:\/\/manwa.me');\nvar result = [];\nvar push = function(title, url, size) {\n result.push({\n title: title,\n url: url,\n style: {\n layout_flexGrow: 1,\n layout_flexBasisPercent: size\n }\n });\n};\n\npush('🌐 当前网址:' + _base, null, 1);\npush('📂 分类', null, 1);\npush('全部', _base + '\/booklist\/?page={{page}}', 0.25);\npush('连载中', _base + '\/booklist?tag=&end=2&gender=-1&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('完结', _base + '\/booklist?tag=&end=1&gender=-1&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('收藏', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=&sort=1&level=-1&page={{page}}', 0.25);\npush('新漫', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=&sort=2&level=-1&page={{page}}', 0.25);\npush('一般向', _base + '\/booklist?tag=&end=&gender=2&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('BL向', _base + '\/booklist?tag=&end=&gender=0&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('禁漫', _base + '\/booklist?tag=&end=&gender=1&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('TL向', _base + '\/booklist?tag=&end=&gender=3&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('GL向', _base + '\/booklist?tag=&end=&gender=4&has_full=-1&area=&sort=-1&level=-1&page={{page}}', 0.25);\npush('韩漫', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=2&sort=-1&level=-1&page={{page}}', 0.25);\npush('日漫', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=3&sort=-1&level=-1&page={{page}}', 0.25);\npush('国漫', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=4&sort=-1&level=-1&page={{page}}', 0.25);\npush('台漫', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=5&sort=-1&level=-1&page={{page}}', 0.25);\npush('其他', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=6&sort=-1&level=-1&page={{page}}', 0.25);\npush('未分类', _base + '\/booklist?tag=&end=&gender=-1&has_full=-1&area=1&sort=-1&level=-1&page={{page}}', 0.25);\n\npush('⭐ 我的收藏', _base + '\/bookshelf,{webView:true}', 1);\n\npush('🏷 标签', null, 1);\npush('中文', _base + '\/booklist?page={{page}}&tag=中文', 0.25);\npush('巨乳', _base + '\/booklist?page={{page}}&tag=巨乳', 0.25);\npush('中出', _base + '\/booklist?page={{page}}&tag=中出', 0.25);\npush('口交', _base + '\/booklist?page={{page}}&tag=口交', 0.25);\npush('19R', _base + '\/booklist?page={{page}}&tag=19R', 0.25);\npush('透视', _base + '\/booklist?page={{page}}&tag=透视', 0.25);\npush('全彩', _base + '\/booklist?page={{page}}&tag=全彩', 0.25);\npush('3D', _base + '\/booklist?page={{page}}&tag=3D', 0.25);\npush('人外', _base + '\/booklist?page={{page}}&tag=人外', 0.25);\n\npush('自己添加(照上面格式加一行即可)', null, 0.25);\nJSON.stringify(result);",
"jsLib": "var defaultUrl = 'https:\/\/manwa.me';\n\nfunction _src() {\n var s = (this && this.source);\n if (!s) { try { s = source; } catch (e) { s = null; } }\n return s;\n}\n\nfunction Get(e) {\n var s = _src.call(this);\n if (!s) return null;\n var o = {};\n try { o = JSON.parse(s.getVariable()); } catch (err) { o = {}; }\n return o[e];\n}\n\nfunction URL() {\n var s = _src.call(this);\n if (!s) return defaultUrl;\n var o = {};\n try { o = JSON.parse(s.getVariable()); } catch (err) { o = {}; }\n if (o.custom) return o.custom;\n if (o.suffix && \/^[a-z]{1,2}$\/.test(o.suffix)) return 'https:\/\/manwa' + o.suffix + '.cc';\n return defaultUrl;\n}",
"lastUpdateTime": "1792512855095",
"loginUi": "[\n {\"name\": \"自定义域名(2字母或完整网址)\", \"type\": \"text\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 1}},\n {\"name\": \"当前接口\", \"type\": \"button\", \"action\": \"show()\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.35}},\n {\"name\": \"清除自定义\", \"type\": \"button\", \"action\": \"clearSuffix()\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.35}},\n {\"name\": \"🏠发布页\", \"type\": \"button\", \"action\": \"z()\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.35}},\n {\"name\": \"💡登录页面💡\", \"type\": \"button\", \"action\": \"c()\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.35}}\n]",
"loginUrl": "var original = {'idx': 0, 'suffix': '', 'custom': ''};\ntry {\n $$$ = JSON.parse(source.getVariable());\n if ($$$ == null || typeof $$$ !== 'object' || Array.isArray($$$)) {\n throw new Error();\n }\n if ($$$.custom == null) $$$.custom = '';\n if ($$$.suffix == null) $$$.suffix = '';\n} catch (e) {\n $$$ = original;\n put($$$);\n}\n\nfunction put(data) {\n return source.setVariable(JSON.stringify(data));\n}\n\nfunction cur() {\n var s = 'https:\/\/manwa.me';\n try {\n var o = JSON.parse(source.getVariable());\n if (o.custom) s = o.custom;\n else if (o.suffix && \/^[a-z]{1,2}$\/.test(o.suffix)) s = 'https:\/\/manwa' + o.suffix + '.cc';\n } catch (e) {}\n return s;\n}\n\n\/\/login:✓保存触发——应用自定义域名(真登录走网页 \/login)\nfunction login() {\n var raw = '';\n try { raw = String(JSON.parse(source.getLoginInfo())['自定义域名(2字母或完整网址)'] || '').trim(); } catch (e) {}\n if (raw) {\n var s = raw.toLowerCase().replace(\/[^a-z0-9.:\\\/-]\/g, '').slice(0, 60);\n if (\/^[a-z]{1,2}$\/.test(s)) {\n $$$.suffix = s;\n $$$.custom = '';\n put($$$);\n java.toast('已设置域名:' + cur());\n } else if (s.indexOf('.') > 0) {\n if (s.indexOf(':\/\/') < 0) s = 'https:\/\/' + s;\n $$$.custom = s.replace(\/\\\/+$\/, '');\n $$$.suffix = '';\n put($$$);\n java.toast('已设置域名:' + cur());\n } else {\n java.toast('域名格式不对:2个字母或完整域名');\n }\n } else {\n java.toast('当前接口:' + cur());\n }\n}\n\nfunction clearSuffix() {\n $$$.suffix = '';\n $$$.custom = '';\n put($$$);\n java.log('[manwa] 清除后 getVariable=' + source.getVariable());\n java.toast('已清除,使用默认域名');\n}\n\nfunction show() {\n java.toast('当前接口:' + cur());\n}\n\n\/\/发布页\nfunction z() {\n java.startBrowser('https:\/\/mwmissing1.cc\/', '');\n}\n\n\/\/登录页面:打开当前域名 + \/login\nfunction c() {\n java.startBrowser(cur().replace(\/\\\/$\/, '') + '\/login', '');\n}",
"respondTime": 180000,
"ruleBookInfo": {
"author": "@js:\nvar _list = java.getStringList('p.detail-main-info-author a@text'); \/\/ Java List\nvar _out = [];\nfor (var _i = 0; _i < _list.size(); _i++) {\n var _t = String(_list.get(_i)).trim();\n if (_t) { _out.push(_t); }\n}\n_out.join('、 ')",
"coverUrl": ".detail-main-cover@img@data-original",
"intro": ".detail-desc@text",
"kind": ".detail-main-info-class@a@text",
"lastChapter": ".detail-list-select@a.-1@text",
"name": ".detail-main-info-title@text"
},
"ruleContent": {
"content": ".content-img@data-r-src\n@js:\nvar _m = String(baseUrl).match(\/^https?:\\\/\\\/([^\\\/]+)\/);\nvar _ref = _m ? 'https:\/\/' + _m[1] + '\/' : 'https:\/\/manwa.me\/';\nvar headers = {\"headers\":{\"Referer\":_ref}};\nresult.split(\"\\n\").map(x=>'<img src=\"'+x+','+JSON.stringify(headers)+'\">').join(\"\\n\")",
"imageDecode": "\/** https:\/\/manwa2.site\/static\/js\/ch.js?v=202208132\n*\/\n\nfunction decode(bytes, key){\n\nreturn java.createSymmetricCrypto(\n\t\"aes\/cbc\/pkcs7padding\", \n\t key,\n\t key\n\t)\n.decrypt(bytes)\n}\n\nkey = cache.get(\"manwa_aes_key\") || \"my2ecret782ecret\"\n\ndecode(result, key)",
"imageStyle": "FULL"
},
"ruleExplore": {
"bookList": "ul.manga-list-2 li",
"bookUrl": "div.manga-list-2-cover a@href",
"coverUrl": "img.manga-list-2-cover-img@src||div.manga-list-2-cover img@src",
"intro": ".manga-list-2-tip@text",
"name": "p.manga-list-2-title a@text"
},
"ruleSearch": {
"author": ".book-list-info-bottom-item@text##作者:|\\([^)]*\\)|…+$|\\.\\.\\.$",
"bookList": ".book-list@li",
"bookUrl": "a@href",
"checkKeyWord": "狗与飞鸟",
"coverUrl": "img@data-original",
"intro": ".book-list-info-desc@text",
"kind": "p.book-list-info-nickname@text&&span.book-list-info-bottom-right-font@text",
"name": ".book-list-info-title@text"
},
"ruleToc": {
"chapterList": ".detail-list-select@li a",
"chapterName": "text",
"chapterUrl": "href"
},
"searchUrl": "@js:\nvar _o = {};\ntry { _o = JSON.parse(source.getVariable()); } catch (e) { _o = {}; }\nvar _u = '';\nif (_o.custom) { _u = _o.custom; }\nelse if (_o.suffix && \/^[a-z]{1,2}$\/.test(_o.suffix)) { _u = 'https:\/\/manwa' + _o.suffix + '.cc'; }\nelse { _u = 'https:\/\/manwa.me'; }\ntry { java.log('[manwa] 搜索 getVariable=' + source.getVariable() + ' -> ' + _u); } catch (e) {}\n_u + \"\/search?keyword=\" + encodeURIComponent(key) + \"&page=\" + page",
"weight": 0
}