厂长资源
https://www.cz4k.com/
分享者: mengluo9960 (14501)发布时间: 08/21 14:45
发现无法刷新出来时,手动登录走一遍验证,重新刷新即可。
有些影视需要注册登录账号才可以看。
{
"articleStyle": 2,
"cacheFirst": false,
"customOrder": 3,
"enableJs": true,
"enabled": true,
"enabledCookieJar": true,
"header": "{\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; 23113RKC6C Build\/UKQ1.230804.001) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/142.0.6261.119 Mobile Safari\/537.36\"\n }",
"lastUpdateTime": 1785306561268,
"loadWithBaseUrl": true,
"loginUrl": "https:\/\/www.cz4k.com\/",
"preload": false,
"ruleArticles": ".bt_img ul li",
"ruleContent": "@js:\nvar doc = org.jsoup.Jsoup.parse(result);\nvar lines = doc.select(\".paly_list_btn a, .juji_list a\");\nif (lines.size() == 0) { \"未找到剧集线路\"; } else {\n function esc(s) { return String(s||\"\").replace(\/&\/g,\"&\").replace(\/<\/g,\"<\").replace(\/>\/g,\">\"); }\n\n \/\/ 提取剧名\n var titleNode = doc.select(\".moviedteail_tt h1\");\n var titleText = titleNode.size() > 0 ? titleNode.text().trim() : doc.select(\"title\").text().trim();\n\n var html = \"\";\n html += \"<style>\";\n html += \"*{box-sizing:border-box;}\";\n html += \".wrap{padding:8px;background:#f5f6fa;border-radius:12px;font-family:Arial;}\";\n html += \".top-title{font-size:18px;font-weight:bold;text-align:center;color:#222;margin-bottom:12px;line-height:1.4;word-wrap:break-word;}\";\n html += \".player-wrapper{position:relative;width:100%;aspect-ratio:16\/9;border-radius:12px;overflow:hidden;background:#000;margin-bottom:8px;}\";\n html += \".player-wrapper iframe{width:100%;height:100%;border:none;}\";\n \/* 新增历史记录提示样式 *\/\n html += \".history-tip{font-size:13px;color:#666;margin-bottom:10px;padding:4px 8px;background:#eef2ff;border-radius:6px;display:inline-block;}\";\n html += \".line-tabs{display:flex;gap:8px;flex-wrap:wrap;}\";\n html += \".line-tabs button{flex:0 0 auto;min-width:44px;border:none;padding:8px 12px;border-radius:8px;background:#eef2ff;font-size:14px;font-weight:600;cursor:pointer;text-align:center;}\";\n html += \".line-tabs button.active{background:#4f8cff;color:#fff;}\";\n html += \".loading-txt{color:#ccc;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;}\";\n html += \"<\/style>\";\n\n html += \"<div class='wrap'>\";\n \n \/\/ 如果提取到了剧名,就显示在最上方\n if (titleText) {\n html += \"<div class='top-title'>\" + esc(titleText) + \"<\/div>\";\n }\n\n html += \"<div class='player-wrapper' id='playerBox'>\";\n html += \"<div class='loading-txt'>准备播放...<\/div>\";\n html += \"<\/div>\";\n\n \/\/ 预留历史记录提示的容器\n html += \"<div id='historyTipWrapper' style='display:none;'><div class='history-tip' id='historyTip'><\/div><\/div>\";\n\n html += \"<div class='line-tabs' id='lineTabs'>\";\n for (var i = 0; i < lines.size(); i++) {\n var name = lines.get(i).text().trim() || (\"集数\" + (i + 1));\n var href = lines.get(i).attr(\"href\");\n html += \"<button id='tab_\" + i + \"' data-href='\" + href + \"' class='' onclick='switchLine(this,\" + i + \")'>\" + esc(name) + \"<\/button>\";\n }\n html += \"<\/div>\";\n html += \"<\/div>\";\n\n html += \"<script>\";\n \/\/ 安全地将当前剧名传递给 JS,作为 LocalStorage 的独立 key\n html += \"var pageTitle = decodeURIComponent('\" + encodeURIComponent(titleText) + \"');\";\n html += \"var storageKey = 'cz_hist_' + pageTitle;\";\n\n html += \"function switchLine(btn, idx) {\";\n html += \" var tabs = document.querySelectorAll('.line-tabs button');\";\n html += \" for (var i = 0; i < tabs.length; i++) tabs[i].classList.remove('active');\";\n html += \" btn.classList.add('active');\";\n \n \/\/ 保存独立历史记录并更新UI\n html += \" var epName = btn.innerText;\";\n html += \" try { \";\n html += \" localStorage.setItem(storageKey, JSON.stringify({idx: idx, name: epName}));\";\n html += \" var tipWrapper = document.getElementById('historyTipWrapper');\";\n html += \" tipWrapper.style.display = 'block';\";\n html += \" document.getElementById('historyTip').innerHTML = '🎬 你已观看到:<span style=\\\"color:#4f8cff;font-weight:bold;\\\">' + epName + '<\/span>';\";\n html += \" } catch(e) {}\";\n\n \/\/ 播放逻辑\n html += \" var targetUrl = btn.getAttribute('data-href');\";\n html += \" var playerBox = document.getElementById('playerBox');\";\n html += \" playerBox.innerHTML = '<div class=\\\"loading-txt\\\">解析真实播放源中...<\/div>';\";\n \n html += \" fetch(targetUrl).then(function(res){return res.text();}).then(function(text){\";\n html += \" var realSrc = '';\";\n html += \" var iframeReg = \/<iframe[^>]+src=['\\\"]([^'\\\"]+)['\\\"]\/i;\";\n html += \" var match = text.match(iframeReg);\";\n html += \" if(match && match[1] && match[1].indexOf('about:blank') === -1) {\";\n html += \" realSrc = match[1];\";\n html += \" } else {\";\n html += \" var jsReg = \/player_aaaa\\\\s*=\\\\s*(\\\\{.*?\\\\})\/;\";\n html += \" var jsMatch = text.match(jsReg);\";\n html += \" if(jsMatch && jsMatch[1]){ try { var obj = JSON.parse(jsMatch[1]); realSrc = obj.url; } catch(e) {} }\";\n html += \" }\";\n \n html += \" if(realSrc){\";\n html += \" if(realSrc.indexOf('\/\/') === 0) realSrc = 'https:' + realSrc;\";\n html += \" else if(realSrc.indexOf('\/') === 0) realSrc = 'https:\/\/www.cz01.org' + realSrc;\";\n html += \" playerBox.innerHTML = '<iframe src=\\\"' + realSrc + '\\\" allowfullscreen=\\\"true\\\" webkitallowfullscreen=\\\"true\\\" mozallowfullscreen=\\\"true\\\"><\/iframe>';\";\n html += \" } else {\";\n html += \" playerBox.innerHTML = '<div class=\\\"loading-txt\\\">无法提取源,<a href=\\\"' + targetUrl + '\\\" style=\\\"color:#4f8cff;\\\">点击跳转网页播放<\/a><\/div>';\";\n html += \" }\";\n html += \" }).catch(function(err){\";\n html += \" playerBox.innerHTML = '<div class=\\\"loading-txt\\\">网络请求失败,<a href=\\\"' + targetUrl + '\\\" style=\\\"color:#4f8cff;\\\">点击跳转网页播放<\/a><\/div>';\";\n html += \" });\";\n html += \"}\";\n\n \/\/ 初始化检查独立历史记录\n html += \"setTimeout(function(){\";\n html += \" var histStr = localStorage.getItem(storageKey);\";\n html += \" var tabs = document.querySelectorAll('.line-tabs button');\";\n html += \" var targetBtn = tabs[0];\";\n html += \" if(histStr) {\";\n html += \" try {\";\n html += \" var hist = JSON.parse(histStr);\";\n html += \" if(tabs[hist.idx]) { targetBtn = tabs[hist.idx]; }\";\n html += \" } catch(e) {}\";\n html += \" }\";\n html += \" if(targetBtn) targetBtn.click();\";\n html += \"}, 100);\";\n html += \"<\/script>\";\n\n html;\n}",
"ruleImage": "img@data-original",
"ruleLink": "a@href",
"ruleNextPage": "page",
"ruleTitle": "h3.dytit a@text",
"showWebLog": false,
"singleUrl": false,
"sortUrl": "搜索::\/boss1O1?q={{source.getVariable()}}&f=_all&p={{page}}\n豆瓣电影Top250::\/dbtop250\/page\/{{page}}\n最新电影::\/zuixindianying\/page\/{{page}}\n剧场版::\/dongmanjuchangban\/page\/{{page}}\n国产剧::\/gcj\/page\/{{page}}\n美剧::\/meijutt\/page\/{{page}}\n韩剧::\/hanjutv\/page\/{{page}}\n番剧::\/fanju\/page\/{{page}}",
"sourceGroup": "影视",
"sourceIcon": "https:\/\/c-ssl.dtstatic.com\/uploads\/blog\/202309\/22\/GgSb5GLzidPVw6g.thumb.400_0.jpg",
"sourceName": "厂长资源",
"sourceUrl": "https:\/\/www.cz4k.com\/",
"type": 0
}