var originalShowHideGrpep = window.showhidegrpep; var expandedButtons = new Set(); function getResetTime() { var now = new Date(); var resetTime = new Date(now); resetTime.setHours(0, 0, 0, 0); if (now > resetTime) { resetTime.setDate(resetTime.getDate() + 1); } return resetTime; } function forceResetDownloadCount() { var currentDate = new Date().toDateString(); var lastResetDate = localStorage.getItem('lastResetDate'); if (currentDate !== lastResetDate) { localStorage.setItem('lastResetDate', currentDate); var refreshUrl = window.location.href; if (refreshUrl.indexOf('?') > -1) { refreshUrl += '&_nocache=' + Date.now(); } else { refreshUrl += '?_nocache=' + Date.now(); } window.location.replace(refreshUrl); } } function c4dCopyToClipboard(text) { if (!text) return; if (navigator.clipboard) { navigator.clipboard.writeText(text).then(function () { c4dShowCopyTip('已复制: ' + text); }).catch(function (err) { fallbackCopyText(text); }); } else { fallbackCopyText(text); } function fallbackCopyText(txt) { var input = document.createElement('textarea'); input.value = txt; document.body.appendChild(input); input.select(); try { document.execCommand('copy'); c4dShowCopyTip('已复制: ' + txt); } catch (e) { alert('复制失败,请手动复制: ' + txt); } document.body.removeChild(input); } } function c4dShowCopyTip(msg) { if (window.__copyTipTimeout) clearTimeout(window.__copyTipTimeout); var tip = document.getElementById('c4d-copy-tip'); if (!tip) { tip = document.createElement('div'); tip.id = 'c4d-copy-tip'; tip.style.cssText = "position:fixed;top:30%;left:50%;transform:translate(-50%,0);background:rgba(58,181,74,0.93);color:#fff;padding:12px 28px;border-radius:30px;z-index:9999;font-size:18px;text-align:center;box-shadow:0 3px 18px rgba(0,0,0,.13);"; document.body.appendChild(tip); } tip.textContent = msg||'复制成功'; tip.style.display = 'block'; window.__copyTipTimeout = setTimeout(function () { tip.style.display = 'none'; }, 1500); } function c4dProcessCopyElements(container) { if (!container || container.__c4dAlreadyProcessed) return; container.__c4dAlreadyProcessed = true; function recur(node) { if (node.nodeType === 3) { replaceNodeText(node); } else if (node.nodeType === 1 && !/(button|a|input|textarea|select)/i.test(node.tagName)) { var arr = Array.from(node.childNodes); arr.forEach(function (n) { recur(n); }); } } function replaceNodeText(textNode) { var txt = textNode.nodeValue; var hasMatch = false; var patterns = [ {reg: /解压密码[::]?\s*([a-zA-Z0-9\-\._\u4e00-\u9fa5]+)/g, label:"解压密码"}, {reg: /提取码[::]?\s*([a-zA-Z0-9\-_]{3,})/g, label:"提取码"}, {reg: /密码[::]?\s*([a-zA-Z0-9\-_]{3,})/g, label:"密码"}, ]; patterns.forEach(function(item) { txt = txt.replace(item.reg, function(all, code) { hasMatch = true; return item.label + ':' + code + ''; }); }); if (hasMatch) { var tmp = document.createElement('span'); tmp.innerHTML = txt; textNode.parentNode.replaceChild(tmp, textNode); } } recur(container); var allLinks = container.querySelectorAll('a[href*="pan.baidu.com"], a[href*="pan.quark.cn"], a[href*="www.123pan.com"], a[href*="cloud.189.cn"]'); allLinks.forEach(function(link) { var code = null; var linkContainer = link.parentNode; var walker = document.createTreeWalker( linkContainer, NodeFilter.SHOW_TEXT, null, false ); var foundLink = false; var currentNode; while (currentNode = walker.nextNode()) { if (!foundLink && currentNode.parentNode.contains(link)) { foundLink = true; continue; } if (foundLink) { var text = currentNode.textContent; if (text.includes('\n') || text.includes('http')) { var beforeNewline = text.split('\n')[0]; var match = beforeNewline.match(/(?:密码|提取码)[::]?\s*([a-zA-Z0-9\-_]{3,})/); if (match) { code = match[1]; } break; } var match = text.match(/(?:密码|提取码)[::]?\s*([a-zA-Z0-9\-_]{3,})/); if (match) { code = match[1]; break; } } } if (!code) { var nextSibling = link.nextSibling; var searchText = ''; var maxSearch = 5; var searchCount = 0; while (nextSibling && searchCount < maxSearch) { if (nextSibling.nodeType === 3) { searchText += nextSibling.textContent; } else if (nextSibling.nodeType === 1) { searchText += nextSibling.textContent || nextSibling.innerText || ''; } if (searchText.includes('http') && searchText.indexOf('http') > 0) { searchText = searchText.substring(0, searchText.indexOf('http')); break; } nextSibling = nextSibling.nextSibling; searchCount++; } var match = searchText.match(/(?:密码|提取码)[::]?\s*([a-zA-Z0-9\-_]{3,})/); if (match) { code = match[1]; } } if (code) { link.classList.add('c4d-copy-link'); link.setAttribute('data-copy-code', code); link.setAttribute('title', '点击复制提取码: ' + code); console.log('链接匹配成功:', link.href, '-> 复制码:', code); } }); container.addEventListener('click', function(e){ var span = e.target.closest('.c4d-copy-code'); if (span && span.dataset.code) { e.preventDefault(); e.stopPropagation(); c4dCopyToClipboard(span.dataset.code); return; } var link = e.target.closest('.c4d-copy-link'); if (link && link.dataset.copyCode) { setTimeout(function() { c4dCopyToClipboard(link.dataset.copyCode); }, 100); return; } }); } function c4dAutoBindCopyToAll() { var all = document.querySelectorAll('.c4d-hidden-content.active'); for(var i=0;i)<[^<]*)*<\/script>/gi, ''); if (sanitized.length > 3000) { console.warn("内容过大,将被裁剪", sanitized.length); sanitized = sanitized.substring(0, 3000) + '... [内容已截断]'; } return sanitized; } catch (e) { console.error("内容净化失败:", e); return content; } } function updateDownloadLimitMessage(maxDownloads, dayviews) { var now = new Date(); var resetTime = getResetTime(); var timeUntilReset = resetTime - now; var hoursLeft = Math.floor(timeUntilReset / (1000 * 60 * 60)); var minutesLeft = Math.floor((timeUntilReset % (1000 * 60 * 60)) / (1000 * 60)); return '' + '⏰' + '今日下载次数已达到上限' + '您今日的下载次数已达到上限(' + maxDownloads + '次),' + '将在' + hoursLeft + '小时' + minutesLeft + '分钟后重置' + '(每天0:00自动重置下载次数)' + '升级会员增加下载次数' + ''; } function c4dCheckAccess(downloadBtn) { if (!downloadBtn) return; var randomId = downloadBtn.getAttribute('data-randomid'); var contentContainer = document.getElementById('c4d-content-container-' + randomId); var downloadIcon = downloadBtn.querySelector('.c4d-download-icon'); var tid = downloadBtn.getAttribute('data-tid'); var hideType = downloadBtn.getAttribute('data-hide-type'); var requiredStars = downloadBtn.getAttribute('data-stars'); console.log('检查访问权限:', { 'hideType': hideType, 'stars': requiredStars, 'isLoggedIn': false, 'userLevel': "0" }); var isLoggedIn = false; if (!isLoggedIn) { downloadIcon.style.display = 'none'; contentContainer.innerHTML = ` 🔒 请先登录 您需要登录后才能下载此资源 立即登录 `; contentContainer.classList.add('active'); downloadBtn.classList.add('expanded'); downloadBtn.classList.add('no-permission'); expandedButtons.add(randomId); return; } if (hideType === 'sell') { var userLevel = "0"; console.log('处理sell标签:', { 'requiredStars': requiredStars, 'userLevel': userLevel }); if (parseInt(userLevel) >= parseInt(requiredStars)) { c4dTriggerDownload(downloadBtn, false); return; } downloadIcon.style.display = 'none'; contentContainer.innerHTML = ` 等级不足,无法下载! 下载等级 ${requiredStars == 1 ? "初级会员" : "高级会员"} → 我的等级 游客 立即升级会员 赞助会员后即可获得下载权限 `; contentContainer.classList.add('active'); downloadBtn.classList.add('expanded'); downloadBtn.classList.add('no-permission'); expandedButtons.add(randomId); return; } var isFreeDownload = (hideType === 'num' || hideType === 'empty'); var isUserGroupTag = (hideType === 't'); if (isFreeDownload && isLoggedIn) { c4dTriggerDownload(downloadBtn, false); return; } if (isUserGroupTag) { var userLevel = "0"; if (parseInt(userLevel) >= parseInt(requiredStars)) { c4dTriggerDownload(downloadBtn, false); return; } downloadIcon.style.display = 'none'; contentContainer.innerHTML = ` 等级不足,无法下载! 下载等级 → 我的等级 游客 立即升级会员 赞助会员后即可获得下载权限 `; contentContainer.classList.add('active'); downloadBtn.classList.add('expanded'); downloadBtn.classList.add('no-permission'); expandedButtons.add(randomId); } } function c4dLoadHiddenContent(downloadBtn, url, skipCountCheck) { var randomId = downloadBtn.getAttribute('data-randomid'); console.log("加载隐藏内容:", url, "跳过计数:", skipCountCheck, "随机ID:", randomId); if (downloadBtn.classList.contains('expanded')) { return; } var contentContainer = document.getElementById('c4d-content-container-' + randomId); var downloadIcon = downloadBtn.querySelector('.c4d-download-icon'); var tid = downloadBtn.getAttribute('data-tid'); var cachedContent = getDownloadedContent(tid, randomId); if (cachedContent && skipCountCheck) { downloadIcon.style.display = 'none'; contentContainer.innerHTML = cachedContent; contentContainer.classList.add('active'); downloadBtn.classList.add('expanded'); expandedButtons.add(randomId); enableTextSelection(contentContainer); c4dProcessCopyElements(contentContainer); console.log("从缓存加载内容"); return; } downloadIcon.style.display = 'none'; contentContainer.innerHTML = '加载中,请稍候...'; contentContainer.classList.add('active'); var xhr = new XMLHttpRequest(); var finalUrl = url; if (skipCountCheck) { finalUrl += (finalUrl.indexOf('?') !== -1 ? '&' : '?') + 'skipcountcheck=1'; } finalUrl += (finalUrl.indexOf('?') !== -1 ? '&' : '?') + 'isrealview=1&firstview=1&_=' + Date.now(); console.log("请求URL:", finalUrl); xhr.open('GET', finalUrl, true); xhr.timeout = 15000; xhr.onreadystatechange = function() { console.log("XHR状态变化:", xhr.readyState, xhr.status); if (xhr.readyState === 4) { if (xhr.status === 200) { var responseText = xhr.responseText; console.log("请求成功,响应长度:", responseText.length); if (!responseText || responseText.trim().length < 10) { contentContainer.innerHTML = ` ⚠️ 返回内容为空 服务器返回了空内容,请刷新页面重试 `; downloadBtn.classList.add('expanded'); expandedButtons.add(randomId); return; } if (responseText.indexOf('dsvue_hidegrpep_noviews') !== -1 || responseText.indexOf('今日可查看已达') !== -1 || responseText.indexOf('下载次数') !== -1) { contentContainer.innerHTML = updateDownloadLimitMessage( 0, 0 ); downloadBtn.classList.add('no-permission'); } else { try { var parser = new DOMParser(); var doc = parser.parseFromString(responseText, 'text/html'); var content = doc.querySelector('.showhide'); if (content) { contentContainer.innerHTML = content.innerHTML; var successMessage = document.createElement('div'); successMessage.className = 'c4d-success-message'; successMessage.textContent = '✓ 下载信息'; contentContainer.insertBefore(successMessage, contentContainer.firstChild); addToDownloadHistory(tid, randomId, contentContainer.innerHTML); } else { console.log("未找到.showhide元素,显示原始内容"); var cleanedContent = responseText.replace(/
您今日的下载次数已达到上限(' + maxDownloads + '次),' + '将在' + hoursLeft + '小时' + minutesLeft + '分钟后重置
(每天0:00自动重置下载次数)
您需要登录后才能下载此资源
赞助会员后即可获得下载权限
服务器返回了空内容,请刷新页面重试