您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
红豆饭自动认领种子,带美化UI
// ==UserScript== // @name 红豆饭种子自动认领 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 红豆饭自动认领种子,带美化UI // @author bitptpt // @match *://*/userdetails.php* // @grant none // @run-at document-end // @license MIT // ==/UserScript== (function() { 'use strict'; // 创建优化后的控制面板 function createControlPanel() { // 创建样式 const style = document.createElement('style'); style.textContent = ` .auto-claim-panel { position: fixed; top: 20px; right: 20px; z-index: 99999; background: linear-gradient(135deg, #2b5876, #4e4376); border-radius: 10px; box-shadow: 0 8px 20px rgba(0,0,0,0.2); color: white; font-family: Arial, sans-serif; padding: 15px; width: 220px; transition: all 0.3s ease; opacity: 0.95; } .auto-claim-panel:hover { opacity: 1; box-shadow: 0 10px 25px rgba(0,0,0,0.3); } .auto-claim-title { font-size: 16px; font-weight: bold; margin-bottom: 15px; text-align: center; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.2); } .auto-claim-buttons { display: flex; justify-content: space-between; margin-bottom: 15px; } .auto-claim-btn { padding: 8px 15px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; transition: all 0.2s; width: 45%; box-shadow: 0 3px 6px rgba(0,0,0,0.1); } .auto-claim-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 10px rgba(0,0,0,0.15); } .auto-claim-start { background-color: #4CAF50; color: white; } .auto-claim-start:disabled { background-color: #888; cursor: not-allowed; transform: none; box-shadow: none; } .auto-claim-stop { background-color: #f44336; color: white; } .auto-claim-status { background-color: rgba(0,0,0,0.2); padding: 10px; border-radius: 5px; margin-bottom: 10px; min-height: 20px; font-size: 14px; } .auto-claim-stats { display: flex; justify-content: space-between; margin-top: 15px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.2); } .auto-claim-stat { text-align: center; flex: 1; } .auto-claim-stat-value { font-size: 20px; font-weight: bold; margin-bottom: 5px; } .auto-claim-stat-label { font-size: 12px; opacity: 0.8; } .auto-claim-footer { font-size: 11px; text-align: center; margin-top: 15px; opacity: 0.7; } .auto-claim-progress { height: 6px; background-color: rgba(255,255,255,0.2); border-radius: 3px; margin: 10px 0; overflow: hidden; } .auto-claim-progress-bar { height: 100%; background-color: #4CAF50; width: 0%; transition: width 0.3s ease; } .blink-status { animation: blink 1s linear infinite; } @keyframes blink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } `; document.head.appendChild(style); // 创建面板 const panel = document.createElement('div'); panel.className = 'auto-claim-panel'; panel.innerHTML = ` <div class="auto-claim-title">自动认领工具</div> <div class="auto-claim-buttons"> <button class="auto-claim-btn auto-claim-start">开始认领</button> <button class="auto-claim-btn auto-claim-stop">停止</button> </div> <div class="auto-claim-status">状态: 准备就绪</div> <div class="auto-claim-progress"> <div class="auto-claim-progress-bar"></div> </div> <div class="auto-claim-stats"> <div class="auto-claim-stat"> <div class="auto-claim-stat-value" id="claimed-count">0</div> <div class="auto-claim-stat-label">已认领</div> </div> <div class="auto-claim-stat"> <div class="auto-claim-stat-value" id="remaining-count">0</div> <div class="auto-claim-stat-label">待认领</div> </div> </div> <div class="auto-claim-footer">© 自动化认领工具 v1.2</div> `; document.body.appendChild(panel); return { panel, startButton: panel.querySelector('.auto-claim-start'), stopButton: panel.querySelector('.auto-claim-stop'), statusText: panel.querySelector('.auto-claim-status'), claimedCount: panel.querySelector('#claimed-count'), remainingCount: panel.querySelector('#remaining-count'), progressBar: panel.querySelector('.auto-claim-progress-bar') }; } // 主要功能函数 function initAutoClaimButtons() { let intervalId = null; let waitTime = 1000; // 初始等待时间1秒 let currentState = 'idle'; // 状态:idle, claiming, waitingForPopup, confirmingPopup let running = false; let claimedCount = 0; let processingAnimation = null; const { startButton, stopButton, statusText, claimedCount: claimedCountElement, remainingCount: remainingCountElement, progressBar } = createControlPanel(); // 更新认领统计 function updateStats() { // 计算剩余可认领数量 const remainingButtons = document.querySelectorAll('button[data-action="addClaim"][style*="display: flex"]').length; remainingCountElement.textContent = remainingButtons; // 更新进度条(如果有可认领按钮) const totalButtons = claimedCount + remainingButtons; if (totalButtons > 0) { const progress = (claimedCount / totalButtons) * 100; progressBar.style.width = `${progress}%`; } } // 点击认领按钮 function clickClaimButton() { // 更新统计 updateStats(); // 寻找所有显示的认领按钮 const claimButtons = document.querySelectorAll('button[data-action="addClaim"][style*="display: flex"]'); if (claimButtons.length > 0) { currentState = 'claiming'; statusText.textContent = `状态: 正在点击认领按钮...`; statusText.classList.add('blink-status'); // 点击第一个可见的认领按钮 claimButtons[0].click(); // 等待确认弹窗出现 currentState = 'waitingForPopup'; waitTime = 500; // 短暂等待确认弹窗 } else { statusText.textContent = `状态: 未找到认领按钮`; statusText.classList.remove('blink-status'); waitTime = 1000; // 重置等待时间 } } // 处理确认弹窗 function handleConfirmPopup() { // 查找确认弹窗中的OK按钮 const confirmButtons = document.querySelectorAll('.layui-layer-btn .layui-layer-btn0'); if (confirmButtons.length > 0) { statusText.textContent = '状态: 确认认领中...'; confirmButtons[0].click(); claimedCount++; claimedCountElement.textContent = claimedCount; // 更新统计 updateStats(); // 确认完成后,设置状态为idle,短暂等待后继续寻找下一个认领按钮 currentState = 'idle'; waitTime = 1000; // 确认后等待1秒再继续 } else { // 如果没找到确认按钮,可能弹窗未加载或已消失 if (currentState === 'waitingForPopup') { // 继续等待弹窗出现 waitTime = 300; // 短暂等待 statusText.textContent = '状态: 等待确认框出现...'; } else { // 重置状态 currentState = 'idle'; waitTime = 1000; } } } // 主循环函数 function mainLoop() { if (!running) return; switch (currentState) { case 'idle': clickClaimButton(); break; case 'waitingForPopup': case 'claiming': handleConfirmPopup(); break; default: currentState = 'idle'; } // 设置下一次执行 clearTimeout(intervalId); intervalId = setTimeout(mainLoop, waitTime); } // 开始自动点击 startButton.addEventListener('click', function() { if (running) return; running = true; currentState = 'idle'; statusText.textContent = '状态: 开始自动认领'; startButton.disabled = true; // 更新初始统计 updateStats(); // 开始主循环 mainLoop(); // 定时更新统计信息 processingAnimation = setInterval(updateStats, 2000); }); // 停止自动点击 stopButton.addEventListener('click', function() { if (intervalId) { clearTimeout(intervalId); intervalId = null; } if (processingAnimation) { clearInterval(processingAnimation); processingAnimation = null; } running = false; currentState = 'idle'; startButton.disabled = false; statusText.textContent = '状态: 已停止'; statusText.classList.remove('blink-status'); }); // 初始统计 updateStats(); } // 初始化 if (window.location.href.includes('details.php') || window.location.href.includes('userdetails.php')) { // 确保页面完全加载后再初始化 window.addEventListener('load', function() { setTimeout(initAutoClaimButtons, 500); }); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址