油猴脚本。打开论坛自动签到。问的gpt。可能有bug,自己问gpt改吧。。。
// ==UserScript==
// @name NodeLoc自动签到
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 访问NodeLoc时自动点击有效的每日签到按钮
// @author YourName
// @match https://nodeloc.cc/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 创建状态标志
let isChecking = false;
// 核心检测函数
function checkIn() {
const checkinBtn = document.querySelector('.checkin-icon .checkin-button:not([disabled])');
if (checkinBtn && !isChecking) {
isChecking = true;
console.log('发现有效签到按钮,开始执行签到...');
// 模拟真实点击事件
const clickEvent = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
});
checkinBtn.dispatchEvent(clickEvent);
// 更新状态防止重复执行
setTimeout(() => {
console.log('签到操作已完成');
observer.disconnect();
}, 3000);
}
}
// 创建观察者监听DOM变化
const observer = new MutationObserver((mutations) => {
if (!isChecking) checkIn();
});
// 启动观察配置
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['class', 'disabled']
});
// 初始立即执行一次检测
window.addEventListener('load', checkIn);
// 添加周期性检测作为保险
const intervalCheck = setInterval(() => {
if (document.querySelector('.checkin-icon')) {
checkIn();
clearInterval(intervalCheck);
}
}, 2000);
})();