This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/521876/1509922/Jimmy%20pc261690603.js
// ==UserScript==
// @name Jimmy pc261690603
// @namespace http://tampermonkey.net/
// @version 1.5
// @description 按顺序发送手机号码,并处理验证码和动态加载问题
// @author Your Name
// @match *://*/register
// @match *://*/register/SMSRegister
// @grant GM_log
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function () {
'use strict';
// 手机号码库
const phoneNumbers = [
"0187625738", "0187624851", "0187624857", "0187625064", "0187624715",
"0187624697", "0187624014", "0187623986", "0187623974", "0187625242",
"0187625260", "0187625265", "0187625285", "0187625179", "0187625150",
"0187625202", "0187625211", "0187625226", "0187624253", "0187623652",
"0187624605", "0187624629", "0187624650", "0187623929", "0187624865",
"0187625014", "0187625034", "0187623713", "0187623709", "0187624791",
"0187624796", "0187631187", "0187633654", "0187625945", "0187625915",
"0187625910", "0187625894", "0187625850", "0187625826", "0187625796",
"0187622568", "0187626564", "0187626547", "0187626169", "0187626649",
"0187626613", "0187622610", "0187622583", "0187626572", "0187625987"
];
// 从 localStorage 获取当前索引
let currentIndex = parseInt(localStorage.getItem('currentIndex')) || 0;
// 检查元素是否加载完成
function waitForElement(selector, callback, interval = 500, timeout = 10000) {
const startTime = Date.now();
const timer = setInterval(() => {
const element = document.querySelector(selector);
if (element) {
clearInterval(timer);
callback(element);
} else if (Date.now() - startTime > timeout) {
clearInterval(timer);
console.error(`等待元素 ${selector} 超时`);
}
}, interval);
}
// 处理下一个手机号码
function processNextNumber() {
if (currentIndex >= phoneNumbers.length) {
console.log("所有手机号码已发送完毕。");
return;
}
console.log(`准备发送第 ${currentIndex + 1} 个号码: ${phoneNumbers[currentIndex]}`);
// 等待输入框加载
waitForElement('input[name="mobile"]', (inputField) => {
inputField.value = phoneNumbers[currentIndex];
console.log(`输入手机号码: ${phoneNumbers[currentIndex]}`);
waitForElement('.btn.warning.get-code', (sendButton) => {
// 点击发送按钮
sendButton.click();
console.log("点击发送按钮。");
// 等待确认按钮
setTimeout(() => {
const yesButton = document.querySelector('.swal2-confirm');
if (yesButton) {
yesButton.click();
console.log("点击确认按钮。");
// 检查滑动验证码
setTimeout(() => {
const captchaElement = document.getElementById('aliyunCaptcha-window-popup');
if (captchaElement && captchaElement.style.display === 'block') {
console.log("检测到滑动验证码,刷新页面并重新开始。");
location.reload();
return;
}
// 如果没有验证码,等待一段时间后处理下一个号码
setTimeout(() => {
currentIndex++;
localStorage.setItem('currentIndex', currentIndex);
location.reload();
}, 3000);
}, 1000);
} else {
console.error('未找到确认按钮,请检查页面结构。');
}
}, 1000);
});
});
}
// 启动脚本
window.onload = function () {
setTimeout(processNextNumber, 1000); // 页面加载后延迟1秒开始处理
};
})();