[{"bookSourceComment":"需登录\n如果文章有更新，要先更新目录，在刷新正文\n\n标签::https:\/\/api.unifans.io\/common\/getPostsByHashTag?skip={{(page-1)*10}}&limit=10&hashTag=标签名&_t=={{Date.now()}}","bookSourceName":"引力圈【只能搜索作者】","bookSourceType":0,"bookSourceUrl":"https:\/\/app.unifans.io\/feed","bookUrlPattern":".*\/getCollectionDetail.*collectionId=.*","customOrder":11,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"exploreUrl":"标签::https:\/\/api.unifans.io\/common\/getPostsByHashTag?skip={{(page-1)*10}}&limit=10&hashTag=高H&_t=={{Date.now()}}\n\n21点牌::data:getPersonalInfo;base64,{{java.base64Encode(\"domainName=21dianpai&_t=\"+Date.now())}},{\"type\":\"\"}\n\nAlphamie::data:getPersonalInfo;base64,{{java.base64Encode(\"domainName=y1250082324&_t=\"+Date.now())}},{\"type\":\"\"}","header":"app.yinliquan.app","lastUpdateTime":"1748951765690","loginUi":"[\n    {\n    \t  name:\"👤点击跳转登录\",\n    \t  type: \"button\",\n       action: \"toLogin()\",\n       \"style\": {\n      \"layout_flexGrow\": 1,\n      \"layout_flexBasisPercent\": 0.4\n    }},\n    {\n    \t  name:\"☕️支持源作者\",\n    \t  type: \"button\",\n       action: \"toThank()\",\n       \"style\": {\n      \"layout_flexGrow\": 1,\n      \"layout_flexBasisPercent\": 0.4\n    }\n    \t}\n]","loginUrl":"<js>\nfunction toLogin(){\n\ta = java.startBrowser(\"https:\/\/app.unifans.io\/login?redirect=\/me\",\"登录\")\n\ttoken = java.webView(null,\"https:\/\/app.unifans.io\",'localStorage.getItem(\"token\")');\n\tauthorization = {\n \t\"authorization\":String(token)\n \t}\t; \tsource.putLoginHeader(JSON.stringify(authorization));\n\t}\n\n\nfunction login(){\n\t\/*\n\t\t {\n        name: \"邮箱\",\n        type: \"text\"\n    },\n    {\n        name: \"密码\",\n        type: \"password\"\n    },\n    \n\t\n\temail = source.getLoginInfoMap().get(\"邮箱\");\n\tpwd = source.getLoginInfoMap().get(\"密码\");\n\turl = \"https:\/\/api.unifans.io\/account\/login\";\n\tbody = {\n          \"boundMailbox\": String(email),\n          \"password\": String(pwd)\n         }\n\tpost = {\n\t\t\"method\":\"POST\",\n\t\t\"body\":JSON.stringify(body)\n\t\t   }\n\turl = url+\",\"+JSON.stringify(post);\n\ttoken = JSON.parse(java.ajax(url)).data.token;\n\tauthorization = \"hgq \"+token;\n authorization = {\n \t\"authorization\":String(authorization)\n \t}\t; \n \tsource.putLoginHeader(JSON.stringify(authorization));\n \t\n \t*\/\n\t}\n\t\n\t\n\tfunction toThank(){\n\tjava.startBrowser(\"data:text\/html;base64,PGltZyBzdHlsZT0id2lkdGg6MTAwJSIgc3JjPSJhYm91dDpibGFuayIgb25lcnJvcj0idGhpcy5zcmM9YXRvYignYUhSMGNEb3ZMMmQxWVc1bGNpNTNiM0pyTDJkMVlXNWxjaTV3Ym1jPScpIj4KCg==\",\"感谢你的支持\");\t\n\t}\n<\/js>","respondTime":180000,"ruleBookInfo":{"author":"$.data.collection.nickName","coverUrl":"$.data.collection.picture","init":"<js>\nif(!\/&_t=\/.test(baseUrl) && !\/data:getOne\/.test(baseUrl)){\nresult = \tjava.ajax(baseUrl+\"&_t={{Date.now()}}\")\n\t}\nresult\n<\/js>","intro":"<js>\nif(\/getPersonalInfo\/.test(baseUrl)){\n\tresult =java.getString(\"$.data.description\")+`\\n-----复制下面文字粘贴至发现地址-----\\n{{$.data.homeName}}::data:getPersonalInfo;base64,{\\{java.base64Encode(\"domainName={{$.data.domainName}}&_t=\"+Date.now())}\\},{\"type\":\"\"}`\n\t}else{\n\t\tresult = java.getString(\"$.data.collection.comment\")\n\t\t}\n<\/js>","name":"$.data.collection.name","tocUrl":"<js>\nif(\/getPersonalInfo\/.test(baseUrl)){\n\tresult = `data:getPersonalInfo;base64,${java.base64Encode(\"domainName={{$.data.domainName}}\")},{\"type\":\"\"}`;\n\t}else if(\/getCollectionDetail\/.test(baseUrl)){\n\t\tresult = \"https:\/\/api.unifans.io\/creator\/getPostsByCollection?collectionId={{$.data.collection._id}}&skip=0&limit=500&order=0&_t={{Date.now()}}\"\n\t\t}\n<\/js>"},"ruleContent":{"content":"<js>\nif(\/data:postId\/.test(baseUrl)){\npostid = \tjava.hexDecodeToString(result)\n\tresult = JSON.parse(book.customVariable)[postid];\n\t}else if(\/getCollectionDetail\/.test(baseUrl)){\n\t\tif(book.durChapterIndex === chapter.index){\n\t\t\turl = \"https:\/\/api.unifans.io\/creator\/getCollectionDetail?collectionId={{$.data.collection._id}}&_t=\"+Date.now();\n\t\ttitle = \"{{$.data.collection.name}}\";\n\t\turl = \"legado:\/\/import\/addToBookshelf?src=\"+encodeURIComponent(url);\n\t\thtml = `<!DOCTYPE html>\n<html>\n<head>\n    <title>《${title}》加入书架<\/title>\n    <style>\n        body {\n            font-family: 'Microsoft YaHei', sans-serif;\n            background-color: #f5f5f5;\n            margin: 0;\n            padding: 20px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            min-height: 100vh;\n        }\n        .book-container {\n            background-color: white;\n            border-radius: 12px;\n            box-shadow: 0 4px 12px rgba(0,0,0,0.1);\n            padding: 40px;\n            max-width: 900px;\n            width: 90%;\n            text-align: center;\n            margin-bottom: 30px;\n        }\n        .book-cover {\n            min-width: 60%;  \/* 图片更大 *\/\n            min-height: 40%; \/* 图片更高 *\/\n            border-radius: 8px;\n            box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n            margin-bottom: 30px;\n            object-fit: contain;\n        }\n        .book-title {\n            font-size: 56px;  \/* 标题更大 *\/\n            color: #333;\n            margin-bottom: 25px;\n            font-weight: bold;\n        }\n        .book-description {\n            font-size: 50px;  \/* 简介文字更大 *\/\n            color: #555;\n            line-height: 1.6;\n            text-align: left;\n            padding: 0 20px;\n            margin-bottom: 30px;\n        }\n        .action-button {\n            display: inline-block;\n            background-color: #4285f4;\n            color: white;\n            text-decoration: none;\n            font-size: 40px;  \/* 按钮文字更大 *\/\n            padding: 16px 40px; \/* 按钮更大 *\/\n            border-radius: 30px;\n            margin-top: 30px;\n            transition: all 0.3s ease;\n            box-shadow: 0 2px 5px rgba(66,133,244,0.3);\n        }\n        .action-button:hover {\n            background-color: #3367d6;\n            transform: translateY(-2px);\n            box-shadow: 0 4px 8px rgba(66,133,244,0.3);\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"book-container\">\n        <div class=\"book-title\">《${title}》<\/div>\n        <img src=\"{{$.data.collection.picture}}\" class=\"book-cover\">\n        <div class=\"book-description\">\n            简介：${java.getString(\"$.data.collection.comment\")}\n        <\/div>\n        <a href=\"${url}\" class=\"action-button\">加入书架<\/a>\n    <\/div>\n\n    <script>\n        window.onload = function () {\n            window.location.href = '${url}';\n        };\n    <\/script>\n<\/body>\n<\/html>\n`;\n\t\t\n\t\t\n\t\t\n\t\tscript = `data:text\/html;charset=utf-8,${encodeURIComponent(html)}`;\n\t\tjava.startBrowser(script,\"《\"+title+\"》\")\n\t\t\n\t\t}\n\t\nresult=\"❗️刷新本章节，跳转本书详情页\\n\"+'简介：'+java.getString(\"$.data.collection.comment\")+\"\\n\"+'<img src=\"{{$.data.collection.picture}}\">'\n\t\t}else if(\/getOne\/.test(baseUrl)){\n\t\t\tresult = String(book.intro).replace(\/img src\/g,'<img src')\n\t\t\t}\n\tresult\n<\/js>\n\n##\\<img src\\=\"\"\\>","imageStyle":"FULL","replaceRegex":"##Powered by Froala Editor"},"ruleExplore":{"author":"$.creatorName","bookList":"<js>\nif(\/localhost\/.test(baseUrl)){\n\t\nlet list = [];\n\ndomid = java.hexDecodeToString(result);\n\n\t\t合集链接 = \"https:\/\/api.unifans.io\/common\/getCollections?\"+domid;\n\t\t\n\t合集 = \tString(java.ajax(合集链接));\n\tjava.setContent(合集);\n\tlist = java.getElements(\"$.data.collections[*]\").toArray();\n\n\t\t主页链接 = \"https:\/\/api.unifans.io\/creator\/posts?\"+domid+\"&skip=0&limit=1000&order=1\";\n\t主页 = \tString(java.ajax(主页链接));\n\t\tjava.setContent(主页);\n\t\t主页list = java.getElements(\"$.data.posts[*]\").toArray().sort((a, b) => {\n    const hasAName = a.collectionDetails[0]?.name != null;\n    const hasBName = b.collectionDetails[0]?.name != null;\n    return hasAName - hasBName ;\n});\n\t\tlist = list.concat(主页list)\n\tresult = list.length?JSON.stringify(list):`[{name:\"无内容\"}]`;\n\t}\n\tresult\n<\/js>\n$.data.posts[*]||$.[*]","bookUrl":"<js>\n\tif(\"{{$.name}}\"!==\"\"){\n\t\tresult = \"https:\/\/api.unifans.io\/creator\/getCollectionDetail?collectionId={{$._id}}&_t={{Date.now()}}\";\n\t\t}else if(\"{{$.title}}\"!==\"\"){\n\t\t\tresult = `data:getOne;base64,${java.base64Encode(\"{{$.postId}}\")},{\"type\":\"\"}`;\n\t\t\t}\n<\/js>","coverUrl":"$.picture","intro":"@js:\nintro = java.getString(\"$.previewText&&$.comment\");\ntext = String(java.getString(\"$.text\")).replace(\/<\\\/*span.*?>| style=\".*?\"\/g,'');\nimg ='img src=\"'+ java.getString(\"$..address\")+'\">';\nhtml = text+\"\\n\"+img.replace(\/img src=\"\">\/g,'');\nintro+\"\\n\"+html;","kind":"@js:\n\"{{$.locked}}\"==\"true\"?\"🔒\":\"\"","name":"{{$.name||$.title}}","wordCount":"{{$.collectionDetails[*].name}}"},"ruleSearch":{"bookList":"$.data.result[*]","bookUrl":"https:\/\/api.unifans.io\/common\/getPersonalInfo?domainName={{$.domainName}}&_t={{Date.now()}}","checkKeyWord":"++data:getPersonalInfo;base64,ZG9tYWluTmFtZT1ndWExMjM0NTY=,{\"type\":\"\"}","coverUrl":"$.avatar","intro":"$.creatingDes","name":"$.nickName"},"ruleToc":{"chapterList":"<js>\nlet list;\nfunction putContent(list){\n\tlet json = {}\nfor(i in list){\n\ttext = String(java.getString(\"$.text\",list[i])).replace(\/<\\\/*span.*?>| style=\".*?\"\/g,'').replace(\/{{HOST}\\}\/g,'https:\/\/bucket-prod.unifans.io');\n\t\n\timg =String(java.getString(\"$..address\",list[i])).split('\\n').map(x=>'<img src=\"'+x+'\">').join(\"\\n\");\n\n\t\thtml = text+\"\\n\"+img.replace(\/<img src=\"\"\/g,'');\n\n\t  postid = java.getString(\"$.postId\",list[i]);\n\t  json[postid] = html;\n\t}\n\tbook.putCustomVariable(JSON.stringify(json));\n\t}\n\nif(\/getPostsByCollection\/.test(baseUrl)){\nlist = java.getElements(\"$.data.posts[*]\").toArray().sort((a, b) => a.createTime - b.createTime);\nputContent(list)\n\tresult = list.length?JSON.stringify(list):`[{name:\"无目录\"}]`\n\t}else if(\/getPersonalInfo\/.test(baseUrl)){\n\t\tdomid = java.hexDecodeToString(result);\n\t\t合集链接 = \"https:\/\/api.unifans.io\/common\/getCollections?\"+domid+\"&_t={{Date.now()}}\";\n\t合集 = \tString(java.ajax(合集链接));\n\tjava.setContent(合集);\n\tlist = java.getElements(\"$.data.collections[*]\").toArray();\n\t\t\n\t\t主页链接 = \"https:\/\/api.unifans.io\/creator\/posts?\"+domid+\"&skip=0&limit=1000&order=1&_t={{Date.now()}}\"\n\t主页 = \tString(java.ajax(主页链接));\n\t\tjava.setContent(主页);\n\t\t主页list = java.getElements(\"$.data.posts[*]\").toArray().sort((a, b) => {\n    const getName = (item) => item.collectionDetails?.[0]?.name ?? null;\n\n    const nameA = getName(a);\n    const nameB = getName(b);\n\n    if (nameA === null && nameB !== null) return -1;\n    if (nameA !== null && nameB === null) return 1;\n\n    \/\/ 按 createTime 升序排列（旧的在前）\n    return a.createTime - b.createTime;\n});\n\n\t\tputContent(主页list)\n\t\tlist = list.concat(主页list)\n\tresult = list.length?JSON.stringify(list):`[{name:\"无内容\"}]`\n\t\t}else if(\/getOne\/.test(baseUrl)){\n\t\t\tresult = `[{name:\"${book.name}\"}]`\n\t\t\t}\n<\/js>\n$.[*]","chapterName":"$.name||$.title","chapterUrl":"<js>\nif(\/getPersonalInfo\/.test(baseUrl)){\nif(String(java.getString(\"$.name\"))!==\"\"){\n\t\t\t\tresult = \"https:\/\/api.unifans.io\/creator\/getCollectionDetail?collectionId={{$._id}}&_t=\"+Date.now();\n\t\t}else if(String(java.getString(\"$.title\"))!==\"\"){\n\t\t\t\tresult = `data:postId;base64,${java.base64Encode(\"{{$.postId}}\")},{\"type\":\"\"}`;\n\t\t\t}\n}\telse if(\/getPostsByCollection\/.test(baseUrl)){\n\tresult = `data:postId;base64,${java.base64Encode(\"{{$.postId}}\")},{\"type\":\"unifansContent\"}`;\n\t}\n<\/js>","isVip":"$.locked","updateTime":"💰{{$.sponsorScheme[0].fee}} 目录总数：{{$.postCount}} 所属合集：{{$.collectionDetails[*].name}}\n<js>\ntime=\"{{$.updateTime}}\"?java.timeFormat(\"{{$.updateTime}}000\"):\"\"\nresult=time+\" \"+result;\nresult = result\n.replace(\/所属合集：$\/g,'')\n.replace(\/(?:💰|目录总数：)(?!\\d)\/g,'')\n.replace(\/💰0(?![.\\d])\/g,'');\n<\/js>"},"searchUrl":"https:\/\/api.unifans.io\/common\/searchNickDomainName,{\n\t'method':'POST',\n\t'body':'{\"search\":\"{{key}}\",\"searchType\":\"creator\",\"skip\":0,\"limit\":500}'\n\t}","weight":0}]