书耽【验证码】
https://app.shubl.com
guaner001125 (317)05/12 22:57
vip章节请登录后更新目录
{ "bookSourceComment": "vip章节请登录后更新目录", "bookSourceName": "书耽【验证码】", "bookSourceType": 0, "bookSourceUrl": "https:\/\/app.shubl.com", "customOrder": 0, "enabled": true, "enabledCookieJar": false, "enabledExplore": true, "exploreUrl": "全部纯爱::https:\/\/www.baidu.com\/category_type=1&order=week_click&page={{page}}\n现纯::https:\/\/www.baidu.com\/category_type=4&order=week_click&page={{page}}\n幻纯::https:\/\/www.baidu.com\/category_type=5&order=week_click&page={{page}}\n古纯::https:\/\/www.baidu.com\/category_type=6&order=week_click&page={{page}}\n百合::https:\/\/www.baidu.com\/category_type=3&order=week_click&page={{page}}\n全部言情::https:\/\/www.baidu.com\/category_type=20&order=week_click&page={{page}}\n现言::https:\/\/www.baidu.com\/category_type=8&order=week_click&page={{page}}\n幻言::https:\/\/www.baidu.com\/category_type=9&order=week_click&page={{page}}\n古言::https:\/\/www.baidu.com\/category_type=10&order=week_click&page={{page}}\n无CP::https:\/\/www.baidu.com\/category_type=21&order=week_click&page={{page}}\n付费&连载&更新时间::https:\/\/www.baidu.com\/category_type=1&order=uptime&up_status=0&is_paid=1&page={{page}}\n付费&完本&更新时间::https:\/\/www.baidu.com\/category_type=1&order=uptime&up_status=1&is_paid=1&page={{page}}\n每日签到::data:get_daily;base64,{{java.base64Encode(\"get_daily_task_bonus\")}},{\"type\":\"\"}", "header": "{\"app-version\":\"4.1.1\"}", "jsLib": "function encode(word){\n\t const {java} = this;\n \treturn java.createSymmetricCrypto(\"AES\/CBC\/PKCS5Padding\", java.base64DecodeToByteArray(\"L6alxSR4ttjXvcGpZozYtdcJtG4l0tSnQplRUONIRsw=\"), java.base64DecodeToByteArray(\"AAAAAAAAAAAAAAAAAAAAAA==\")).encryptBase64(word);\n\t}\n\t\nfunction decode(word){\n\t const {java} = this;\n \treturn java.createSymmetricCrypto(\"AES\/CBC\/PKCS5Padding\", java.base64DecodeToByteArray(\"L6alxSR4ttjXvcGpZozYtdcJtG4l0tSnQplRUONIRsw=\"), java.base64DecodeToByteArray(\"AAAAAAAAAAAAAAAAAAAAAA==\")).decryptStr(word);\n}\n\nfunction getToken(){\t\n\tconst {source} = this;\n\treturn (source.getLoginHeaderMap()!=null && source.getLoginHeaderMap()!=\"\")?source.getLoginHeaderMap().get(\"login_token\"):\"0f6bd1d063f202f71c3b84678027ce81\"\n\t}\n\t\nfunction getA(){\n\tconst {source} = this;\n\treturn (source.getLoginHeaderMap()!=null && source.getLoginHeaderMap()!=\"\")?source.getLoginHeaderMap().get(\"account\"):\"%E8%90%8C%E5%8F%8B521068519938\";\n\t}", "lastUpdateTime": "1747061859727", "loginUi": "[\n {\n name: \"账号\",\n type: \"text\"\n },\n {\n name: \"验证码\",\n type: \"text\"\n },\n {\n name: \"获取验证码(填完验证码点“✓”登录)\",\n type: \"button\",\n \"action\":\"getCode()\"\n }\n]", "loginUrl": "<js>\n function getCode(){\n \t let app_signature_md5 = \"f73576612783f8ed8b68cdf73a56be94\";\n \tlet phone = result.get(\"账号\");\n \tlet time = String(Date.now());\t\n \t\n let hashvalue = java.md5Encode(encode(phone+time));\t\n let option = {\n \t \"app_signature_md5\":app_signature_md5,\n \"app_version\":\"4.1.1\",\n \"channel\":\"default\",\n \"verify_type\":\"5\", \n \"hashvalue\":hashvalue,\n \"username\":phone,\n \"timestamp\":time\n }\n \n let body = \"secret_content=\"+encode(JSON.stringify(option));\n let url = \"https:\/\/app.shubl.com\/signup\/send_verify_code\"\n try{\n let resposebody =\tjava.ajax(url+\",\"+JSON.stringify({\"method\":\"POST\",\"body\":body}));\n \tlet tip = JSON.parse(decode(resposebody)).tip;\n \tjava.toast(tip)\n \t}catch(e){\n \t\tjava.log(e)\n \t\t}\n \t\n \t}\n \n \n \t\n function login(){\n \ttry{\n \tlet login_name=source.getLoginInfoMap().get(\"账号\")\nlet code=source.getLoginInfoMap().get(\"验证码\");\n let jsonStr = {\n \t\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\n \t\"app_version\":\"4.1.1\",\n \t\"channel\":\"default\",\n \t\"uuid\":\"android\",\n \t\"ver_code\":code,\n \t\"username\":login_name\n \t}\n \n \n let body = \"secret_content=\" + encode(JSON.stringify(jsonStr));\n let option = {\n \"method\": \"POST\",\n \"body\": String(body)\n };\n \n let url = \"https:\/\/app.shubl.com\/signup\/verify_login,\" + JSON.stringify(option);\n \n let respbody = decode(java.ajax(url));\n java.log(respbody);\n let resp = JSON.parse(respbody);\n java.log(resp.tip);\n \n \n if (resp.code == \"100000\") {\n body = {\n \t\"login_token\":resp.data.login_token,\n \t\"account\":encodeURI(resp.data.reader_info.account)\n \t}\n source.putLoginHeader(JSON.stringify(body)) \n } else {\n java.toast('❗️ ' + resp.tip + ' ❗️')\n }\n }catch(e){\n \tjava.log(e)\n \t}\n}\n<\/js>", "respondTime": 180000, "ruleBookInfo": { "author": "$.author_name", "coverUrl": "$.cover", "init": "<js>\ndecode(result)\n<\/js>\n$.data.book_info", "intro": "$.description", "kind": "$.tag", "lastChapter": "{{$.last_chapter_info.chapter_title}} \/ {{$.last_chapter_info.uptime}}", "name": "$.book_name", "tocUrl": "@js:\nlet jsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"4.1.1\",\"channel\":\"default\",\"last_update_time\":\"0\",\"book_id\":{{$.book_id}},\"login_token\":String(getToken()),\"account\":String(getA())}\nlet body = \"secret_content=\"+encode(JSON.stringify(jsonObj));\nlet option = {\"method\": \"POST\",\"body\": String(body)};\n\"https:\/\/app.shubl.com\/chapter\/get_chapter_list_group_by_division,\" + JSON.stringify(option)", "wordCount": "$.total_word_count" }, "ruleContent": { "content": "<js>\ndecode(result)\n<\/js>\n$.data.chapter_info.txt_content" }, "ruleExplore": { "author": "$.author_name", "bookList": "<js>\nresponse=null\nif(!baseUrl.match(\/localhost|get_daily\/)){\n\t\ncategory_type=baseUrl.match(\/category_type=(\\d+)\/)?baseUrl.match(\/category_type=(\\d+)\/)[1]:\"\"\norder=baseUrl.match(\/order=(.+?)&\/)?baseUrl.match(\/order=(.+?)&\/)[1]:\"\"\nis_paid=baseUrl.match(\/is_paid=(\\d)&\/)?baseUrl.match(\/is_paid=(\\d)&\/)[1]:\"\"\nup_status=baseUrl.match(\/up_status=(\\d)&\/)?baseUrl.match(\/up_status=(\\d)&\/)[1]:\"\"\njsonObj={\"category_type\":category_type,\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"2.1.6\",\"channel\":\"default\",\"order\":order,\"count\":\"15\",\"is_paid\":is_paid,\"page\":String(baseUrl.match(\/page=(\\d+)\/)[1]-1),\"up_status\":up_status,\"login_token\":String(getToken()),\"account\":String(getA())}\n\/\/java.log(JSON.stringify(jsonObj))\noption={\"method\":\"POST\",\"body\":\"secret_content=\"+encodeURIComponent(encode(JSON.stringify(jsonObj)))}\nurl=\"https:\/\/app.shubl.com\/bookcity\/get_filter_search_book_list,\"+JSON.stringify(option)\nresponse=decode(java.ajax(url))\n}else{\njsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"2.1.6\",\"channel\":\"default\",\"task_type\":\"1\",\"login_token\":String(getToken()),\"account\":String(getA())}\noption={\"method\":\"POST\",\"body\":\"secret_content=\"+encodeURIComponent(encode(JSON.stringify(jsonObj)))}\nurl=\"https:\/\/app.shubl.com\/reader\/get_daily_task_bonus,\"+JSON.stringify(option)\nresponse=decode(java.ajax(url));\njava.toast(JSON.parse(response).tip)\n}\n\n\/\/ 打印解密结果\njava.log(JSON.stringify(JSON.parse(response)))\nresponse\n<\/js>\n$.data.book_list||$.[*]", "bookUrl": "@js:\nif(!baseUrl.match(\/localhost|get_daily\/)){\nlet jsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"2.1.6\",\"channel\":\"default\",\"book_id\":String(java.getString('$.book_id')),\"login_token\":String(getToken()),\"account\":String(getA())}\nlet body = \"secret_content=\"+encode(JSON.stringify(jsonObj));\nlet option = {\"method\": \"POST\",\"body\": String(body)};\n\"https:\/\/app.shubl.com\/book\/get_info_by_id,\" + JSON.stringify(option)\n}else{\nbaseUrl\n}", "coverUrl": "$.cover", "intro": "$.description", "kind": "$.tag", "lastChapter": "{{$.last_chapter_info.chapter_title}} \/ {{$.last_chapter_info.uptime}}", "name": "$.book_name@put:{\"bid\":\"$.book_id\"}||$", "wordCount": "$.total_word_count" }, "ruleSearch": { "author": "$.author_name", "bookList": "<js>\n\n\n\nresponse=decode(result)\n\/\/ 打印解密结果\n\/\/java.log(JSON.stringify(JSON.parse(response)))\nresponse\n<\/js>\n$.data.book_list", "bookUrl": "@js:\nlet jsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"4.1.1\",\"channel\":\"default\",\"book_id\":{{$.book_id}},\"login_token\":String(getToken()),\"account\":String(getA())}\nlet body = \"secret_content=\"+encode(JSON.stringify(jsonObj));\nlet option = {\"method\": \"POST\",\"body\": String(body)};\n\"https:\/\/app.shubl.com\/book\/get_info_by_id,\" + JSON.stringify(option)", "coverUrl": "$.cover", "intro": "$.description", "kind": "$.tag", "lastChapter": "{{$.last_chapter_info.chapter_title}} \/ {{$.last_chapter_info.uptime}}", "name": "$.book_name@put:{\"bid\":\"$.book_id\"}", "wordCount": "$.total_word_count" }, "ruleToc": { "chapterList": "<js>\ndecode(result)\n<\/js>\n$.data.chapter_list_group[*].chapter_list[*]", "chapterName": "$.chapter_title", "chapterUrl": "@js:\nlet jsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"4.1.1\",\"channel\":\"default\",\"chapter_id\":{{$.chapter_id}},\"login_token\":String(getToken()),\"account\":String(getA())}\n\nlet body = \"secret_content=\"+encode(JSON.stringify(jsonObj));\nlet option = {\"method\": \"POST\",\"body\": String(body)};\n\"https:\/\/app.shubl.com\/chapter\/get_chapter_info,\" + JSON.stringify(option)", "isVip": "@js:!{{$.auth_access}}", "updateTime": "{{$.word_count}} 字 发布于 {{$.uptime}}" }, "searchUrl": "@js:\nlet jsonObj={\"app_signature_md5\":\"f73576612783f8ed8b68cdf73a56be94\",\"app_version\":\"4.1.1\",\"channel\":\"default\",\"order\":\"week_click\",\"count\":\"15\",\"category_type\":\"1\",\"page\":page-1,\"key\":key,\"login_token\":String(getToken()),\"account\":String(getA())}\nlet body = \"secret_content=\"+encode(JSON.stringify(jsonObj));\n\nlet option = {\"method\": \"POST\",\"body\": String(body)};\n\n\"https:\/\/app.shubl.com\/bookcity\/get_filter_search_book_list,\" + JSON.stringify(option)", "weight": 0 }