{
"bookSourceComment": "\/\/2025.4.4 by.◎辞晨◎\n\/\/搜索验证",
"bookSourceGroup": "写源",
"bookSourceName": "第五放映",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.d5uu.com\/",
"customOrder": 5,
"enabled": false,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "@js:\nsort=[];\npush=(title,url,type1,type2)=>sort.push({\n\t\ttitle: title,\n\t\turl: url,\n\t\tstyle: {\n\t\t\t\tlayout_flexGrow: type1,\n\t\t\t\tlayout_flexBasisPercent: type2\n\t\t\t}\n\t});\npush(\"全部🌊分类\",null,1,1)\n\tarList=[\"电影\",\"电视剧\",\"综艺\",\"动漫\"]\n\tarList.map((tag,index)=>{\n\t\turl=`\/dc\/?${index+1}-{{page}}.html`;\n\t\tpush(tag, url, 1, 0.25);\n\t\t});\n\/\/java.log(JSON.stringify(sort))\nJSON.stringify(sort)",
"header": "@js:\nJSON.stringify({\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 15; V2304A Build\/AP3A.240905.015.A2; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/132.0.6834.163 Mobile Safari\/537.36\"\n})",
"jsLib": "",
"lastUpdateTime": "1745603299836",
"loginCheckJs": "ck = cookie.getCookie(source.key).toString();\njava.log(ck);\nif (ck) {\n cck = ck.split(\"; \").filter(item => !item.startsWith(\"ssea2_search\")).join('; ');\n cookie.setCookie(source.key, cck);\n java.log(cck);\n}\nresult;",
"respondTime": 180000,
"ruleBookInfo": {
"author": "",
"coverUrl": "",
"intro": "",
"kind": "",
"lastChapter": "",
"name": "",
"wordCount": ""
},
"ruleContent": {
"content": "\/\/div[@class=\"stui-player__video embed-responsive embed-responsive-16by9 clearfix\"]\/script\/text()\n@js:\nvar url=result.match(\/http.*?m3u8\/g)[0];\nb64 = java['base64Encode'](`\n <html>\n <head>\n <meta name=\"viewport\" content=\"width=device-width\">\n <style>\n body {\n margin: 0;\n font-family: Arial, sans-serif;\n background: linear-gradient(135deg, #ece9e6, #ffffff);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding: 20px;\n }\n .container {\n width: 100%;\n max-width: 800px;\n background: #fff;\n border-radius: 10px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n margin-bottom: 20px;\n }\n h3 {\n margin: 0;\n padding: 10px 20px;\n font-size: 0.9em;\n background: #333;\n color: #fff;\n border-radius: 10px 10px 0 0;\n }\n .video-container {\n width: 100%;\n background: #000;\n position: relative;\n }\n video {\n width: 100%;\n height: auto;\n display: block;\n }\n .info-container {\n padding: 20px;\n }\n .info-container p {\n margin: 10px 0;\n color: #555;\n }\n .info-container p span {\n font-weight: bold;\n color: #000;\n }\n <\/style>\n <\/head>\n <body>\n <div class=\"container\">\n <h3>{{book.name}}<\/h3>\n <div class=\"video-container\">\n <video id=\"video\" src=\"${url}\" poster=\"{{book.coverUrl}}\" controls><\/video>\n <\/div>\n <\/div>\n <div class=\"info-container\">\n <p>🧾 名称:<span>{{book.name}}<\/span><\/p>\n <p>🧾 分类:<span>{{book.author}}<\/span><\/p>\n <p>🔖 标签:<span>{{book.kind}}<\/span><\/p>\n <p>🏷 简介:<span>{{book.intro}}<\/span><\/p>\n <\/div>\n <script>\n \/\/ 获取视频元素\n const video = document.getElementById('video');\n let touchStartX = 0;\n let touchStartY = 0;\n let touchStartTime = 0;\n let isLongPress = false;\n\n \/\/ 滑动快进\n video.addEventListener('touchstart', (e) => {\n touchStartX = e.touches[0].clientX;\n touchStartY = e.touches[0].clientY;\n touchStartTime = Date.now();\n isLongPress = false;\n });\n\n video.addEventListener('touchmove', (e) => {\n const deltaX = e.touches[0].clientX - touchStartX;\n const deltaY = e.touches[0].clientY - touchStartY;\n\n \/\/ 如果是水平滑动,且未进入长按状态\n if (Math.abs(deltaX) > Math.abs(deltaY) && !isLongPress) {\n const duration = video.duration;\n const seekTime = video.currentTime + (deltaX \/ 50); \/\/ 每滑动100px快进1秒\n video.currentTime = Math.min(Math.max(seekTime, 0), duration);\n }\n e.preventDefault(); \/\/ 防止默认行为(如页面滚动)\n });\n\n \/\/ 长按快进\n video.addEventListener('touchend', (e) => {\n const touchEndTime = Date.now();\n const touchDuration = touchEndTime - touchStartTime;\n\n \/\/ 如果长按时间超过500ms,进入长按快进状态\n if (touchDuration > 500) {\n isLongPress = true;\n\n \/\/ 在长按状态下,根据滑动距离快进\n const deltaX = e.changedTouches[0].clientX - touchStartX;\n const duration = video.duration;\n const seekTime = video.currentTime + (deltaX \/ 100); \/\/ 每滑动100px快进1秒\n video.currentTime = Math.min(Math.max(seekTime, 0), duration);\n } else {\n isLongPress = false;\n }\n });\n <\/script>\n <\/body>\n <\/html>\n`);\ndataUrl = 'data:text\/html;base64,' + b64;\n java['startBrowser'](dataUrl, title);\n java['toast']('正在加载视频\\n视频加载较慢,请耐心等待');\n '【刷新正文】播放\\n✅直链:\\n' + `${url}`;\n"
},
"ruleExplore": {
"author": "p.-1@text",
"bookList": ".stui-vodlist@li",
"bookUrl": "h4@a@href",
"coverUrl": "a@data-original",
"lastChapter": "span.2@text",
"name": "h4@a@text"
},
"ruleSearch": {
"author": "p.0@text##导演:",
"bookList": "<js>\nif (\/系统安全验证\/.test(src)) {\n let url = source.key;\n let psid = cookie.getCookie(url);\n \/\/java.log(psid);\n let searchkey = java.get(\"key\");\n let code = java.getVerificationCode(\"https:\/\/www.d5uu.com\/include\/vdimgck.php\");\n let so = java.post(`${url}\/search.php?scheckAC=check&page&searchtype&order&tid&area&year&letter&yuyan&state&money&ver&jq`, `validate=${code}&searchword=${searchkey}`, {\n \"Cookie\": psid\n });\n \/\/java.log(cookie.getCookie(url));\n cookie.setCookie(url, psid);\n result = so.body();\n \/\/java.log(result);\n}\nresult;\n<\/js>\n.stui-vodlist__media@li",
"bookUrl": "h3@a@href",
"checkKeyWord": "",
"coverUrl": "a@data-original",
"intro": ".hidden-sm@text##简介:",
"kind": "p.2@text##类型\\:|地区\\:|年份\\:##,",
"lastChapter": "span.2@text",
"name": "h3@a@text"
},
"ruleToc": {
"chapterList": ".episode-list-d5uu@li",
"chapterName": "a@text",
"chapterUrl": "a@href"
},
"searchUrl": "@js:\njava.put(\"key\",key);\nresult = \"https:\/\/www.d5uu.com\/search.php,\" + JSON.stringify({\n \"body\": \"searchword={{key}}\",\n \"method\": \"POST\"\n});\nresult;",
"weight": 0
}