🍉 聚合书源 - 没有你想要的

❤️ 聚合书源 ❤️

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
}
广告