[{"bookSourceComment":" - 2026.07.31\n登录和发现用了select控件，请使用有select的阅读\n有cf盾，一直过不了可以尝试切换网络，或过段时间再试，如果一直跳转到内部浏览器，可以尝试等待自动退出或点击右上角✔\n发现、正文加载没东西请再试几次\n当前网站失效可以在登录页切换站点","bookSourceName":"霹雳书屋","bookSourceType":0,"bookSourceUrl":"https:\/\/www.pilibook.net\/","customButton":false,"customOrder":1,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"eventListener":false,"exploreUrl":"@js:\nconst currentUrl = getCurrentUrl();\nconst topListRoute = 'top\/list';\n\nconst combineUrl = (cateIndex, dataIndex) => {\n    if (cateIndex == 0 && dataIndex == 0) {\n        return ``;\n    } else {\n        const cateId = cateIndex == 7 ? 8 : cateIndex;\n        return `${currentUrl}${topListRoute}\/${cateId}\/${dataIndex}\/{{page}}.html`;\n    }\n};\n\nconst combineLable = (cateLable, dataLable) => {\n    if (cateLable == \"不选择\" && dataLable == \"不选择\") {\n        return \"请至少选择一项\";\n    } else {\n        let lable = cateLable + \"·\" + dataLable;\n        return lable.replace(\/·?不选择·?\/g, \"\");\n    }\n}\n\nlet currentCateIndex = String(source.get(\"cateRankIndex\")) || 0;\nlet currentDataIndex = String(source.get(\"dataRankIndex\")) || 1;\nconst currentCateLabel = ranks.category[currentCateIndex];\nconst currentDataLabel = ranks.data[currentDataIndex];\nconst fullLabel = combineLable(currentCateLabel, currentDataLabel)\nconst fullUrl = combineUrl(currentCateIndex, currentDataIndex);\n\nlet ui = [{\n        title: '分类榜',\n        type: 'select',\n        action: 'onSelectorChanged(String(infoMap[\"分类榜\"]),\"category\")',\n        chars: ranks.category,\n        default: ranks.category[currentCateIndex],\n        style: {\n            \"layout_flexGrow\": 0,\n            \"layout_flexShrink\": 1,\n            \"layout_alignSelf\": \"auto\",\n            \"layout_flexBasisPercent\": 0.45,\n            \"layout_wrapBefore\": false\n        }\n    },\n    {\n        title: '数据榜',\n        type: 'select',\n        action: 'onSelectorChanged(String(infoMap[\"数据榜\"]),\"data\")',\n        chars: ranks.data,\n        default: ranks.data[currentDataIndex],\n        style: {\n            \"layout_flexGrow\": 0,\n            \"layout_flexShrink\": 1,\n            \"layout_alignSelf\": \"auto\",\n            \"layout_flexBasisPercent\": 0.45,\n            \"layout_wrapBefore\": false\n        }\n    },\n    {\n        title: fullLabel,\n        url: fullUrl,\n        style: {\n            \"layout_flexGrow\": 0,\n            \"layout_flexShrink\": 1,\n            \"layout_alignSelf\": \"auto\",\n            \"layout_flexBasisPercent\": 1,\n            \"layout_wrapBefore\": false\n        }\n    }\n];\nJSON.stringify(ui);","header":"{\n    \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; V2243A Build\/TP1A.220905.001) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/125.0.0.0 Mobile Safari\/537.36\"\n}","jsLib":"const bookSites = {\n    '主域名': 'https:\/\/www.pilishuwu.com\/',\n    '镜像线路1': 'https:\/\/www.pilibook.net\/',\n    '镜像线路2': 'https:\/\/www.pili45.com\/'\n};\n\nconst ranks = {\n    data: [\n        '不选择', '最新入库', '全部点击', '本年点击', '本月点击', '本周点击', '本日点击',\n        '全部收藏', '本年收藏', '本月收藏', '本周收藏', '本日收藏',\n        '全部推荐', '本年推荐', '本月推荐', '本周推荐', '本日推荐',\n        '评论数量', '点赞数量', '讨厌数量', '评分分数', '全本字数', '章节数量'\n    ],\n    category: [\n        '不选择',\n        '男频小说', '女频小说', '电子图书', '无cp小说',\n        '纯爱小说', '百合小说', '轻小说'\n    ]\n};\n\nconst urlToName = Object.fromEntries(\n    Object.entries(bookSites).map(([name, url]) => [url, name])\n);\n\nfunction getUrlByName(name) {\n    return bookSites[name] || null;\n}\n\nfunction getNameByUrl(url) {\n    return urlToName[url] || null;\n}\n\nfunction getCurrentUrl() {\n    const { source } = this;\n    return String(source.get(\"url\")) || bookSites['镜像线路1'];\n}\n\nfunction onSelectorChanged(selectedLabel, type) {\n    const { source, java } = this;\n    \n    const list = type === \"data\" ? ranks.data : ranks.category;\n    const saveKey = type === \"data\" ? \"dataRankIndex\" : \"cateRankIndex\";\n    const selectedIndex = list.indexOf(selectedLabel);\n    source.put(saveKey, selectedIndex);\n\n    java.refreshExplore();\n}","lastUpdateTime":"1785525036771","loginUi":"@js:\nconst siteNames = Object.keys(bookSites);\nconst currentUrl = getCurrentUrl();\nconst currentSiteName = getNameByUrl(String(currentUrl));\n\nconst mainUI = [{\n        name: '当前站点',\n        type: 'select',\n        chars: siteNames,\n        action: 'setCurrentUrl()',\n        default: currentSiteName,\n        style: {\n            layout_flexBasisPercent: 1\n        }\n    },\n    {\n        name: '网站',\n        type: 'button',\n        action: 'toSite()',\n        style: {\n            layout_flexBasisPercent: 0.45\n        }\n    },\n    {\n        name: '公告',\n        type: 'button',\n        action: 'toNotice()',\n        style: {\n            layout_flexBasisPercent: 0.45\n        }\n    }\n];\n\nJSON.stringify(mainUI);","loginUrl":"function login() {}\n\nfunction setCurrentUrl() {\n    let currentSiteName = result.get(\"当前站点\");\n    const targetUrl = bookSites[currentSiteName];\n    source.put(\"url\", targetUrl);\n}\n\nfunction toSite() {\n    const currentUrl = getCurrentUrl();\n    java.startBrowser(currentUrl,\"霹雳书屋\");\n}\n\nfunction toNotice() {\n  java.startBrowser(\"https:\/\/www.pilixiaoshuo.com\/\", \"公告\");\n}","respondTime":180000,"ruleBookInfo":{"author":".x-detail__book--info@p.1@text##作者：","coverUrl":"img.0@src","intro":"&nbsp;\n🕐 {{@@.x-catalog__update@text}}\n{{'\\nㅤ\\n'}}\n❤️ {{@@.x-detail__ticket--item.0@text}}    ✖️ {{@@.x-detail__ticket--item.1@text}}    📕{{@@.x-detail__book--info@p.3@text}}\n{{'\\nㅤ\\n'}}\n{{@@.x-detail__ticket--box@span@html || .x-detail__intro--content@html}}","kind":".x-detail__book--info@p.2@text&&.x-detail__book--info@p.4@text&&.x-detail__intro--tags@a@text##分类：|进程：","lastChapter":".x-catalog__new@text## .*","name":".x-detail__book--info@p.0@text","tocUrl":".x-detail__operator--item@a@href"},"ruleContent":{"content":"<js>\nlet\t header = {\n\t\t\t\t\"User-Agent\": \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36\",\n    \"Accept\": \"text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8\",\n    \"Accept-Language\": \"zh-CN,zh;q=0.9\"\n}\n\nlet url = baseUrl + \",\" + JSON.stringify({\"headers\":header});\njava.ajax(url);\n<\/js>\n.read-content@html","nextContentUrl":".read-load-next@a.-1@href"},"ruleExplore":{"author":".x-info__author@span@text","bookList":"<js>\nif(result.match(\/Just a moment...|�\/)){\n\tjava.startBrowserAwait(baseUrl,\"验证\");\n\tresult=java.ajax(baseUrl);\n}result;\n<\/js>\n.rank-list-wrap@class.rank-ul@li ||.x-book","bookUrl":"a@href","coverUrl":"img@data-src","intro":".x-info__intro@text","kind":".x-info__author@text## .*","name":"a@text || class.x-info__name@text"},"ruleSearch":{"author":".book-status@text","bookList":"<js>\nif(result.match(\/Just a moment...|�\/)){\n\tjava.startBrowserAwait(baseUrl,\"验证\");\n\tresult=java.ajax(baseUrl);\n}result;\n<\/js>\n.x-book","bookUrl":"a@href","coverUrl":"img@src","intro":".x-book__intro@text","kind":".book-fenlei@text","name":".x-book__info--name@text"},"ruleToc":{"chapterList":"ol@li!0","chapterName":"span@text","chapterUrl":"a@href"},"searchUrl":"{{getCurrentUrl()}}search\/0\/{{key}}\/{{page}}.html","weight":0}]