Pixiv
https://www.pixiv.net/novel,{"js":"java.longToast('请使用右上角菜单中的【登录】进行登录/退出账号')"}
分享者: DowneyRem (9968)发布时间: 09/15 19:41
Pixiv 订阅源
可用功能:✅添加小说(配合书源)✅更新书源
添加小说:打开小说,【刷新】,点击【加入书架】按钮,添加小说到书架
书源发布:
Pixiv 书源频道 https://t.me/PixivSource
兽人阅读频道 https://t.me/FurryReading
项目地址:
https://github.com/DowneyRem/PixivSource
规则订阅:
https://cdn.jsdelivr.net/gh/DowneyRem/PixivSource@main/btsrk.json
https://raw.githubusercontent.com/DowneyRem/PixivSource/main/btsrk.json
{
"articleStyle": 0,
"cacheFirst": false,
"customOrder": 1,
"enableJs": true,
"enabled": true,
"enabledCookieJar": true,
"header": "{\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/150.0.0.0 Mobile Safari\/537.36 Reader\"}",
"injectJs": "if (!document.getElementById('open-yuedu-bookshelf')) {\n const style = document.createElement('style');\n style.textContent = `\n .yuedu-float-btn {\n z-index: 9999999999;\n position: fixed;\n bottom: 13%;\n padding: 11px 20px;\n border-radius: 8px;\n border: none;\n color: #fff;\n font-weight: 500;\n font-size: clamp(14px, 3.8vw, 17px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.25s ease;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n }\n\n .yuedu-float-btn:hover {\n transform: scale(1.08);\n box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);\n }\n .yuedu-float-btn:active {\n transform: scale(0.96);\n }\n `;\n document.head.appendChild(style);\n\n \/\/ 域名判断\n const currentUrl = window.location.href;\n const isPixiv = \/pixiv\\.net\/i.test(currentUrl);\n const isLinpx = \/linpx\\.ink\/i.test(currentUrl);\n const isFurryNovel = \/furrynovel\\.com\/i.test(currentUrl);\n\n \/\/ 书源地址\n let bookSourceUrl\n if (isPixiv) {\n bookSourceUrl = 'https:\/\/cdn.jsdelivr.net\/gh\/DowneyRem\/PixivSource@main\/pixiv.json'\n } else {\n bookSourceUrl = 'https:\/\/cdn.jsdelivr.net\/gh\/DowneyRem\/PixivSource@main\/linpx.json'\n }\n\n \/\/ 按钮颜色(linpx 用黄色,其他用蓝色)\n const mainColor = isLinpx ? '#ff9900' : '#1da5f9';\n const hoverColor = isLinpx ? '#ffaa22' : '#40b6ff';\n\n \/\/ 「导入书源」按钮 - 左下\n const btn = document.createElement('button');\n btn.id = 'impotr-booksource';\n btn.className = 'yuedu-float-btn';\n btn.style.backgroundColor = mainColor;\n btn.style.left = '10%';\n btn.textContent = '导入书源';\n document.body.appendChild(btn);\n\n btn.onclick = () => {\n window.open(`legado:\/\/import\/bookSource?src=${encodeURIComponent(bookSourceUrl)}`, '_blank');\n };\n\n \/\/ 「加入书架」按钮 - 右下\n if (!isFurryNovel) {\n const btn2 = document.createElement('button');\n btn2.id = 'open-yuedu-bookshelf';\n btn2.className = 'yuedu-float-btn';\n btn2.style.backgroundColor = mainColor;\n btn2.style.right = '10%';\n btn2.textContent = '加入书架';\n document.body.appendChild(btn2);\n\n btn2.onclick = () => {\n window.open(`legado:\/\/import\/addToBookshelf?src=${encodeURIComponent(window.location.href)}`, '_blank');\n };\n }\n\n \/\/ Hover 颜色\n const hoverStyle = document.createElement('style');\n hoverStyle.textContent = `\n #impotr-booksource:hover,\n #open-yuedu-bookshelf:hover {\n background-color: ${hoverColor} !important;\n }\n `;\n document.head.appendChild(hoverStyle);\n}",
"jsLib": "function getWebViewUA() {\n let {java} = this\n let userAgent = String(java.getWebViewUA())\n return String(userAgent)\n}\n\nfunction sleep(seconds) {\n return Packages.java.lang.Thread.sleep(1000*seconds)\n}\n\nfunction sleepToast(text, second) {\n const {java} = this\n java.log(text)\n java.longToast(text)\n if (second === undefined) {second = 0.01}\n this.sleep(second)\n}\n\nfunction startBrowser(url, title) {\n const {java} = this\n let msg = \"\", headers = `{\"headers\": {\"User-Agent\":\"${this.getWebViewUA()}\"}}`\n if (url.includes(\"pixiv.net\")) {\n msg += \"\\n\\n即将打开 Pixiv\\n请确认已开启代理\/梯子\/VPN等\"\n } else if (url.includes(\"github\")) {\n msg += \"\\n\\n即将打开 Github\\n请确认已开启代理\/梯子\/VPN等\"\n } else if (url.includes(\"https:\/\/t.me\/\")){\n msg += \"\\n\\n即将打开 Telegram\\n请确认已开启代理\/梯子\/VPN等\"\n }\n if (msg) this.sleepToast(msg)\n java.startBrowser(`${url}, ${headers}`, title)\n}\n\nfunction startPixivSettings() {\n const {java} = this\n this.startBrowser(\"https:\/\/www.pixiv.net\/settings\/viewing\", \"账号设置\")\n}\n\nfunction startGithubReadme() {\n const {java, source} = this\n if (source.sourceUrl.includes(\"pixiv.net\")) {\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/Pixiv\", \"书源指南\")\n } else if (source.sourceUrl.includes(\"linpx.ink\")) {\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/Linpx\", \"书源指南\")\n } else if (source.sourceUrl.includes(\"furrynovel.com\")) {\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/FurryNovel\", \"书源指南\")\n }\n}\n\nfunction startGithubIssue() {\n const {java} = this\n this.startBrowser(\"https:\/\/github.com\/DowneyRem\/PixivSource\/issues\", \"反馈问题\")\n}\nfunction startGithub() {\n const {java} = this\n this.startBrowser(\"https:\/\/github.com\/DowneyRem\/PixivSource\", \"收藏项目\")\n}\n\nfunction startGithubIntroduction() {\n const {java} = this\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/BetterExperience\", \"使用指南\")\n}\nfunction startGithubWebdavBackup() {\n const {java} = this\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/WebdavBackup\", \"备份恢复\")\n}\nfunction startGithubRemoteBooks() {\n const {java} = this\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/RemoteBooks\", \"远程书籍\")\n}\nfunction startGithubSponsor() {\n const {java} = this\n this.startBrowser(\"https:\/\/pixivsource.pages.dev\/Sponsor\", \"支持开发\")\n}\n\nfunction startTelegram() {\n const {java} = this\n this.startBrowser(\"https:\/\/t.me\/PixivSource\", \"书源频道\")\n}\nfunction startTelegramLegado() {\n const {java} = this\n this.startBrowser(\"https:\/\/t.me\/ReadSigma\", \"阅读频道\")\n}\nfunction startTelegramFurryReading() {\n const {java} = this\n this.startBrowser(\"https:\/\/t.me\/FurryReadingRE\", \"兽人阅读频道\")\n}",
"lastUpdateTime": 1784390400251,
"loadWithBaseUrl": true,
"loginUi": "[\n {\n \"name\": \"🅿️️ 登录账号\",\n \"type\": \"button\",\n \"action\": \"login()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"⚙️ 账号设置\",\n \"type\": \"button\",\n \"action\": \"startPixivSettings()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"🔙 退出账号\",\n \"type\": \"button\",\n \"action\": \"logout()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n\n {\n \"name\": \"书源设置\",\n \"type\": \"text\"\n },\n {\n \"name\": \"🔢 章节编号\",\n \"type\": \"button\",\n \"action\": \"editSettings('ADD_CHAPTER_INDEX')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"❤️ 自动收藏\",\n \"type\": \"button\",\n \"action\": \"editSettings('AUTO_LIKE_NOVELS')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"📚 整合系列\",\n \"type\": \"button\",\n \"action\": \"editSettings('COMBINE_NOVELS')\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n\n {\n \"name\": \"书源相关\",\n \"type\": \"text\"\n },\n {\n \"name\": \"🔰 使用指南\",\n \"type\": \"button\",\n \"action\": \"startGithubIntroduction()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"📘 书源指南\",\n \"type\": \"button\",\n \"action\": \"startGithubReadme()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"🐞 反馈问题\",\n \"type\": \"button\",\n \"action\": \"startGithubIssue()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"⭐️ 收藏项目\",\n \"type\": \"button\",\n \"action\": \"startGithub()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"💾 备份恢复\",\n \"type\": \"button\",\n \"action\": \"startGithubWebdavBackup()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"☁️ 远程书籍\",\n \"type\": \"button\",\n \"action\": \"startGithubRemoteBooks()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"📖 阅读频道\",\n \"type\": \"button\",\n \"action\": \"startTelegramLegado()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"✈️ 书源频道\",\n \"type\": \"button\",\n \"action\": \"startTelegram()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n },\n {\n \"name\": \"☕ ️支持开发\",\n \"type\": \"button\",\n \"action\": \"startGithubSponsor()\",\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": -1\n }\n }\n]",
"loginUrl": "function login() {\n let resp = java.startBrowserAwait(`https:\/\/accounts.pixiv.net\/login,\n {\"headers\": {\"User-Agent\": ${getWebViewUA()}}}`, '登录账号', false)\n if (resp.code() === 200) {\n getCookie(); getCsrfToken()\n return true\n } else {\n java.log(resp.code()); sleepToast(\"🅿️ 登录账号\\n\\n⚠️ 登录失败\")\n return false\n }\n}\n\nfunction logout() {\n removeCookie()\n java.startBrowser(\"https:\/\/www.pixiv.net\/logout.php\", \"退出账号\")\n removeCookie()\n sleepToast(`✅ 已退出当前账号\\n\\n退出后请点击右上角的 ✔️ 退出\\n\\n登录请点击【登录账号】进行登录`)\n}\n\nfunction removeCookie() {\n cookie.removeCookie('https:\/\/www.pixiv.net')\n cookie.removeCookie('https:\/\/accounts.pixiv.net')\n cookie.removeCookie('https:\/\/accounts.google.com')\n cookie.removeCookie('https:\/\/api.weibo.com')\n cache.delete(\"pixivCookie\")\n cache.delete(\"pixivCsrfToken\") \/\/ 与登录设备有关\n cache.delete(\"pixivHeaders\")\n}\n\n\/\/ 获取 Csrf Token,以便进行收藏等请求\n\/\/ 获取方法来自脚本 Pixiv Previewer\n\/\/ https:\/\/github.com\/Ocrosoft\/PixivPreviewer\n\/\/ https:\/\/greasyfork.org\/zh-CN\/scripts\/30766-pixiv-previewer\/code\nfunction getCsrfToken() {\n let pixivCsrfToken\n let html = java.webView(null, \"https:\/\/www.pixiv.net\/\", null)\n try {\n pixivCsrfToken = html.match(\/token\\\\\":\\\\\"([a-z0-9]{32})\/)[1]\n } catch (e) {\n pixivCsrfToken = null\n }\n \/\/ java.log(pixivCsrfToken)\n cache.put(\"pixivCsrfToken\", pixivCsrfToken) \/\/ 与登录设备有关\n return pixivCsrfToken\n}\n\nfunction getCookie() {\n let pixivCookie = String(java.getCookie(\"https:\/\/www.pixiv.net\/\", null))\n if (pixivCookie.includes(\"first_visit_datetime\")) {\n \/\/ java.log(pixivCookie)\n cache.put(\"pixivCookie\", pixivCookie, 60*60)\n return pixivCookie\n } else {\n cache.delete(\"pixivCookie\")\n \/\/ sleepToast(\"未登录账号( pixivCookie)\")\n return null\n }\n}\n\nfunction putInCacheObject(objectName, object, saveSeconds) {\n if (object === undefined) object = null\n if (saveSeconds === undefined) saveSeconds = 0\n cache.put(objectName, JSON.stringify(object), saveSeconds)\n}\n\nfunction getFromCacheObject(objectName) {\n let object = cache.get(objectName)\n if (object === undefined) return null \/\/ 兼容源阅,避免 parse 报错\n return JSON.parse(object)\n}\n\nfunction statusMsg(status) {\n if (status === true) return \"✅ 已开启\"\n else if (status === false) return \"🚫 已关闭\"\n else if (status === undefined) return \"🈚️ 未设置\"\n}\n\nconst settingsName = {\n \"ADD_CHAPTER_INDEX\": \"🔢 章节编号\",\n \"AUTO_LIKE_NOVELS\": \"❤️ 自动收藏\",\n \"COMBINE_NOVELS\": \"📚 整合系列\",\n}\n\nfunction editSettings(settingName) {\n let msg, status\n let settings = getFromCacheObject(\"pixivSettings\")\n \/\/ if (!settings) settings = setDefaultSettings()\n if (!!settings[settingName]) {\n status = settings[settingName] = !settings[settingName]\n } else {\n status = settings[settingName] = true\n }\n putInCacheObject(\"pixivSettings\", settings)\n msg = `\\n\\n${statusMsg(status)} ${settingsName[settingName]}`\n sleepToast(msg)\n}",
"preload": false,
"showWebLog": false,
"singleUrl": true,
"sourceComment": "Pixiv 订阅源\n\n可用功能:✅添加小说(配合书源)✅更新书源\n添加小说:打开小说,【刷新】,点击【加入书架】按钮,添加小说到书架\n\n书源发布:\nPixiv 书源频道 https:\/\/t.me\/PixivSource\n兽人阅读频道 https:\/\/t.me\/FurryReading\n\n项目地址:\nhttps:\/\/github.com\/DowneyRem\/PixivSource\n\n规则订阅:\nhttps:\/\/cdn.jsdelivr.net\/gh\/DowneyRem\/PixivSource@main\/btsrk.json\nhttps:\/\/raw.githubusercontent.com\/DowneyRem\/PixivSource\/main\/btsrk.json",
"sourceGroup": "🅿️ Pixiv,🐲 Furry",
"sourceIcon": "https:\/\/asset.brandfetch.io\/idIlKj_n7C\/idSsbP7h1m.png",
"sourceName": "Pixiv",
"sourceUrl": "https:\/\/www.pixiv.net\/novel,{\"js\":\"java.longToast('请使用右上角菜单中的【登录】进行登录\/退出账号')\"}",
"type": 0
}