// ==UserScript== // @name 【微赞直播】自动化Faker新版微赞话题管理界面的Bin // @namespace https://mdhyy.cn/ // @version 1.3 // @description 在打开微赞后台时,可以在【话题列表页】或【新版话题管理页】自己指定,是否自动打开旧版本管理界面。进入首页后自动打开【视频直播列表】 // @author 明灯花月夜 // @match https://live.vzan.com/* // @run-at document-start // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 创建开关和文本 function createToggle() { const currentUrl = window.location.href; const isCorrectPage = currentUrl.includes('https://live.vzan.com/admin/index.html?zbid=') && currentUrl.includes('TopicManage/TopicSetHome'); const toggleDiv = document.createElement('div'); toggleDiv.style.position = 'fixed'; if (isCorrectPage) { toggleDiv.style.top = '80px'; toggleDiv.style.right = '10px'; }else{ toggleDiv.style.top = '10px'; toggleDiv.style.left = '10px'; } toggleDiv.style.zIndex = '99999999'; toggleDiv.style.backgroundColor = '#fff'; toggleDiv.style.border = '3px solid #ccc'; toggleDiv.style.padding = '10px'; toggleDiv.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)'; const toggleLabel = document.createElement('label'); toggleLabel.textContent = '自动跳转到旧版话题管理: '; const toggleCheckbox = document.createElement('input'); toggleCheckbox.type = 'checkbox'; // 从localStorage获取开关状态 toggleCheckbox.checked = localStorage.getItem('autoRedirectEnabled') === 'true'; //toggleCheckbox.checked = true; // 默认为选中状态 toggleLabel.appendChild(toggleCheckbox); toggleDiv.appendChild(toggleLabel); document.body.appendChild(toggleDiv); // 监听开关状态变化 toggleCheckbox.addEventListener('change', function() { showModal("自动跳转旧版本后台功能:"+(toggleCheckbox.checked?"已打开":"已关闭")); localStorage.setItem('autoRedirectEnabled', toggleCheckbox.checked); }); // Make the toggle draggable makeDraggable(toggleDiv); } // Function to make an element draggable function makeDraggable(element) { let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; if (document.getElementById(element.id + "header")) { document.getElementById(element.id + "header").onmousedown = dragMouseDown; } else { element.onmousedown = dragMouseDown; } function dragMouseDown(e) { e = e || window.event; e.preventDefault(); pos3 = e.clientX; pos4 = e.clientY; document.onmouseup = closeDragElement; document.onmousemove = elementDrag; } function elementDrag(e) { e = e || window.event; e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; pos3 = e.clientX; pos4 = e.clientY; element.style.top = (element.offsetTop - pos2) + "px"; element.style.left = (element.offsetLeft - pos1) + "px"; element.style.width = element.style.width; } function closeDragElement() { document.onmouseup = null; document.onmousemove = null; } } // 跳转函数 function redirectToNewUrl() { const currentUrl = window.location.href; const isCorrectPage = currentUrl.includes('https://live.vzan.com/admin/index.html?zbid=') && currentUrl.includes('TopicManage/TopicSetHome'); if (isCorrectPage) { const queryParams = new URLSearchParams(window.location.search); const zbid = queryParams.get('zbid'); const hash = window.location.hash; const topicIdMatch = hash.match(/topicId=([0-9]+)/); const topicId = topicIdMatch ? topicIdMatch[1] : null; if (zbid && topicId) { const newUrl = `https://live.vzan.com/nlive/navmenu?zid=${zbid}&tid=${topicId}&backurl=TopicEditV2`; // 如果开关为开启状态,则跳转 if (document.querySelector('input[type="checkbox"]').checked) { showModal('正在跳转到旧版管理界面...'); window.location.href = newUrl; // 设置延时来点击包含 '账号登录' 的 span 元素 } } else { console.log('zbid or topicId is missing in the URL'); } } } // 等待DOM加载完毕后添加开关 window.addEventListener('load', function() { //监听函数START const currentUrl = window.location.href; const isCorrectPage = currentUrl.includes('https://live.vzan.com/admin/index.html?zbid=') && currentUrl.includes('TopicManage/TopicSetHome'); const isCorrectPage2 = currentUrl.includes('https://live.vzan.com/admin/index.html?zbid=') && currentUrl.includes('#/Live/Topic'); if (isCorrectPage||isCorrectPage2) { createToggle(); } redirectToNewUrl(); // 尝试自动跳转 // 检查是否为登录页面 if (currentUrl.includes('/login')||currentUrl.includes('workbench')) { // 设置登录状态为0并保存到localStorage localStorage.setItem('isLoggedOut', '0'); // 调用函数以显示弹窗,例如: showModal('状态重置,下次打开【直播管理】界面,会自动跳转到【视频直播列表】'); } // 从localStorage获取登录状态 var isLoggedOut = localStorage.getItem('isLoggedOut'); if (isLoggedOut === '0') { // 检查是否需要跳转 if (currentUrl.includes('industry-center/agent-promotion/liveTopic')) { showCountdown(); // 设置延时来跳转到列表 setTimeout(function() { // 提取zbid参数 const queryParams = new URLSearchParams(window.location.search); const zbid = queryParams.get('zbid'); var storedZbid = zbid; // 构建跳转URL var redirectUrl = 'https://live.vzan.com/admin/index.html?zbid=' + storedZbid + '#/Live/Topic'; // 跳转到新地址 window.location.href = redirectUrl; // 重置登录状态 localStorage.setItem('isLoggedOut', '1'); }, 4000); // 延迟2秒后执行点击 }// 检查是否需要跳转 }//判断 是否为0 //网页加载完毕 监听函数END }); function showCountdown() { // 创建一个div元素用于显示倒计时 var countdownDiv = document.createElement('div'); countdownDiv.style.position = 'fixed'; countdownDiv.style.top = '0'; countdownDiv.style.left = '50%'; countdownDiv.style.transform = 'translate(-50%, 0)'; countdownDiv.style.width = '100%'; countdownDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; countdownDiv.style.color = '#fff'; countdownDiv.style.textAlign = 'center'; countdownDiv.style.padding = '10px 0'; countdownDiv.style.zIndex = '9999'; countdownDiv.style.fontSize = '24px'; countdownDiv.style.fontFamily = 'Arial, sans-serif'; document.body.appendChild(countdownDiv); // 设置倒计时时间为4秒 var countdown = 4; // 更新倒计时的函数 var updateCountdown = function() { countdownDiv.textContent = '801微赞助手:倒计时: ' + countdown + ' 秒后,跳转直播列表界面。'; countdown -= 1; if (countdown < 0) { // 倒计时结束,移除倒计时提示 clearInterval(intervalId); document.body.removeChild(countdownDiv); } }; // 每秒更新一次倒计时 var intervalId = setInterval(updateCountdown, 1000); // 立即开始倒计时 updateCountdown(); } function showModal(message) { // 检查页面上是否已经存在弹窗,如果存在则移除 var existingModal = document.querySelector('.modal'); if (existingModal) { document.body.removeChild(existingModal); } // 创建一个div元素用于显示弹窗 var modalDiv = document.createElement('div'); modalDiv.classList.add('modal'); // 添加一个类名,方便后续查询和移除 modalDiv.style.position = 'fixed'; modalDiv.style.top = '0'; modalDiv.style.left = '50%'; modalDiv.style.transform = 'translateX(-50%)'; modalDiv.style.width = '100%'; modalDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; modalDiv.style.color = '#fff'; modalDiv.style.textAlign = 'center'; modalDiv.style.padding = '10px 0'; modalDiv.style.zIndex = '9999'; modalDiv.style.fontSize = '24px'; modalDiv.style.fontFamily = 'Arial, sans-serif'; modalDiv.textContent = "801微赞助手:"+message; document.body.appendChild(modalDiv); // 设置延迟时间为3秒 var delay = 2500; // 延迟后关闭弹窗的函数 var closeModal = function() { document.body.removeChild(modalDiv); }; // 设置延迟关闭弹窗 setTimeout(closeModal, delay); } })();