BBQQGG
https://www.bbqqgg.com
directly-good (14026)06/25 00:39
那个目录的搞好了
{
"bookSourceComment": "\/\/❗免责声明:\n本工具\/代码\/内容仅供学习交流使用,严禁用于任何非法用途。使用者应严格遵守所在国家或地区的法律法规,任何因滥用或违规使用导致的后果均与开发者\/提供者无关,责任自负❗",
"bookSourceGroup": "🔞",
"bookSourceName": "BBQQGG",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.bbqqgg.com",
"customButton": false,
"customOrder": 13,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"eventListener": false,
"exploreUrl": "@js:\nfunction getCategories() {\n let tagHtml = java.ajax(\"https:\/\/www.bbqqgg.com\/tags\/\");\n let tagDoc = org.jsoup.Jsoup.parse(tagHtml);\n let tagList = tagDoc.select(\".tag-list li a\");\n let tags = Array.from(tagList, (a) => ({\n \"title\": a.ownText().trim(),\n \"url\": a.attr(\"href\") + \"{{page}}.html\",\n \"style\": { \"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25 }\n }));\n let catHtml = java.ajax(\"https:\/\/www.bbqqgg.com\/categories\/\");\n let catDoc = org.jsoup.Jsoup.parse(catHtml);\n let catList = catDoc.select(\".category-list li a\");\n let categories = Array.from(catList, (a) => ({\n \"title\": a.ownText().trim(),\n \"url\": a.attr(\"href\") + \"?page={{page}}\",\n \"style\": { \"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25 }\n }));\n let additionalCategories = [\n { \"title\": \"完本小说\", \"url\": \"https:\/\/www.bbqqgg.com\/rank\/complete\/{{page}}.html\", \"style\": { \"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25 } },\n { \"title\": \"热门小说\", \"url\": \"https:\/\/www.bbqqgg.com\/rank\/hot\/{{page}}.html\", \"style\": { \"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25 } }\n ];\n let allCategories = tags.concat(categories, additionalCategories);\n return JSON.stringify(allCategories);\n}\ngetCategories();",
"lastUpdateTime": "1782319140328",
"loginUi": "[\n { \"name\": \"账号\", \"type\": \"text\" },\n { \"name\": \"密码\", \"type\": \"text\" }\n]",
"loginUrl": "function login() {\n try {\n var url = baseUrl.replace(\/\\\/+$\/, '').replace(\/[^\\w.:\/\\-]\/g, '');\n var ur = source.getLoginInfoMap();\n var params = `username=${ur.get(\"账号\")}&password=${ur.get(\"密码\")}`;\n var r = java.post(`${url}\/api\/login.php`, params, { \"method\": \"POST\" });\n var resp = JSON.parse(r.body());\n if (resp.success) {\n const cookies = Array.from(r.cookies(), ([k, v]) => `${k}=${v}`).join(';');\n return source.putLoginHeader(JSON.stringify({ Cookie: cookies }));\n } else {\n throw new Error(`登录失败: ${resp.message || '未知错误'}`);\n }\n } catch (e) {\n java.log(`登录异常: ${e.message}`);\n throw e;\n }\n}",
"respondTime": 180000,
"ruleBookInfo": {
"author": "p.0@text",
"coverUrl": ".cover.0@img@src",
"intro": ".desc@text",
"kind": "p.1@text&&p.2:3@a@text##状态:",
"name": "h1@text",
"tocUrl": "text.章节目录@href"
},
"ruleContent": {
"content": ".content@html"
},
"ruleExplore": {
"author": "span.0@text",
"bookList": ".novel-list@a",
"bookUrl": "a@href",
"coverUrl": "img.0@data-src",
"name": "h4.0@text"
},
"ruleSearch": {
"author": "span@text",
"bookList": ".novel-item",
"bookUrl": "a@href",
"checkKeyWord": "重生",
"coverUrl": "img@data-src",
"intro": "p@text",
"name": "a@text"
},
"ruleToc": {
"chapterList": ".chapter-list@a",
"chapterName": "text",
"chapterUrl": "href"
},
"searchUrl": "\/search\/?q={{key}}&page={{page}}",
"weight": 0
}