// ==UserScript==
// @name 白兔大转盘
// @version 1.0
// @author P
// @icon https://club.hares.top/favicon.ico
// @description 点击开始按钮后每3秒访问网址以进行抽奖
// @match https://club.hares.top/lucky-wheel.php
// @license MIT
// @grant GM_xmlhttpRequest
// @namespace http://tampermonkey.net/
// @downloadURL https://update.greasyfork.icu/scripts/512312/%E7%99%BD%E5%85%94%E5%A4%A7%E8%BD%AC%E7%9B%98.user.js
// @updateURL https://update.greasyfork.icu/scripts/512312/%E7%99%BD%E5%85%94%E5%A4%A7%E8%BD%AC%E7%9B%98.meta.js
// ==/UserScript==
(function() {
'use strict';
// 初始化奖项计数器
let prizeCounts = {
'参与奖': 0,
'六等奖': 0,
'五等奖': 0,
'四等奖': 0,
'三等奖': 0,
'二等奖': 0,
'一等奖': 0
};
let isDrawing = false; // 是否正在抽奖的标志
// 创建显示计数的提示框
const counterBox = document.createElement('div');
counterBox.style.position = 'fixed';
counterBox.style.top = '10px';
counterBox.style.right = '10px';
counterBox.style.padding = '10px';
counterBox.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
counterBox.style.color = 'white';
counterBox.style.borderRadius = '5px';
counterBox.style.zIndex = '9999';
counterBox.style.fontSize = '14px';
document.body.appendChild(counterBox);
// 更新提示框内容
function updateCounterBox() {
counterBox.innerHTML = '奖项计数:
';
for (const [prize, count] of Object.entries(prizeCounts)) {
counterBox.innerHTML += `${prize}: ${count}
`;
}
}
// 请求抽奖接口并更新奖项计数
function fetchPrizeData() {
if (!isDrawing) return;
const apiUrl = 'https://club.hares.top/api/general?action=wheel';
fetch(apiUrl, {
method: 'GET',
headers: {
'Authorization': 'Bearer undefined',
'x-requested-with': 'XMLHttpRequest'
}
})
.then(response => response.json())
.then(data => {
const rid = data.rid;
// 根据rid更新奖项计数
switch (rid) {
case 0:
prizeCounts['参与奖']++;
break;
case 6:
prizeCounts['六等奖']++;
break;
case 5:
prizeCounts['五等奖']++;
break;
case 4:
prizeCounts['四等奖']++;
break;
case 3:
prizeCounts['三等奖']++;
break;
case 2:
prizeCounts['二等奖']++;
break;
case 1:
prizeCounts['一等奖']++;
break;
default:
console.error('未知的奖项ID:', rid);
}
// 更新提示框
updateCounterBox();
})
.catch(error => {
console.error('请求抽奖接口失败:', error);
});
}
// 创建控制按钮
const startButton = document.createElement('button');
startButton.innerHTML = '开始抽奖';
startButton.style.position = 'fixed';
startButton.style.top = '350px';
startButton.style.right = '10px';
startButton.style.padding = '10px';
startButton.style.zIndex = '9999';
startButton.onclick = function() {
if (!isDrawing) {
isDrawing = true;
startButton.innerHTML = '抽奖中...';
}
};
document.body.appendChild(startButton);
const stopButton = document.createElement('button');
stopButton.innerHTML = '停止抽奖';
stopButton.style.position = 'fixed';
stopButton.style.top = '400px';
stopButton.style.right = '10px';
stopButton.style.padding = '10px';
stopButton.style.zIndex = '9999';
stopButton.onclick = function() {
isDrawing = false;
startButton.innerHTML = '开始抽奖';
};
document.body.appendChild(stopButton);
// 每3秒请求一次抽奖接口
setInterval(fetchPrizeData, 3000);
})();