🎨哔咔漫画💞
https://picaapi.picacomic.com
xiaohan231 (515)2024/06/19
V2.2版,激活码:555666
{ "bookSourceComment": "", "bookSourceGroup": "🔭 其他,🎊 常用,🎨 漫画", "bookSourceName": "🎨哔咔漫画💞", "bookSourceType": 2, "bookSourceUrl": "https:\/\/picaapi.picacomic.com", "bookUrlPattern": "", "customOrder": 0, "enabled": true, "enabledCookieJar": false, "enabledExplore": true, "exploreUrl": "<js>\neval(String(source.loginUrl));\nvar exploreUrl = [];\nSort = `{{get('sort',Get('o'))}}`;\nAccount = (cache.get(java.md5Encode16(Get('url') + \"Account_1\")) && String(cache.get(java.md5Encode16(Get('url') + \"Account_1\"))).length > 0) ? cache.get(java.md5Encode16(Get('url') + \"Account_1\")) : Map('账号:');\npath = 'init?platform=android';\nurl = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\nvar kind = JSON.parse(java.ajax(url)).data;\nif(String(Account).length > 0 && String(source.getLoginHeader()).length > 0) {\n if (!kind) {\n Login();\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n kind = JSON.parse(java.ajax(url)).data;\n } \n cache.put(java.md5Encode16(Get('url') + \"Account_1\"), Account);\n java.put(java.md5Encode16(Get('url') + \"Account_1\"), Account); \n exploreUrl.push(explore('✣【' + Account + '】✣', '', 1, 1, false));\n var signdate = sign();\n cache.put(\"pica-sign\", signdate);\n exploreUrl.push(explore(signdate + '✔️', '', 1, 0.25, false));\n path = `users\/favourite?s=${Sort}&page={{page}}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('我的收藏', url, 1, 0.25, false));\n title = '✣ ✣ 主 题 ✣ ✣';\n exploreUrl.push(explore(title, '', 1, 1, false));\n path = `comics?page={{page}}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('最近更新', url, 1, 0.25, false));\n path = `comics\/random`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path},{\"headers\":${header},\"method\": \"GET\"}`;\n exploreUrl.push(explore('随机本子', url, 1, 0.25, false));\n path = `comics?page={{page}}&c=${java.encodeURI('大家都在看')}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('大家在看', url, 1, 0.25, false));\n path = `comics?page={{page}}&c=${java.encodeURI('大濕推薦')}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('大师推荐', url, 1, 0.25, false));\n path = `comics?page={{page}}&c=${java.encodeURI('那年今天')}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('那年今天', url, 1, 0.25, false));\n path = `comics?page={{page}}&c=${java.encodeURI('官方都在看')}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore('官方在看', url, 1, 0.25, false));\n title = '✣ ✣ 榜 单 ✣ ✣';\n exploreUrl.push(explore(title, '', 1, 1, false));\n path = `comics\/leaderboard?tt=H24&ct=VC`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path},{\"headers\":${header},\"method\": \"GET\"}`;\n exploreUrl.push(explore('24小时', url, 1, 0.25, false));\n path = `comics\/leaderboard?tt=D7&ct=VC`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path},{\"headers\":${header},\"method\": \"GET\"}`;\n exploreUrl.push(explore('7天', url, 1, 0.25, false));\n path = `comics\/leaderboard?tt=D30&ct=VC`;\n header = `{{Header('${path}','GET')}}`;\n url = `{{Get('url')}}\/${path},{\"headers\":${header},\"method\": \"GET\"}`;\n exploreUrl.push(explore('30天', url, 1, 0.25, false));\n title = '✣ ✣ 标 签 ✣ ✣';\n exploreUrl.push(explore(title, '', 1, 1, false));\n var kind = kind.categories;\n for (i in kind) {\n path = `comics?page={{page}}&c=${java.encodeURI(kind[i].title)}&s=${Sort}`;\n header = `{{Header('${path}','GET')}}`;\n title = kind[i].title\n title = Get('TC_to_SC') == true ? java.t2s(title) : title;\n url = `{{Get('url')}}\/${path}`;\n exploreUrl.push(explore(title, url, 1, 0.25, false));\n }\n BID = (kind.length % 3) < 1 ? 0 : (3 - (kind.length % 3));\n for (i = 0; i < BID; i++) {\n exploreUrl.push(explore('', '', 1, 0.25, false)); \n }\n}\nJSON.stringify(exploreUrl);\n<\/js>", "header": "<js>\nvar Proxy = Map('代理:').split(\",\");\nheaders={\n \"User-Agent\": \"okhttp\/3.8.1\",\n \"proxy\": Proxy.some(value => parseInt(value, 10) == parseInt(Get('ci0'), 10)) ? '' : Proxy[0],\n}\ncache.put(java.md5Encode16(Get('url') + \"headers\"),JSON.stringify(headers));\nJSON.stringify(headers);\n<\/js>", "jsLib": "function get(tag,num) {\n sort = [\n 'dd',\n 'da',\n 'ld',\n 'vd'\n ];\n var e = eval(tag + '[' + num + ']');\n return e;\n}\nfunction explore(title, url, Grow, Basis, bool) {\n style = {\n title:title,\n url:url,\n style:{\n layout_flexGrow:Grow,\n layout_flexBasisPercent:Basis,\n layout_wrapBefore: bool\n }\n };\n return style;\n}\nfunction Get(e) {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n return get[e];\n}\nfunction Put(data) {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n data = get['TC_to_SC'] == true ? java.t2s(data) : data;\n return JSON.parse(data);\n}\nfunction Map(e) {\n const { java, source, cookie } = this;\n var infomap = source.getLoginInfoMap();\n var map = (infomap !== null && infomap.get(e)) ? infomap.get(e) : '';\n return map;\n}\nfunction Num(e) {\n e = String(e);\n var num = e.length > 8 ? (e.substring(0, e.length - 8) + \"亿\") : (e.length > 4 ? (e.substring(0, e.length - 4) + \"万\") : e);\n return num;\n}\nfunction Header(a,b) {\n const { java, source, cookie } = this;\n function Signature(a,b) {\n var api_key = \"C69BAF41DA5ABD1FFEDC6D2FEA56B\";\n var time = String(new Date().getTime()).replace(\/^(.*).{3}\/, '$1');\n var nonce = java.md5Encode(new Date().getTime());\n var data = String(a + time + nonce + b + api_key).toLowerCase();\n var key = '~d}$Q7$eIni=V)9\\\\RK\/P.RM4;9[7|@\/CA}b~OW!3?EV`:<>M7pddUBL5n|0\/*Cn';\n var signature = java.HMacHex(data, \"HmacSHA256\", key);\n var str = String(`\"api-key\":\"${api_key}\",\"time\":\"${time}\",\"nonce\":\"${nonce}\",\"signature\":\"${signature}\",`);\n return str;\n }\n var headers = '{\"User-Agent\":\"okhttp\/3.8.1\",\"Host\": \"picaapi.picacomic.com\",' + Signature(a,b) + '\"app-channel\":\"1\",\"app-build-version\":\"45\",\"app-uuid\":\"defaultUuid\",\"image-quality\":\"original\",\"Accept\":\"application\/vnd.picacomic.com.v1+json\"' + (String(a).includes('sign-in') ? '' : (',\"Content-Type\":\"application\/json; charset=UTF-8\",\"authorization\":\"' + source.getLoginHeader() +'\"')) + '}';\n return headers;\n}\nfunction sign() {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n function Signature(a,b) {\n var api_key = \"C69BAF41DA5ABD1FFEDC6D2FEA56B\";\n var time = String(new Date().getTime()).replace(\/^(.*).{3}\/, '$1');\n var nonce = java.md5Encode(new Date().getTime());\n var data = String(a + time + nonce + b + api_key).toLowerCase();\n var key = '~d}$Q7$eIni=V)9\\\\RK\/P.RM4;9[7|@\/CA}b~OW!3?EV`:<>M7pddUBL5n|0\/*Cn';\n var signature = java.HMacHex(data, \"HmacSHA256\", key);\n var str = String(`\"api-key\":\"${api_key}\",\"time\":\"${time}\",\"nonce\":\"${nonce}\",\"signature\":\"${signature}\",`);\n return str;\n }\n var header = '{\"User-Agent\":\"okhttp\/3.8.1\",\"Host\": \"picaapi.picacomic.com\",' + Signature('users\/punch-in','POST') + '\"app-channel\":\"1\",\"app-build-version\":\"45\",\"app-uuid\":\"defaultUuid\",\"image-quality\":\"original\",\"Accept\":\"application\/vnd.picacomic.com.v1+json\",\"Content-Type\":\"application\/json; charset=UTF-8\",\"authorization\":\"' + source.getLoginHeader() +'\"}';\n var Url = get['url'] + '\/users\/punch-in,{\"headers\":' + header + ',\"body\":{},\"method\": \"POST\"}';\n\/\/java.log(java.ajax(Url));\n var sign = JSON.parse(java.ajax(Url)).data.res;\n var date = String(java.timeFormat(new Date().getTime())).replace(\/\\d+\\\/(.*)\\s.*\/, '$1');\n java.longToast('【登录提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + '\\n账号:' + java.get(java.md5Encode16(get['url'] + \"Account_1\")) + '\\n┋┋' + '\\n❤️登录成功❤️\\n┋┋' + (sign.status !== 'fail' ? ('\\n📆今日签到成功~\\n┋┋') : ('\\n📆今日已签到~\\n┋┋')) + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n return date;\n}", "lastUpdateTime": 1718751352029, "loginUi": "[\n { name: \"激活码:\", type: \"text\" },\n { name: \"代理:\", type: \"text\" },\n { name: \"账号:\", type: \"text\" },\n { name: \"密码:\", type: \"password\" },\n {\n name: \" 💡登录账号💡 \",\n type: \"button\",\n action: \"Login()\"\n },\n {\n name: \" 💡源站更新💡 \",\n type: \"button\",\n action: \"update()\"\n },\n { name: \" 查看当前 \", type: \"button\", action: \"look(0)\" },\n { name: \" 查看历史 \", type: \"button\", action: \"look(1)\" },\n { name: \" 恢复默认 \", type: \"button\", action: \"test(0)\" },\n { name: \" 繁体搜索 \", type: \"button\", action: \"search_TC()\" },\n { name: \" 繁简转换 \", type: \"button\", action: \"TC_to_SC()\" },\n { name: \" 目录整理 \", type: \"button\", action: \"settle()\" },\n\n { name: \" ༺ˇ»`ʚ 点击切换源站 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \" ①哔 咔✈️ \", type: \"button\", action: \"$(1)\" },\n { name: \" ②哔 咔🐰 \", type: \"button\", action: \"$(2)\" },\n { name: \" ③哔 咔🐰 \", type: \"button\", action: \"$(3)\" },\n\n\n { name: \" ༺ˇ»`ʚ 点击切换排序 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \" 最 新 \", type: \"button\", action: \"o(0)\" },\n { name: \" 最 旧 \", type: \"button\", action: \"o(1)\" },\n { name: \" 爱 心 \", type: \"button\", action: \"o(2)\" },\n { name: \" 指 数 \", type: \"button\", action: \"o(3)\" },\n\n {\n name: \" 设置填写的页数为评论加载页数 \",\n type: \"button\",\n action: \"f()\"\n },\n { name: \"页数:\", type: \"text\" },\n\n {\n name: \" 💡 源 站 打 印 💡 \",\n type: \"button\",\n action: \"test()\"\n }\n]", "loginUrl": "var imghost = 'https:\/\/img.go2778.com';\nvar imghost1 = 'https:\/\/s3.go2778.com';\nvar fburl = 'http:\/\/68.183.234.72\/init';\noriginal = {\n 'ci0': 0,\n 'ci1': 0,\n 'ci2': 0,\n 'ci3': 0,\n 'f': 5,\n 'o': 0,\n 'search_TC': false,\n 'TC_to_SC': true,\n 'settle': false,\n 'url': 'https:\/\/picaapi.picacomic.com',\n 'urls': [\n 'https:\/\/picaapi.picacomic.com',\n 'https:\/\/picaapi.picacomic.com'\n ]\n};\ntry {\n $$$ = JSON.parse(source.getVariable());\n if ($$$ == null) {\n error;\n } else {\n '';\n };\n} catch (e) {\n $$$ = original;\n put($$$);\n}\nx = '⓪①②③④⑤⑥⑦⑧⑨⑩';\nvar Headers = JSON.parse(cache.get(java.md5Encode16(Get('url') + \"headers\")));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nfunction test(e) {\n if (e == undefined) {\n return java.log('\\n' + JSON.stringify($$$['urls'], null, '\\t')) + login('【源站输出提示】' + n(2) + '源站已打印完毕,请到日志查看');\n }\n if (e == 0) {\n login('【初始化提示】' + n(2) + '已恢复默认设置');\n return put(original);\n }\n date1 = new Date().getTime();\n html = java.ajax($$$.urls[e]);\n date2 = new Date().getTime();\n t = date2 - date1;\n time = t \/ 1000 + 's';\n c = String(html).indexOf('code');\n logTime = '【' + name(e) + '】\\n┋┋\\n' + '解析时间:' + time;\n if (c == -1 || t > 5000) {\n return login('【访问失败提示】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♣️源站已失效(可能被墙)♣️\\n┋┋\\n请更新网址\/切换源站\/切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t < 1000) {\n return login('【网络环境优良】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n❤️延迟低,推荐使用此站❤️\\n┋┋\\n网络环境优良,请继续保持状态\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 1000 && t < 2000) {\n return login('【网络环境一般】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♦️延迟一般,勉强可使用♦️\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 2000 && t < 5000) {\n return login('【网络环境堪忧】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♠延迟过高,不建议使用♠\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n }\n}\nfunction put(data) {\n return source.setVariable(JSON.stringify(data, null, '\\t'));\n}\nfunction update() {\n $$$['urls'].splice(2);\n html = java.ajax(fburl);\n IPS = JSON.parse(html).addresses;\n for (i in IPS) {\n host = 'http:\/\/' + IPS[i];\n if (String($$$['urls']).indexOf(host) === -1) {\n java.log('\\n✅已添加源站:\\n' + host);\n $$$['urls'].push(host);\n put($$$);\n }\n }\n return login('【源站更新提示】' + n(2) + '源站更新完毕,请到日志查看');\n}\nfunction name(e) {\n if (n == undefined) {\n e = 0;\n }\n return x[e] + ' ' + $$$.urls[e];\n}\nfunction login(e) {\n if (e == undefined) {\n return;\n }\n java.longToast(e);\n}\nfunction n(e) {\n n = '\\n';\n for (m = 1; m < e; m++) {\n n = n + '\\n';\n }\n return n;\n}\nfunction k(e) {\n k = ' ';\n for (q = 1; q < e; q++) {\n k = k + ' ';\n }\n return k;\n}\nfunction l(e) {\n l = '';\n for (o = 1; o < e; o++) {\n l = l + '';\n }\n return l;\n}\nfunction look(e) {\n if (e == 0) {\n return login('【查看当前源站】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + ('\\n ' + '📌' + name($$$.ci0)) + '\\n┋┋' + ('\\n' + '📚漫画排序:' + typeO($$$.o)) + '\\n┋┋' + ('\\n' + '📰评论页数:前' + ($$$.f) + '页') + '\\n┋┋' + ('\\n🔍繁体搜索:' + ($$$.search_TC == true ? '开启' : '关闭')) + '\\n┋┋' + ('\\n📑繁简转换:' + ($$$.TC_to_SC == false ? '关闭' : '开启')) + '\\n┋┋' + ('\\n🗃目录整理:' + ($$$.settle == false ? '关闭' : '开启')) + '\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else {\n return login('【查看历史接口】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + ('\\n ci1:' + name($$$.ci1)) + '\\n┋┋' + ('\\n ci2:' + name($$$.ci2)) + '\\n┋┋' + ('\\n ci3:' + name($$$.ci3)) + '\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n }\n}\nfunction $(e) {\n if (e == undefined) {\n e = result['序号:'];\n e = e > 0 ? e : '0';\n }\n if (\/^ci[123]$\/.test(e)) {\n eval('i=$$$.' + e);\n }\n if (\/\\D|^$\/.test(e) || e < 0 || e >= $$$['urls'].length) {\n return login('【源站错误提示】' + n(2) + '已选择的源站无效,请重新选择');\n }\n $$$['url'] = $$$['urls'][e];\n $$$['ci3'] = $$$['ci2'];\n $$$['ci2'] = $$$['ci1'];\n $$$['ci1'] = $$$['ci0'];\n $$$['ci0'] = e;\n put($$$);\n test(e);\n}\nfunction f(e) {\n if (e == undefined) {\n e = result['页数:'];\n e = e > 0 ? e : '0';\n }\n if (e == $$$.f) {\n return login('【评论加载方案提示】' + n(2) + '正在使用此评论加载方案,无需更换');\n }\n login('【评论加载方案提示】' + n(2) + '已经设置评论加载前' + e + '页,请刷新详情');\n $$$.f = e;\n return put($$$);\n}\nO = ['最新','最旧','爱心','指数'];\nfunction typeO(e) {\n if (e == undefined) {\n e = 0;\n }\n return O[e];\n}\nfunction o(e) {\n if (o == undefined) {\n o = result.o;\n }\n if (e == $$$.o) {\n return login('【排序切换提示】' + n(2) + '已经选择此排序,无需更换');\n }\n login('【排序切换提示】' + n(2) + '已经切换到[' + typeO(e) + ']排序');\n $$$.o = e;\n return put($$$);\n}\nfunction search_TC() {\n if (search_TC == undefined) {\n search_TC = true;\n }\n if ($$$.search_TC == true) {\n login('【繁体搜索提示】' + n(2) + '已关闭繁体搜索,请重新搜索');\n $$$.search_TC = false;\n put($$$);\n } else {\n login('【繁体搜索提示】' + n(2) + '已开启繁体搜索,请重新搜索');\n $$$.search_TC = true;\n put($$$);\n }\n}\nfunction TC_to_SC() {\n if (TC_to_SC == undefined) {\n TC_to_SC = true;\n }\n if ($$$.TC_to_SC == true) {\n login('【简繁转换提示】' + n(2) + '已关闭繁体转换,请刷新书籍');\n $$$.TC_to_SC = false;\n put($$$);\n } else {\n login('【简繁转换提示】' + n(2) + '已开启繁体转换,请刷新书籍');\n $$$.TC_to_SC = true;\n put($$$);\n }\n}\nfunction settle() {\n if (settle == undefined) {\n settle = true;\n }\n if ($$$.settle == true) {\n login('【目录整理提示】' + n(2) + '已关闭目录整理,请刷新目录');\n $$$.settle = false;\n put($$$);\n } else {\n login('【目录整理提示】' + n(2) + '已开启目录整理,请刷新目录');\n $$$.settle = true;\n put($$$);\n }\n}\nvar result = typeof result !== 'undefined' ? result : {};\nfunction Login() {\n var Account = result['账号:'] || Map('账号:');\n var Password = result['密码:'] || Map('密码:');\n if (Account == '' && Password == '') {\n login((cache.get(java.md5Encode16(Get('url') + \"Account_1\")) && String(cache.get(java.md5Encode16(Get('url') + \"Account_1\"))).length > 0) ? (Put(JSON.stringify('【登录提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + '\\n已退出账号:' + cache.get(java.md5Encode16(Get('url') + \"Account_1\")) + '\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛'))) : ('【登录提示】' + '\\n\\n请输入账号和密码'));\n cookie.removeCookie(Get('url'));\n cache.put(java.md5Encode16(Get('url') + \"Account_1\"),'');\n source.putLoginHeader('');\n return;\n } else if (Account == '') {\n login('【登录提示】' + '\\n\\n请输入账号');\n return;\n } else if (Password == '') {\n login('【登录提示】' + '\\n\\n请输入密码');\n return;\n } else {\n cookie.removeCookie(Get('url'));\n var requestBody = '{\"email\":\"' + Account + '\",\"password\":\"' + Password + '\"}';\n var option = {\n \"method\": \"POST\",\n \"body\": String(requestBody),\n \"headers\": String(Header('auth\/sign-in','POST'))\n };\n Response = java.ajax(Get('url') + '\/auth\/sign-in,' + JSON.stringify(option));\n var list = JSON.parse(Response).data;\n if (list) {\n cache.put(java.md5Encode16(Get('url') + \"Account_1\"),Account);\n source.putLoginHeader(list.token);\n login(Put(JSON.stringify('【登录提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + '\\n账号:' + Account + '\\n┋┋' + '\\n❤️登录成功❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n } else {\n cache.put(java.md5Encode16(Get('url') + \"Account_1\"),'');\n source.putLoginHeader('');\n login('【登录提示】' + '\\n\\n♣️登录失败♣️\\n\\n请检查账号和密码');\n }\n }\n}", "respondTime": 180000, "ruleBookInfo": { "author": "author", "canReName": "reName", "coverUrl": "cover", "downloadUrls": "durl", "init": "<js>\neval(String(source.loginUrl));\nvar Headers = JSON.parse(cache.get(java.md5Encode16(Get('url') + \"headers\")).replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (String(book['author']) !== \"xiaohan231\") {\n Account = (cache.get(java.md5Encode16(Get('url') + \"Account_1\")) && String(cache.get(java.md5Encode16(Get('url') + \"Account_1\"))).length > 0) ? cache.get(java.md5Encode16(Get('url') + \"Account_1\")) : '';\n if (!JSON.parse(result).data) {\n path = baseUrl.replace(\/.*(comics.*)\\,\\{.*\/, '$1');\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n }\n var list = JSON.parse(result).data.comic;\n var $2 = element => String(java.getElements(element).text());\n var $3 = element => java.getElements(element);\n path = 'comics\/' + list._id + '\/eps?page=1';\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n author = String(list.author + ((list.chineseTeam && list.chineseTeam !== '') ? ('\/' + list.chineseTeam) : '')).replace(\/,|、|,\/g, '\/').replace(\/\\\/\\s\/g, '\/');\n var kind1s = [];\n var kind1Elements = list.categories;\n for (var j in kind1Elements) {\n kind1s.push(String(kind1Elements[j]).replace(\/\\sENG\/, ''));\n }\n kind1 = kind1s.join(',');\n var kind2s = [];\n var kind2Elements = list.tags;\n for (var j in kind2Elements) {\n if (!kind1.includes(kind2Elements[j])) {\n kind2s.push(String(kind2Elements[j]));\n }\n }\n kind2 = kind2s.join(',');\n s = '✦ ' + Num(list.viewsCount) + ',' + '♥ ' + Num(list.likesCount);\n k = (list.finished ? '完结,' : '连载') + ',' + kind1 + ',' + kind2;\n t = list.updated_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '');\n t1 = list.created_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '');\n l = '';\n l = String(l);\n l = Get('settle') == true ? l.replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, l.match(\/\\d+\/) ? l.match(\/(\\d+)\/)[1].padStart(3, '0') : '$1') : l;\n Setting = '\\n📌当前源站:' + (Get('ci0') == 0 ? '〖默认〗' : '〖自选〗') + x[Get('ci0')] + (Get('url').length > 26 ? Get('url').substring(0, 26) + \"<br>\" + Get('url').substring(26) : Get('url')) + ('\\n📚当前排序:〖' + (Get('o') == 0 ? '默认' : '自选') + '〗' + O[Get('o')]) + ('\\n📰评论页数:〖' + (Get('f') == 5 ? '默认' : '自选') + '〗前' + Get('f') + '页') + ('\\n🔍繁体搜索:' + (Get('search_TC') == true ? '〖自选〗开启' : '〖默认〗关闭')) + ('\\n📑繁简转换:' + (Get('TC_to_SC') == true ? '〖默认〗开启' : '〖自选〗关闭')) + ('\\n🗃目录整理:' + (Get('settle') == true ? '〖自选〗开启' : '〖默认〗关闭'));\n changeLog = '\\nㅤ\\nㅤ\\n' + Setting + '\\nㅤ\\n';\n var list1 = [];\n for (var c = 1; c <= Get('f'); c++) {\n var page = c;\n path = baseUrl.replace(\/.*(comics.*)\\,\\{.*\/, '$1') + '\/comments?page=' + page;\n Url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result1 = java.ajax(Url);\n var pageList = JSON.parse(result1).data.comments.docs;\n list1 = list1.concat(pageList);\n }\n var intro2 = '';\n var intro3 = '';\n for (i in list1) {\n var intro2_1 = '[' + list1[i].created_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '') + ']';\n var intro2_2 = '⛄ Lv' + (list1[i]._user ? (list1[i]._user.level + (list1[i]._user.gender == 'm' ? ' ♂' : (list1[i]._user.gender == 'f' ? ' ♀' : ' 🤖')) + '【' + list1[i]._user.name + '】: ') : '');\n var intro2_3 = list1[i].content;\n if (list1[i]._comic.commentsCount > 0) {\n path = 'comments\/' + list1[i]._id + '\/childrens?page=1';\n Url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result2 = java.ajax(Url);\n var list2 = JSON.parse(result2).data.comments.docs;\n for (j in list2) {\n var intro2_1_1 = '[' + list2[j].created_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '') + ']';\n var intro2_2_1 = '⛄ Lv' + (list2[j]._user ? (list2[j]._user.level + (list2[j]._user.gender == 'm' ? ' ♂' : (list2[j]._user.gender == 'f' ? ' ♀' : ' 🤖')) + '【' + list2[j]._user.name + '】: ') : '');\n var intro2_3_1 = list2[j].content;\n intro3 = intro3 +'\\nㅤ ' + intro2_1_1 + '\\nㅤ ' + intro2_2_1 + intro2_3_1;\n }\n }\n intro2 = intro2 + '\\nㅤ\\n' + intro2_1 + '\\n' + intro2_2 + intro2_3 + intro3;\n intro3 = '';\n }\n if(String(Account).length > 0) {\n let dataId = String(list._id);\n var SC = cache.get(java.md5Encode16(book.originName + Account + dataId)) ? cache.get(java.md5Encode16(book.originName + Account + dataId)) : '';\n var BN = list.title;\n var Bookname = BN.length >= 60 ? BN.substring(0, 14) + \"\\n\" + BN.substring(14, 29) + \"\\n\" + BN.substring(29, 44) + \"\\n\" + BN.substring(44, 59) + \"\\n\" + BN.substring(59) : (BN.length >= 45 ? BN.substring(0, 14) + \"\\n\" + BN.substring(14, 29) + \"\\n\" + BN.substring(29, 44) + \"\\n\" + BN.substring(59) : (BN.length >= 30 ? BN.substring(0, 14) + \"\\n\" + BN.substring(14, 29) + \"\\n\" + BN.substring(29) : (BN.length >= 15 ? BN.substring(0, 14) + \"\\n\" + BN.substring(14) : BN)));\n if (book.readConfig && book.group > 0 && !SC.includes('y')) {\n path = 'comics\/' + dataId + '\/favourite';\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'POST') + ',\"body\":{},\"method\": \"POST\"}';\n res = JSON.parse(java.ajax(url)).data.action;\n if (res == 'un_favourite') {\n java.ajax(url);\n }\n cache.put(java.md5Encode16(book.originName + Account + dataId),'y');\n login(Put(JSON.stringify('【收藏提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + Bookname + '\\n┋┋' + '\\n❤️已添加收藏❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if (book.readConfig && book.group < 1 && SC.includes('y')) {\n path = 'comics\/' + dataId + '\/favourite';\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'POST') + ',\"body\":{},\"method\": \"POST\"}';\n res = JSON.parse(java.ajax(url)).data.action;\n if (res == 'favourite') {\n java.ajax(url);\n }\n cache.put(java.md5Encode16(book.originName + Account + dataId),'n');\n login(Put(JSON.stringify('【收藏提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + Bookname + '\\n┋┋' + '\\n♣️已取消收藏♣️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n }\n book = JSON.stringify({\n 'name': list.title,\n 'author': author,\n 'kind': String(s + ',' + k).replace(\/^(.{36}).*\/, '$1'),\n 'word': '',\n 'latest': l + '〔' + t + '〕',\n 'intro': (t != '' ? ('更新时间:' + t.replace(\/\\s.*\/, '') + ' 上架时间:' + t1.replace(\/\\s.*\/, '') + ' 上传用户:' + list._creator.name + '\\nㅤ\\n') : '') + (list.description ? list.description.replace(\/(^)\/g, '$1<br>') : '') + changeLog + '☕【评论】 评论数:' + (Get('f') > 0 ? JSON.parse(result1).data.comments.total : '') + intro2,\n 'cover': list.thumb.path.includes('tobeimg\/') ? (imghost + list.thumb.path.replace(\/tobeimg\/,'')) : (!list.thumb.path.includes('tobs\/') ? (imghost1 + '\/static\/' + list.thumb.path) : (list.thumb.fileServer + '\/static\/' + list.thumb.path)),\n 'url': url,\n 'durl': '',\n 'reName': true\n });\n} else {\n (function Book() {\n apiBaseUrl = cache.get(java.md5Encode16('cache_api_' + Get('url')));\n json = java.ajax(apiBaseUrl);\n Title = JSON.parse(json)['title'];\n Intro = cache.get(java.md5Encode16('User' + Get('url'))) == 'y' ? JSON.parse(json)['intro1'] : JSON.parse(json)['intro'];\n return { Title: Title, Intro: Intro };\n }());\n book = JSON.stringify({\n 'kind': book['kind'],\n 'latest': Title[Title.length - 1],\n 'intro': Intro[0]\n });\n}\nPut(book);\n<\/js>", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "tocUrl": "url", "wordCount": "word" }, "ruleContent": { "content": "<js>\nif (String(book['author']) !== \"xiaohan231\") {\n eval(String(source.loginUrl));\n if (!JSON.parse(result).data) {\n path = baseUrl.replace(\/.*(comics.*)\\,\\{.*\/, '$1');\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n }\n imglist=JSON.parse(result).data.pages.docs;\n var result='';\n for (i in imglist) {\n url = imglist[i].media.path.includes('tobeimg\/') ? (imghost + imglist[i].media.path.replace(\/tobeimg\/,'')) : (!imglist[i].media.path.includes('tobs\/') ? (imghost1 + '\/static\/' + imglist[i].media.path.replace(\/tobeimg\/,'')) : (imglist[i].media.fileServer + '\/static\/' + imglist[i].media.path)),\n result += '<img src=\"' + url + '\">\\n'\n }\n} else {\n if (baseUrl.includes('\/json\/')) {\n '<br><img src=\"https:\/\/qyyuapi.com\/j-img\/' + String(title).replace(\/〔.*$\/, \"\") + '.jpg\">';\n } else {\n '<br><img src=\"https:\/\/qyyuapi.com\/img\/' + String(title).replace(\/〔.*$\/, \"\") + '.jpg\">';\n }\n}\n<\/js>", "imageStyle": "FULL", "nextContentUrl": "<js>\nif (!JSON.parse(result).data) {\n path = baseUrl.replace(\/.*(comics.*)\\,\\{.*\/, '$1');\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n}\nvar pages = JSON.parse(result).data.pages.pages;\nvar urls = [];\nif (pages > 1) {\n for (i = 2; i <= pages; i++) {\n path = baseUrl.replace(\/.*(comics.*page=).*\/, '$1') + i;\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n urls.push(url);\n }\n urls;\n}\n<\/js>" }, "ruleExplore": { "author": "author", "bookList": "<js>\nvar _0x21a4=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x581c=function(_0x21a46c,_0x581c8b){_0x21a46c=_0x21a46c-0x0;var _0x532c83=_0x21a4[_0x21a46c];if(_0x581c['HhlfHu']===undefined){(function(){var _0x292cc0;try{var _0x70d47f=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');');_0x292cc0=_0x70d47f();}catch(_0x3d402f){_0x292cc0=window;}var _0x53ae8a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x292cc0['atob']||(_0x292cc0['atob']=function(_0xd75354){var _0x14597c=String(_0xd75354)['replace'](\/=+$\/,'');var _0xaf19ea='';for(var _0x3d4fac=0x0,_0x24fffe,_0x265f9a,_0x426167=0x0;_0x265f9a=_0x14597c['charAt'](_0x426167++);~_0x265f9a&&(_0x24fffe=_0x3d4fac%0x4?_0x24fffe*0x40+_0x265f9a:_0x265f9a,_0x3d4fac++%0x4)?_0xaf19ea+=String['fromCharCode'](0xff&_0x24fffe>>(-0x2*_0x3d4fac&0x6)):0x0){_0x265f9a=_0x53ae8a['indexOf'](_0x265f9a);}return _0xaf19ea;});}());_0x581c['uKlmeJ']=function(_0x14c38c){var _0x16a9e5=atob(_0x14c38c);var _0x916c62=[];for(var _0x41adc1=0x0,_0x45425f=_0x16a9e5['length'];_0x41adc1<_0x45425f;_0x41adc1++){_0x916c62+='%'+('00'+_0x16a9e5['charCodeAt'](_0x41adc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x916c62);};_0x581c['LAlbjf']={};_0x581c['HhlfHu']=!![];}var _0x390faf=_0x581c['LAlbjf'][_0x21a46c];if(_0x390faf===undefined){_0x532c83=_0x581c['uKlmeJ'](_0x532c83);_0x581c['LAlbjf'][_0x21a46c]=_0x532c83;}else{_0x532c83=_0x390faf;}return _0x532c83;};eval(String(java[_0x581c('\\x30\\x78\\x30')](source[_0x581c('\\x30\\x78\\x31')],_0x581c('\\x30\\x78\\x32'),_0x581c('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(java.md5Encode16(Get('url') + \"headers\")).replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (User == true) {\n eval(String(source.loginUrl));\n var Date = String(java.timeFormat(new Date().getTime())).replace(\/\\d+\\\/(.*)\\s.*\/, '$1');\n if (cache.get(java.md5Encode16(Get('url') + \"Account_1\")) && String(cache.get(java.md5Encode16(Get('url') + \"Account_1\"))).length > 0 && !Date.includes(cache.get(\"pica-sign\"))) {\n var signdate = sign();\n cache.put(\"pica-sign\", signdate);\n }\n if (\/page=\/.test(baseUrl)) {\n path = baseUrl.replace(\/.*(comics.*)\/, '$1').replace(\/.*(users.*)\/, '$1');\n page = baseUrl.replace(\/.*page=(\\d+).*\/, '$1');\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n var list = JSON.parse(result).data.comics.docs;\n if (page > JSON.parse(result).data.comics.pages) {\n list = [];\n }\n for (i in list) {\n author = String(list[i].author).replace(\/,|、|,\/g, '\/').replace(\/\\\/\\s\/g, '\/');\n var kind1s = [];\n var kind1Elements = list[i].categories;\n for (var j in kind1Elements) {\n kind1s.push(String(kind1Elements[j]).replace(\/\\sENG\/, ''));\n }\n kind1 = kind1s.join(',');\n var kind2s = [];\n var kind2Elements = list[i].tags;\n for (var j in kind2Elements) {\n if (!kind1.includes(kind2Elements[j])) {\n kind2s.push(String(kind2Elements[j]));\n }\n }\n kind2 = kind2s.join(',');\n kind = (list[i].totalViews ? ('✦ ' + Num(list[i].totalViews) + ',') : '') + '♥ ' + Num(list[i].likesCount || list[i].totalLikes) + ',' + (list[i].finished ? '完结' : '连载') + ',' + kind1 + ',' + kind2;\n path = 'comics\/' + list[i]._id;\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n data.push({\n 'name': list[i].title,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': '',\n 'intro': '',\n 'cover': list[i].thumb.path.includes('tobeimg\/') ? (imghost + list[i].thumb.path.replace(\/tobeimg\/,'')) : (!list[i].thumb.path.includes('tobs\/') ? (imghost1 + '\/static\/' + list[i].thumb.path) : (list[i].thumb.fileServer + '\/static\/' + list[i].thumb.path)),\n 'url': url\n });\n }\n if (page == JSON.parse(result).data.comics.pages) {\n Data();\n }\n } else {\n var list = JSON.parse(result).data.comics;\n for (i in list) {\n author = String(list[i].author).replace(\/,|、|,\/g, '\/').replace(\/\\\/\\s\/g, '\/');\n var kind1s = [];\n var kind1Elements = list[i].categories;\n for (var j in kind1Elements) {\n kind1s.push(String(kind1Elements[j]).replace(\/\\sENG\/, ''));\n }\n kind1 = kind1s.join(',');\n kind = '✦ ' + Num(list[i].totalViews) + ',' + '♥ ' + Num(list[i].likesCount || list[i].totalLikes) + ',' + (list[i].finished ? '完结' : '连载') + ',' + kind1;\n path = 'comics\/' + list[i]._id;\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n data.push({\n 'name': list[i].title,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': '',\n 'intro': '',\n 'cover': list[i].thumb.path.includes('tobeimg\/') ? (imghost + list[i].thumb.path.replace(\/tobeimg\/,'')) : (!list[i].thumb.path.includes('tobs\/') ? (imghost1 + '\/static\/' + list[i].thumb.path) : (list[i].thumb.fileServer + '\/static\/' + list[i].thumb.path)),\n 'url': url\n });\n }\n if (!baseUrl.includes('random')) {\n Data()\n }\n }\n data = JSON.stringify(data);\n} else {\n data = Data();\n}\nPut(data);\n<\/js>", "bookUrl": "url", "coverUrl": "cover", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "wordCount": "word" }, "ruleReview": {}, "ruleSearch": { "author": "author", "bookList": "<js>\nvar _0x21a4=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x581c=function(_0x21a46c,_0x581c8b){_0x21a46c=_0x21a46c-0x0;var _0x532c83=_0x21a4[_0x21a46c];if(_0x581c['HhlfHu']===undefined){(function(){var _0x292cc0;try{var _0x70d47f=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');');_0x292cc0=_0x70d47f();}catch(_0x3d402f){_0x292cc0=window;}var _0x53ae8a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x292cc0['atob']||(_0x292cc0['atob']=function(_0xd75354){var _0x14597c=String(_0xd75354)['replace'](\/=+$\/,'');var _0xaf19ea='';for(var _0x3d4fac=0x0,_0x24fffe,_0x265f9a,_0x426167=0x0;_0x265f9a=_0x14597c['charAt'](_0x426167++);~_0x265f9a&&(_0x24fffe=_0x3d4fac%0x4?_0x24fffe*0x40+_0x265f9a:_0x265f9a,_0x3d4fac++%0x4)?_0xaf19ea+=String['fromCharCode'](0xff&_0x24fffe>>(-0x2*_0x3d4fac&0x6)):0x0){_0x265f9a=_0x53ae8a['indexOf'](_0x265f9a);}return _0xaf19ea;});}());_0x581c['uKlmeJ']=function(_0x14c38c){var _0x16a9e5=atob(_0x14c38c);var _0x916c62=[];for(var _0x41adc1=0x0,_0x45425f=_0x16a9e5['length'];_0x41adc1<_0x45425f;_0x41adc1++){_0x916c62+='%'+('00'+_0x16a9e5['charCodeAt'](_0x41adc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x916c62);};_0x581c['LAlbjf']={};_0x581c['HhlfHu']=!![];}var _0x390faf=_0x581c['LAlbjf'][_0x21a46c];if(_0x390faf===undefined){_0x532c83=_0x581c['uKlmeJ'](_0x532c83);_0x581c['LAlbjf'][_0x21a46c]=_0x532c83;}else{_0x532c83=_0x390faf;}return _0x532c83;};eval(String(java[_0x581c('\\x30\\x78\\x30')](source[_0x581c('\\x30\\x78\\x31')],_0x581c('\\x30\\x78\\x32'),_0x581c('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(java.md5Encode16(Get('url') + \"headers\")).replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (User == true) {\n eval(String(source.loginUrl));\n var list = JSON.parse(result).data.comics.docs;\n for (i in list) {\n author = String(list[i].author + (list[i].chineseTeam !== '' ? ('\/' + list[i].chineseTeam) : '')).replace(\/,|、|,\/g, '\/').replace(\/\\\/\\s\/g, '\/');\n var kind1s = [];\n var kind1Elements = list[i].categories;\n for (var j in kind1Elements) {\n kind1s.push(String(kind1Elements[j]).replace(\/\\sENG\/, ''));\n }\n kind1 = kind1s.join(',');\n var kind2s = [];\n var kind2Elements = list[i].tags;\n for (var j in kind2Elements) {\n if (!kind1.includes(kind2Elements[j])) {\n kind2s.push(String(kind2Elements[j]));\n }\n }\n kind2 = kind2s.join(',');\n kind = (list[i].totalViews ? ('✦ ' + Num(list[i].totalViews) + ',') : '') + '♥ ' + Num(list[i].likesCount) + ',' + (list[i].finished ? '完结' : '连载') + ',' + kind1 + ',' + kind2;\n latest = '〔' + list[i].updated_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '') + '〕';\n path = 'comics\/' + list[i]._id;\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n data.push({\n 'name': list[i].title,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': latest,\n 'intro': list[i].description,\n 'cover': list[i].thumb.path.includes('tobeimg\/') ? (imghost + list[i].thumb.path.replace(\/tobeimg\/,'')) : (!list[i].thumb.path.includes('tobs\/') ? (imghost1 + '\/static\/' + list[i].thumb.path) : (list[i].thumb.fileServer + '\/static\/' + list[i].thumb.path)),\n 'url': url\n });\n }\n var page = baseUrl.replace(\/.*page=\/, '');\n var searchkey = java.get(java.md5Encode16(Get('url') + \"searchkey\"));\n if (page == JSON.parse(result).data.comics.pages || \/书源|使用|说明|書源|說明\/.test(searchkey)) {\n Data();\n }\n data = JSON.stringify(data);\n} else {\n data = Data();\n}\nPut(data);\n<\/js>", "bookUrl": "url", "checkKeyWord": "秘密", "coverUrl": "cover", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "wordCount": "word" }, "ruleToc": { "chapterList": "<js>\nvar _0x21a4=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x581c=function(_0x21a46c,_0x581c8b){_0x21a46c=_0x21a46c-0x0;var _0x532c83=_0x21a4[_0x21a46c];if(_0x581c['HhlfHu']===undefined){(function(){var _0x292cc0;try{var _0x70d47f=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');');_0x292cc0=_0x70d47f();}catch(_0x3d402f){_0x292cc0=window;}var _0x53ae8a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x292cc0['atob']||(_0x292cc0['atob']=function(_0xd75354){var _0x14597c=String(_0xd75354)['replace'](\/=+$\/,'');var _0xaf19ea='';for(var _0x3d4fac=0x0,_0x24fffe,_0x265f9a,_0x426167=0x0;_0x265f9a=_0x14597c['charAt'](_0x426167++);~_0x265f9a&&(_0x24fffe=_0x3d4fac%0x4?_0x24fffe*0x40+_0x265f9a:_0x265f9a,_0x3d4fac++%0x4)?_0xaf19ea+=String['fromCharCode'](0xff&_0x24fffe>>(-0x2*_0x3d4fac&0x6)):0x0){_0x265f9a=_0x53ae8a['indexOf'](_0x265f9a);}return _0xaf19ea;});}());_0x581c['uKlmeJ']=function(_0x14c38c){var _0x16a9e5=atob(_0x14c38c);var _0x916c62=[];for(var _0x41adc1=0x0,_0x45425f=_0x16a9e5['length'];_0x41adc1<_0x45425f;_0x41adc1++){_0x916c62+='%'+('00'+_0x16a9e5['charCodeAt'](_0x41adc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x916c62);};_0x581c['LAlbjf']={};_0x581c['HhlfHu']=!![];}var _0x390faf=_0x581c['LAlbjf'][_0x21a46c];if(_0x390faf===undefined){_0x532c83=_0x581c['uKlmeJ'](_0x532c83);_0x581c['LAlbjf'][_0x21a46c]=_0x532c83;}else{_0x532c83=_0x390faf;}return _0x532c83;};eval(String(java[_0x581c('\\x30\\x78\\x30')](source[_0x581c('\\x30\\x78\\x31')],_0x581c('\\x30\\x78\\x32'),_0x581c('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(java.md5Encode16(Get('url') + \"headers\")).replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (String(book['author']) !== \"xiaohan231\") {\n if (!JSON.parse(result).data) {\n path = baseUrl.replace(\/.*(comics.*)\\,\\{.*\/, '$1');\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n }\n eval(String(source.loginUrl));\n var pages = JSON.parse(result).data.eps.pages;\n var list = JSON.parse(result).data.eps.docs;\n date = list[0].updated_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '')\n for (i in list) {\n path = 'comics\/' + baseUrl.replace(\/.*comics\\\/(.*)\\\/eps.*\/, '$1') + '\/order\/' + list[i].order + '\/pages?page=1';\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n title = list[i].title;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.unshift({\n 'title': i == 0 ? title + '〔' + date + '〕' : title,\n 'link': url,\n 'time': list[i].updated_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '')\n });\n }\n if (pages > 1) {\n for (j = 2; j <= pages; j++) {\n path = baseUrl.replace(\/.*(comics.*page=).*\/, '$1') + j;\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n result = java.ajax(url);\n var list = JSON.parse(result).data.eps.docs;\n for (i in list) {\n path = 'comics\/' + baseUrl.replace(\/.*comics\\\/(.*)\\\/eps.*\/, '$1') + '\/order\/' + list[i].order + '\/pages?page=1';\n url = Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'GET') + ',\"method\": \"GET\"}';\n title = list[i].title;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.unshift({\n 'title': title,\n 'link': url,\n 'time': list[i].updated_at.replace(\/T\/g, ' ').replace(\/\\..*\/g, '')\n });\n }\n }\n }\n data = JSON.stringify(data);\n} else {\n data = Data1();\n}\nPut(data);\n<\/js>", "chapterName": "title", "chapterUrl": "link", "isVolume": "", "nextTocUrl": "", "preUpdateJs": "if (!String(book.bookUrl).includes(Get('url'))) {\n book.bookUrl = String(book.bookUrl).replace(\/.*\\\/\\\/[a-z0-9.-]+\/g, Get('url'));\n book.tocUrl = String(book.tocUrl).replace(\/.*\\\/\\\/[a-z0-9.-]+\/g, Get('url'));\n}\njava.refreshTocUrl()", "updateTime": "time" }, "searchUrl": "<js>\neval(String(source.loginUrl));\n(function (e) {\n if (Get('search_TC') == true || e.indexOf('TC') > -1) {\n e = String(java.s2t(e)).replace(\/TC\/, '');\n }\n var path = 'comics\/advanced-search?page=' + page;\n var body = `{\"keyword\":\"${e}\",\"sort\":\"${get('sort',Get('o'))}\"}`;\n java.put(java.md5Encode16(Get('url') + \"searchkey\"), e);\n return Get('url') + '\/' + path + ',{\"headers\":' + Header(path,'POST') + ',\"body\":' + body + ',\"method\": \"POST\"}';\n}(key));\n<\/js>", "variableComment": "JspHXCgzmq549cSvxZRk3eTaezs7QetG4Oaia85JS5\/uQPm6gkVOfbKqM5kCCPowDXJkiSRSa3npJPxd9vxKh3cMNvD1zWkrw4ju5caIY4nxOyT73azNVhhjJZjyz\/ebHvYW8WL3jcWxqxmNG6krxvli7namCa0q6ODFeq24oEdko9o6Qp4abnH7CJftdjfn6wuSjWOHcv24gGCqJw4SAAmrFhFTTu5N1\/yBmdA\/FoFdXzVCmh2O7QuWCNXEFEvtqz\/dxjI8B6IAvPH5ODSHyJK4S1EmxkBS2KulmuqCT2aDz6rJyZNvlzxUKRZTZDpuhW1k7t9LEvq1mTbfzdhHTSUJeKpWwCLeVq0vUQi7hX6pIpxSPMWsKBl+WMzv\/puLxTaIYB8le4S26dkr2hV2bGH3pA5YCkYUScdfILxk5JAGQ4QGx6B0jUjw0g1As4m9xlu3aXTAeop8NkfCtnPkaGqBNz5Jy8n9Dsb9YyaTRE01Sq2WGuErTpnYTaYDsFukJL3Oq071kZl65uglkJOlJyI8LMAZfXnykL7kV69T94fNpfR7l5B+PMUuV2leXpXCCpnf\/g+EazBuR8T\/LtV+2hhbC3WJ4NSmBmaUkg2iTWCSK2h+e7NfC4EW3MMwuRVyyx0zaQn+ISAjDUzWX0Ur7M8EZdnLkuDi1+eZUo69QfZJxsJ8r8KA32ZtRwkY\/dGFWKg4m7zvhyYv7rJyry69F7t7JSwXGIuHVQPbQw6QHKdZxLa+ezvVp1Q\/61gbbPagg8W9Mu53Yc+pVacX0KwmLxZNbmRAA5MsbdEXdaYReinkNuOn+6KuiZGDOWUnIIRe8xdSp2cnEyLOoVMl2oBBQyqNfRav38wVvgXxreX6e6sG2qmGnsropuSSC1mbGqr1E7JBHyUXKBmnLHm+ff0nEG6o03qRuKVtaSv6K+PmQ\/Js7OunyQ2TLFzXsl0ktofIlfXbJpu9XUHQa6qp\/VFBwTyRK2BZO203BgBmOZLZ0i75qDtvnvgr4QQpfGc8j9+XH\/iQGyFKoIj+K8MG7P3hOCBKiv2Mv6aRZ9P99SMeyJs4iUruBi7CHP7JgNwZn6zqCwVZac8zHWo0\/Kg4d8ov+HQhmbBUWf7hibTiKQ6S\/1f5IdAdTfgRA7uxE9BaC5gGIEqK\/Yy\/ppFn0\/31Ix7Im0DHw1Y0GWZ0x3+y2cMMIxLcoK2SzU0g6F2bfnNgtZnI+KEB\/rwKm\/EVJOQxkSOejKyoniLkosHFLimtHpR0eV+FHhcXuWQ\/t\/fs\/Z5nm8kNCGcXF0aDIJ1ELRBWErbVe5\/OdvivGX9o1GwPMvrg1yhLBkh4FahZl\/rk6\/GRap9lScFhZrjifEbTg9Okz13KcSl+Dk+7QxXJQU18IGUPwqlXJlPiAK+3rXVGn6kurMYhqMkz1aE7RCpzRvgTPqtc8BpoKQy8FJnB\/2PBzhgp2d5s+7afQyF\/\/xJrRn5cstKsnALr7fu3R+xLBHYxNglpsdNDhZ+txeiPlA04bYhnGe23afUD0CGhVGKVY+r1M3RyEnY3KhbfwMfT4m20i3piotGE3t2rx1JHCe\/qX+gjmmIUFWzCRS04Tt73caDyre0HCCN2pqS6ZBS2icFhNeUihcsLRwTEDVl\/sZDkxd2iRw+tXXN4T0YUhUhKASsyWcBierceiAdxWVvN9PBHGj7PuURLAxomWRJCiYzvSxiFLpsc\/GC8bcsMVhOjyZ0JhXuCzlsLxTGNjGx2qvfabOhqkXYO4M9kVYdK1SCRqCP9CeWO\/o2L1OHqFhJFwWS\/u9sqKgoi4FUeerbo89Vo\/f0dFUEU3XhM96QWzYMIw5Iy1dtZ0yQn2lZDLa5Xycu6RBYYrH+3LLI4Gm1eSGWizY5XCtMpmW0hIUzqDMSozst2DzrTM7pwe6SXKZ2wG53Vv6yWw9OkopECrlf1L4hHxLZa84ym1nBkWHkQll+O5K1rZo\/teAVgM6in\/tF07dDd1Wg8rpE5WOU\/SSdvGEQVCrJapkujRoGh47zOPOeblYPwpO0+8iTvI9eJjHjMr09Ijc8wsUxM8Zn0CKJFwR4gDSOuFGjdXlzszKz+ptxbsbek7yWe+g4vycbQ9tR2PiW\/bXYRr\/JSctMNVcAJDxN1fudPXUm1IlCiTWgvOorNuofcLn1lNVX1H0oLFb6o5wKJsrNpou55FfppgsV4Y10eCMbrf4ghGn81bo7MXxzQjv1TMDrP8LbDeiB6rMmilGmlmo4d9zcpDTtS27wZDSRAS+Ki3hJ0D77Q5Cev2U8XQRMz27GXv4xEfBVQ5CaqkGnnhUpo5s56aZTUghNbMKTNIbd5JSBC6TfbqwrDrFSJUn5tJTALE2Mx40PM6TRr9kRHed7yo\/fCiQ0iNIpETAefKJdlDaqbiFCltjRBxNNf\/S2IBPQy72Tk1IkiYlFP0QkPI2p0ebH5zo0tl0HKDuvO2Z0qwxj90S9SVA9dh0ga4SqYOx1WeUURvrxOZ56ieOvSEuSRE5WU4VwT7mPwYftjj8SrHzr7r3nuH9xrX4sID8GzfAD75tKSk\/UkcUY5XyZXNYI9Dpz6+f4O6T2LMmP+U5MEuvM\/F7CmsDmgezt6oE\/kSUgtxxfnGi2mgExqVzIIMeXEnSHQt\/ztKPjBn+VK1DbzQGZdS\/Xfpv2mbCJUyPRa2gnZV5Uege0fK8NUuhabFmz\/IWUcLd1fDeeP5wQ25msDMh5ym9Uh\/t2gWEzwzZCmUMGg6IW8d+zaPxQqo\/ttMr+GjmnSmsrLpxK960nWBjTiq+A6sD8UzrRTPx10xfO+siv3frWB7To96qJgAJEGD2BvdjJAtmwQGhREdtV73jKNjAYjgJFjU01X\/PkTH1oCUzLzHBWdbRsCFxQb1kbUSCsLt8jYvr7sIgNLyDGDBUF4E2LYnykEl5n3IkxhFez7rXlQa0FUGq0SGdZsqCTayWQQLH6KDJCSVAUgnVlM9WDpcUh15ZBeXLKmR8QEwWvgU\/KWykY+QuW8mmhPtP2BGf+SSy01w+g6ec+COp2rPd6bRj8725URic4nxnYPKW1yXlJoPuYLazwk6uoOgpxvOGpGmgI6854twG15ZoR1QXhTgf6\/ehhw\/pBlwV\/lRsnJNIQGRvyYkUY7+C1mIytPUs9tRiz8QqaUCwB8X9UQAI95bnDRnxrF2\/yT2c34E4CmcDzhCElJsbS374XLQeka5jdRcue6hK4qwmUKH1uwYORurA47Q\/JtKUuZOO3F0K7fapLPWyQuvFahOAZtYAhKbeCf+0p3zyVdwjvOJLOK7NlMz8IvG2EBbWiTm4QHhDe1\/E8=", "weight": 0 }