🍉 聚合书源 - 没有你想要的
❤️ 聚合书源 ❤️
x5201314l (7559)1天前
{ "bookSourceComment": "\n- 不知名Q群:\n 1063421086\n \n- 不知名网站:\n\n- Legado 兼容多来源的 php 书源项目\n\n版本: 2.3\n\n添加来源:程袁书吧\n优化增加部分代码\n\n番茄短剧暂不可用!!!\n", "bookSourceGroup": "☃ 自用☃️", "bookSourceName": "🍉 聚合书源 - 没有你想要的", "bookSourceType": 0, "bookSourceUrl": "❤️ 聚合书源 ❤️", "customOrder": 1, "enabled": true, "enabledCookieJar": true, "enabledExplore": true, "header": "<js>\n let CheckTime = Date.now();\n \n let defaultVariable = {\n \t \"Variable\": {\n \t \t \"search_type\": {\n \t \t \t \"tab\": 1,\n \t \t \t \"name\": \"小说\"\n \t \t \t},\n \t \t \t\"Source\": {\n \t \t \t\t \"type\": \"sudugu\",\n \t \t \t\t \"name\": \"🍋速读谷\",\n \t \t \t\t \"value\": \"速读谷\"\n \t \t \t\t},\n \t \t \t\t\"Key\": \"\",\n \t \t \t\t\"Host\": api,\n \t \t \t\t\"test\": false,\n \t \t \t\t\"version\": version,\n \t \t \t\t\"lastCheckTime\": CheckTime\n \t \t}\n \t}\n \t\n \tlet variable = source.getVariable();\n \t\n \tif(variable != \"\" && variable !== null && variable != undefined) {\n \t\t try{\n \t\t \t variable = JSON.parse(variable);\n \t\t \t} catch(e) {\n \t\t \t\t java.log(e);\n \t\t \t\t variable = defaultVariable;\n \t\t \t\t source.variable = JSON.stringify(defaultVariable, null, \"\\t\");\n \t\t \t\t java.toast(\"请按照规则修改源变量,已重置源变量!\")\n \t\t \t} \n \t\t } else {\n \t\t \t\t variable = defaultVariable;\n \t\t \t\t source.variable = JSON.stringify(defaultVariable, null, \"\\t\");\n \t\t \t\t java.toast(\"参数初始化成功!\");\n \t\t \t}\n \t\t \t\n \tlet Key = source.getLoginInfoMap().get(\"在这里填入Key\")||\"\";\n getHeaders(Key);\n<\/js>", "jsLib": "const version = \"2.3\";\n\nconst api = \"http:\/\/fanqienovel.xuanbao.icu\";\n\nfunction getHeaders(Key) {\n\t\n const { java } = this\n \n let Header;\n if ( Key == \"\" ) {\n \t Header = {\n \t \t text: \"验证失败,缺少Key\"\n \t \t}\n \t \tjava.log(\"请填入Key\");\n \t} else {\n let time = Date.now();\n let btime = java.base64Encode(time);\n let sign = Key;\n \n Header = {\n Key:\t \"5pif55ygNTIw\",\n Author: \"xingmian\",\n \"X-Source\"\t: \"read.yuedu\",\n \"Time-Token\": String(time),\n \"Search-Key-Sign\": btime + sign\n }\n }\n \n return JSON.stringify(Header)\n\n\t}\n\nfunction getContent(result) {\n\t\n\t const { java } = this\n\t \n\t let result_url = java.hexDecodeToString(result);\n\t \n\t return java.ajax(result_url)\n\t}", "lastUpdateTime": "1759459630186", "loginUi": "[\n {\n \"name\": \"༺ ʚ 当前来源 ɞ ༻\",\n \"type\": \"button\",\n \"action\": \"getValue()\",\n \"style\": {\n \"layout_flexGrow\": 0,\n \"layout_flexBasisPercent\": 1\n }\n },\n {\n \"name\": \"🍋速读谷\",\n \"type\": \"button\",\n \"action\": \"setValue('sudugu')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"🍉盐选书库\",\n \"type\": \"button\",\n \"action\": \"setValue('yanxuan')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"🍋程袁书吧\",\n \"type\": \"button\",\n \"action\": \"setValue('chenyuanshba')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"🍅番茄短剧\",\n \"type\": \"button\",\n \"action\": \"setValue('fanqieduanju')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"🪭聚合搜索\",\n \"type\": \"button\",\n \"action\": \"setValue('juhesousuo')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n\n {\n \t \"name\": \"在这里填入Key\",\n \t \"action\": \"\",\n \t \"type\": \"password\"\n \t},\n {\n \"name\": \"🎐所有参数初始化\",\n \"type\": \"button\",\n \"action\": \"initialize()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \"🔑获取Key\",\n \"type\": \"button\",\n \"action\": \"getKey()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 0.4\n }\n },\n {\n \"name\": \" 接 口:星眠 源规则: 聆听月与悦 \",\n \"type\": \"button\",\n \"action\": \"author()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": 1.5\n }\n }\n]", "loginUrl": "function login() {\n\t}\n\nvar data = [\n [\"🍋速读谷\", \"sudugu\", \"速读谷\"],\n [\"🍉盐选书库\", \"yanxuan\", \"盐选书库\"],\n [\"🍋程袁书吧\", \"chenyuanshba\", \"程袁书吧\"],\n [\"🍅番茄短剧\", \"fanqieduanju\", \"番茄短剧\"],\n [\"🪭聚合搜索\", \"juhesousuo\", \"聚合搜索\"]\n];\nfunction setValue(valueType) {\n try {\n \t let Variable = JSON.parse(source.getVariable());\n let valid = false;\n let sourceName;\n let sourceValue;\n \n for(let i = 0; i < data.length; i++) {\n if(data[i][1] === valueType) {\n valid = true;\n sourceName = data[i][0];\n sourceValue = data[i][2];\n break;\n }\n }\n \n if (valid) {\n \t\n Variable.Variable.Source.type = valueType;\n Variable.Variable.Source.name = sourceName;\n Variable.Variable.Source.value = sourceValue;\n \n let jsonStr = JSON.stringify(Variable, null, \"\\t\");\n source.setVariable(jsonStr);\n java.toast(\"已切换到: \\n\" + sourceName);\n } else {\n java.toast(\"无效的来源类型\");\n }\n } catch (err) {\n java.toast(\"设置来源错误:\\n\" + err);\n java.log(err);\n }\n}\nfunction getValue() {\n\t try{\n\t \t let Variable = JSON.parse(source.getVariable());\n\t \t let value = Variable.Variable.Source.type;\n\t \t let sname;\n\t \t for( let i = 0; i < data.length; i ++ ) {\n\t \t \t if( data[i] === value ) {\n\t \t \t \t sname = data[i][0];\n\t \t \t \t break;\n\t \t \t \t}\n\t \t \t}\n\t \t \tif ( sname == undefined ) {\n\t \t \t\t sname = Variable.Variable.Source.name;\n\t \t \t\t}\n\t \t \tjava.log(sname);\n\t \t java.toast(\"当前来源:\\n\" + sname);\n\t \t} catch( e ) {\n\t \t\t java.log(e);\n\t \t java.toast(\"当前未选择来源!\");\n\t \t}\n\t}\n\nfunction author() {\n\t let url = \"https:\/\/jkapi.com\/api\/one_yan?type=json\";\n\t let json = java.ajax(url + \",\" + JSON.stringify({\n method: \"GET\"\n }\t)\n\t \t );\n\t \tlet content = JSON.parse(json).content;\n\t \tjava.log(`\\n${content}`);\n\t \tjava.longToast(`\\n${content}`);\n\t}\n\nfunction initialize() {\n\t try{\n\t source.setVariable(\"\");\n\t java.toast(\"初始化成功!\");\n\t } catch(er) {\n\t \t java.log(\"初始化失败!\\n\" + er);\n\t \t java.toast(\"初始化失败!\");\n\t \t}\n\t}\n\nfunction getKey() {\n\t let Variable = JSON.parse(source.getVariable());\n\t java.startBrowser(Variable.Variable.Host, \"星眠书源\");\n\t}", "respondTime": 180000, "ruleBookInfo": { "author": "$.book_author##者:", "coverUrl": "$.book_cover", "init": "<js>\n\n java.log(getContent(result))\n \n<\/js>\n$.request_result.book_detail", "intro": "$.book_abstract", "kind": "$.book_kind", "lastChapter": "{{$.last_chapter_name}} {{$.last_chapter_update_time}}", "name": "$.book_name", "tocUrl": "<js>\nlet Variable = JSON.parse(source.getVariable());\nconst action = \"\/yuedu\/api\/resolutio\/cheaper.php\";\n\nlet body = {\n book_id: result.book_id,\n source: result.source\n}\n\nlet parameter = {\n body: body,\n method: \"POST\"\n}\n\nlet cheaper_url = Variable.Variable.Host + action + \",\" + JSON.stringify(parameter);\n\nlet type = JSON.stringify({\n\t \"type\": \"星眠\"\n\t}, 4, \"\\t\");\n\t\ncheaper_url = java.base64Encode(cheaper_url);\ncheaper_url = `data:cheaper;base64,${cheaper_url},${type}`;\n\njava.put(\"source\", result.source);\ncheaper_url\n<\/js>", "wordCount": "$.book_count" }, "ruleContent": { "content": "<js>\n\n getContent(result)\n \n<\/js>\n$.request_rseult.content" }, "ruleExplore": {}, "ruleSearch": { "author": "$.book_author", "bookList": "<js>\nlet result = getContent(result);\nlet res = JSON.parse(result);\nlet mes = res.message;\njava.log(mes);\nresult\n<\/js>\n$.search_result.search_book_list[*]", "bookUrl": "<js>\nlet Variable = JSON.parse(source.getVariable());\nconst action = \"\/yuedu\/api\/resolutio\/detail.php\";\n\nlet body = {\n book_id: result.book_id,\n source: result.source\n}\n\nlet parameter = {\n body: body,\n method: \"POST\"\n}\n\nlet type = JSON.stringify({\n\t \"type\": \"星眠\"\n\t}, 4, \"\\t\");\n\t\nlet book_url = Variable.Variable.Host + action + \",\" + JSON.stringify(parameter);\n\nbook_url = java.base64Encode(book_url);\nbook_url = `data:detail;base64,${book_url},${type}`;\n\nbook_url\n\n<\/js>", "coverUrl": "$.book_cover", "intro": "$.book_abstract", "kind": "$.book_kind", "lastChapter": "{{$.last_chapter_name}} {{$.last_chapter_update_time}}", "name": "$.book_name", "wordCount": "$.book_count" }, "ruleToc": { "chapterList": "<js>\n\n getContent(result)\n \n<\/js>\n$.request_result.Contents[*]", "chapterName": "$.Cheaper_name", "chapterUrl": "<js>\nlet Variable = JSON.parse(source.getVariable());\nconst action = \"\/yuedu\/api\/resolutio\/content.php\";\n\nlet item_id = java.getString(\"$.Cheaper_item_id\");\nlet book_id = java.getString(\"$.book_id\");\nlet source = java.get(\"source\");\n\nlet body = {\n\t item_id: item_id,\n book_id: book_id,\n source: source\n}\n\nlet parameter = {\n body: body,\n method: \"POST\"\n}\n\nlet type = JSON.stringify({\n\t \"type\": \"星眠\"\n\t}, 4, \"\\t\");\n\nlet content_url = Variable.Variable.Host + action + \",\" + JSON.stringify(parameter);\n\ncontent_url = java.base64Encode(content_url);\ncontent_url = `data:content;base64,${content_url},${type}`;\n\ncontent_url\n<\/js>" }, "searchUrl": "<js>\nlet Variable = JSON.parse(source.getVariable());\n\nif ( !Variable.Variable.test ) {\n\n let request_test_url = Variable.Variable.Host + \"\/yuedu\/api\/request_test.php\";\n\n try{\n\t let res = JSON.parse(java.ajax(request_test_url));\n\t if ( res.request.return ) {\n\t \t mes = \"测试成功!\";\n\t \t} else {\n\t \t\t mes = \"测试失败!\";\n\t \t}\n\t \tVariable.Variable.test = true;\n\t \tsource.setVariable(JSON.stringify(Variable, null, \"\\t\"));\n\t \tjava.log(mes);\n\t java.toast(mes);\n\t } catch(er) {\n\t\t Variable.Variable.test = true;\n\t \t Variable.Variable.Host = \"http:\/\/xindmian.xuanbao.icu\";\n\t\t source.setVariable(JSON.stringify(Variable, null, \"\\t\"));\n\t\t java.log(\"测试失败:\\n\" + er);\n\t \t java.toast(\"测试失败,抱歉,你无法使用本源!\");\n\t \t }\n\t}\n\t\nlet Key = source.getLoginInfoMap().get(\"在这里填入Key\");\nif( Key != \"\" && Key != undefined && Variable.Variable.Key == \"\" || Key != Variable.Variable.Key ) {\n\t Variable.Variable.Key = Key;\n\t source.setVariable(JSON.stringify(Variable, null, \"\\t\"));\n\t java.toast(\"🔑已重置Key!\")\n\t}\n\nconst action = \"\/yuedu\/api\/resolutio\/search.php\";\n\nlet body = {\n keywords: key,\n page: page,\n source: Variable.Variable.Source.value\n}\n\nlet parameter = {\n body: body,\n method: \"POST\"\n}\n\nlet type = JSON.stringify({\n\t \"type\": \"星眠\"\n\t}, 4, \"\\t\");\n\nlet search_url = Variable.Variable.Host + action + \",\" + JSON.stringify(parameter);\n\nsearch_url = java.base64Encode(search_url);\nsearch_url = `data:search;base64,${search_url},${type}`;\n\nsearch_url\n\t<\/js>", "weight": 0 }