[{"bookSourceComment":"2.27搜索问题，去除搜索代码,{\"webView\": true}\n\/\/ \/so\/comic\/ 会同时搜索小说和视频(源代码)，但是视频获取一直有问题就没写(没搞懂)\n\/\/  书籍列表规则漫画优先，部分封面加载不出来(搞不懂)。\n\/\/ 发现页漫画也会加载小说，本质是和搜索一样。\n\/\/ 如果网址失效，可自行访问huangqu.top，验证后进入永久域名地址复制url到源url和发现页规则里替换掉。","bookSourceGroup":"🔞","bookSourceName":"Icu","bookSourceType":0,"bookSourceUrl":"https:\/\/ztopaq7zrz.hq555.icu:1678","bookUrlPattern":"https:\/\/ztopaq7zrz.hq555.icu:1678","customButton":false,"customOrder":59,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"eventListener":false,"exploreUrl":"<js>\njava.longToast(\"多刷新两次，如果失败可能网址失效了，可查看源注释重新获取。\");\n(function() {\n    try {\n        \/\/ 第一步：获取HTML\n        var baseUrl = \"https:\/\/ztopaq7zrz.hq555.icu:1678\";\n        var html = java.connect(baseUrl + \"\/so\").getBody();\n\n        if (html.match(\/easy_slider_html\/) || html.match(\/安全验证\/)) {\n            cookie.removeCookie(source.bookSourceUrl);\n\n            java.startBrowserAwait(baseUrl, '人机验证');\n            html = java.connect(baseUrl + \"\/so\").getBody();\n        };\n\n        if (!html) return '';\n\n        \/\/ 第二步：解析HTML\n        var doc = org.jsoup.Jsoup.parse(html);\n\n        \/\/ 第三步：获取标题元素\n        var titles = doc.select('.layui-tab-item-title');\n        \/\/ java.log(\"找到标题数量: \" + titles.size());\n\n        if (titles.size() < 4) {\n            \/\/  java.log(\"标题数量不足4个\");\n            return '';\n        }\n\n        \/\/ 第四步：初始化结果数组\n        var results = [];\n\n        \/\/ 获取小说区域\n        var fictionTitle = titles.get(1);\n        var comicTitle = titles.get(2);\n        var endTitle = titles.get(3);\n\n        \/\/  java.log(\"小说标题: \" + fictionTitle.text());\n        \/\/ java.log(\"漫画标题: \" + comicTitle.text());\n        \/\/ java.log(\"结束标题: \" + endTitle.text());\n\n        \/\/ 1. 添加\"小说\"大类\n        results.push({\n            \"title\": \"小说\",\n            \"url\": \"\",\n            \"style\": {\n                \"layout_flexGrow\": 1,\n                \"layout_flexBasisPercent\": 1\n            }\n        });\n\n        \/\/ 提取小说子分类\n        \/\/ java.log(\"\\n=== 开始提取小说子分类 ===\");\n        var currentElement = fictionTitle.nextElementSibling();\n        var fictionCount = 0;\n\n        while (currentElement && !currentElement.equals(comicTitle)) {\n            if (currentElement.hasClass('layui-tab-item-tagContainer')) {\n                \/\/   java.log(\"找到小说tagContainer\");\n\n                var links = currentElement.select('a');\n                \/\/   java.log(\"小说容器中有\" + links.size() + \"个链接\");\n\n                for (var i = 0; i < links.size(); i++) {\n                    var link = links.get(i);\n\n                    \/\/ 提取名称\n                    var span = link.selectFirst('span.layui-tab-item-tagContainer-tag');\n                    var name = '';\n                    if (span) {\n                        name = span.text().trim();\n                    } else {\n                        name = link.text().trim();\n                    }\n\n                    \/\/ 提取链接（保持原始相对或绝对路径）\n                    var href = link.attr('href');\n\n                    if (name && href) {\n                        \/\/ 仅确保链接包含分页参数，不处理相对链接转换\n                        if (!href.includes(\"{{page}}\")) {\n                            href = href + \"\/{{page}}\";\n                        }\n\n                        results.push({\n                            \"title\": name,\n                            \"url\": href,\n                            \"style\": {\n                                \"layout_flexGrow\": 1,\n                                \"layout_flexBasisPercent\": 0.25\n                            }\n                        });\n                        fictionCount++;\n                        \/\/   java.log(\"添加小说子分类: \" + name + \" -> \" + href);\n                    }\n                }\n            }\n\n            currentElement = currentElement.nextElementSibling();\n        }\n\n        \/\/  java.log(\"小说子分类数量: \" + fictionCount);\n\n        \/\/ 2. 添加\"漫画\"大类\n        results.push({\n            \"title\": \"漫画\",\n            \"url\": \"\",\n            \"style\": {\n                \"layout_flexGrow\": 1,\n                \"layout_flexBasisPercent\": 1\n            }\n        });\n\n        \/\/ 提取漫画子分类\n        \/\/   java.log(\"\\n=== 开始提取漫画子分类 ===\");\n        currentElement = comicTitle.nextElementSibling();\n        var comicCount = 0;\n\n        while (currentElement && !currentElement.equals(endTitle)) {\n            if (currentElement.hasClass('layui-tab-item-tagContainer')) {\n                \/\/   java.log(\"找到漫画tagContainer\");\n\n                var links = currentElement.select('a');\n                \/\/   java.log(\"漫画容器中有\" + links.size() + \"个链接\");\n\n                for (var i = 0; i < links.size(); i++) {\n                    var link = links.get(i);\n\n                    \/\/ 提取名称\n                    var span = link.selectFirst('span.layui-tab-item-tagContainer-tag');\n                    var name = '';\n                    if (span) {\n                        name = span.text().trim();\n                    } else {\n                        name = link.text().trim();\n                    }\n\n                    \/\/ 提取链接（保持原始相对或绝对路径）\n                    var href = link.attr('href');\n\n                    if (name && href) {\n                        \/\/ 仅确保链接包含分页参数，不处理相对链接转换\n                        if (!href.includes(\"{{page}}\")) {\n                            href = href + \"\/{{page}}\";\n                        }\n\n                        results.push({\n                            \"title\": name,\n                            \"url\": href,\n                            \"style\": {\n                                \"layout_flexGrow\": 1,\n                                \"layout_flexBasisPercent\": 0.25\n                            }\n                        });\n                        comicCount++;\n                        \/\/   java.log(\"添加漫画子分类: \" + name + \" -> \" + href);\n                    }\n                }\n            }\n\n            currentElement = currentElement.nextElementSibling();\n        }\n\n        \/\/   java.log(\"漫画子分类数量: \" + comicCount);\n\n        \/\/ 第五步：返回JSON\n        \/\/ java.log(\"\\n最终生成的发现地址规则:\");\n        \/\/ java.log(JSON.stringify(results, null, 2));\n        return JSON.stringify(results);\n    } catch (e) {\n        return \"\" + e;\n    }\n})();\n<\/js>","header":"{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/127.0.0.0 Mobile Safari\/537.36\"}","lastUpdateTime":"1787536788828","loginCheckJs":"var src = result.body();\nif (src.match(\/easy_slider_html\/) || src.match(\/安全验证\/)) {\n    cookie.removeCookie(source.bookSourceUrl);\n    let url = result.url();\n    java.startBrowserAwait(url, \"验证\");\n    result = java.connect(url);\n}\nresult;","respondTime":180000,"ruleBookInfo":{"coverUrl":"{{book.coverUrl}}","init":".detail-box","intro":".m-desc.xs-show@text","kind":"p.1@text","lastChapter":"p.-1@text","name":"{{book.name}}"},"ruleContent":{"content":".cartoon@html||id.art-content@html","imageStyle":"FULL"},"ruleExplore":[],"ruleSearch":{"bookList":".layui-tab-item-novelContainer[-1]@.novel-grid@.novel-grid-item&&.layui-tab-item-novelContainer[-2]@.novel-grid@.novel-grid-item","bookUrl":"a@href","checkKeyWord":"绿帽","coverUrl":"img@data-original||img@src","kind":"<js>\nvar href = java.getString(\"a@href\");\nif (href && href.indexOf('\/xs') === 0) {\n    result = '小说';\n} else if (href && href.indexOf('\/comic') === 0) {\n    result = '漫画';\n} else {\n    result = '视频'; \/\/ 写不好\n}\nresult;\n<\/js>","name":"p@text"},"ruleToc":{"chapterList":"id.myList@li@a","chapterName":"text","chapterUrl":"href"},"searchUrl":"\/so\/comic\/{{key}}\/{{page}}","weight":0}]