引力圈【只能搜索作者】
https://app.unifans.io/feed
guaner001125 (317)06/03 19:56
改为网页登录
{ "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 }