H动漫
http://18hdm.com/
wwwcloger (11776)15小时前
作者: wwwcloger
{
"bookSourceComment": "作者: wwwcloger",
"bookSourceGroup": "洛制",
"bookSourceName": "H动漫",
"bookSourceType": 0,
"bookSourceUrl": "http:\/\/18hdm.com\/",
"coverDecodeJs": "const key = \"f5d965df75336270\";\nconst iv = \"97b60394abc2fbe1\";\njava.createSymmetricCrypto(\"AES\/CBC\/PKCS5Padding\", key, iv).decrypt(result)",
"customOrder": 0,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "@js:\njava.toast(\"\\n 正在进行发现页更新...\");\nlet list = [];\nconst push = (title, url, size) => list.push({\n \"title\": title,\n \"url\": url,\n \"style\": {\n \"layout_flexGrow\": 1,\n \"layout_flexBasisPercent\": size\n }\n});\n\nconst html = org.jsoup.Jsoup.parse(java.ajax(source.getKey()));\nconst reg = \/^\\\/category\\\/[0-9a-z]+\\\/[0-9]\\\/$\/;\nlet items = html.select(\"ul.dx-container > li\");\nfor (let i = 0; i < items.size(); i++) {\n let el = items.get(i);\n let a = el.select(\"a\");\n if (a.isEmpty()) continue;\n \n let href = a.attr(\"href\");\n if (reg.test(href)) {\n let title = a.text();\n push(title, href.replace(\"\/1\/\", `\/{{page}}\/`), 0.3);\n } \n}\n\nJSON.stringify(list);",
"lastUpdateTime": "1777540640944",
"respondTime": 180000,
"ruleBookInfo": {
"intro": "\/\/meta[@name=\"description\"]\/@content\n@js:\nif (result.startsWith(\"H动漫\") && result.endsWith(\"尽在H动漫网。\")) {\n \" 暂无简介\";\n} else {\n \"简介:\\n\" + result.replace(\/。\/g, \"。\\n\");\n}",
"kind": "{{\/\/meta[@name=\"keywords\"]\/@content##,##\n}}"
},
"ruleContent": {
"content": "@js:\nconst hashMatch = result.match(\/parseInt\\|([a-f0-9]+)\\|player\/);\nconst hash = hashMatch[1];\nconst ts = Math.floor(Date.now() \/ 1000 \/ 2000);\n\nconst jsUrl = source.getKey() + 'player\/' + hash + '\/' + ts + '.js?v=1';\nconst js = java.ajax(jsUrl);\nconst nxvav = \"https:\/\/api.nxvav.cn\/api\/m3u8\/?url=\";\nlet m3u8 = \"\";\n\nthis.navigator = {\n userAgent: \"\"\n};\nconst ad_config = \"\";\nlet videoId = \"\";\nlet auth_key = \"\";\nlet last_play_time = 0;\nlet volume = 0;\nlet autoplay = false;\nlet autoplayMuted = false;\nlet showIcon = false;\nlet preferDocument = false;\nlet pip = {};\nlet videoAttributes = {};\nlet advertise = {};\nlet manual_duration = 0;\nlet play_duration = 0;\nlet muted = false;\nlet video = {};\nlet external = false;\nlet disabled = false;\nlet key = \"\";\nlet time = {};\nlet duration = 0;\n\nfunction create_player(a) {\n m3u8 = a[\"url\"];\n \/\/ java.log(m3u8);\n}\n\ntry {\n eval(String(js));\n if (m3u8 === \"\") {\n \"未获取到视频地址\"\n } else {\n java.startBrowserAwait(`${nxvav}${java.encodeURI(m3u8)}`, book.name);\n }\n} catch (err) {\n m3u8;\n}"
},
"ruleExplore": {
"bookList": "\/\/img[contains(@class, \"rounded-sm\")]\/..\/..",
"bookUrl": "href",
"coverUrl": "\/\/img[contains(@class, \"rounded-sm\")]\/@data-src",
"name": "\/\/img[contains(@class, \"rounded-sm\")]\/@alt"
},
"ruleSearch": {
"bookList": "class.video-items@tag.li",
"bookUrl": "tag.a[0]@href",
"coverUrl": "class.rounded-sm@data-src",
"name": "class.rounded-sm@alt"
},
"ruleToc": {
"chapterList": "\/\/ul[@class=\"video-items grid gap-2 mb-3 grid-cols-1\"]\/li\n@js:\nlet list = [];\nif (result.size() > 0) {\n for (let i = 0; i < result.size(); i++) {\n let a = org.jsoup.Jsoup.parse(result.get(i)).select(\"a.line-clamp-2.mb-1\")\n let href = a.attr(\"href\") || \"\";\n let title = a.text() || \"\";\n list.push({\n \"title\": title,\n \"url\": href\n });\n }\n} else {\n list.push({\n \"title\": \"立即播放\",\n \"url\": baseUrl\n });\n}\nlist;",
"chapterName": "title",
"chapterUrl": "url"
},
"searchUrl": "search\/{{key}}\/{{page}}\/",
"weight": 0
}