听说你抢不到课
< 脚本东南大学抢课助手修改版的反馈
有两个优化建议1. 添加一个计数器 三次请求一次暂停 因为1s内超过3次才会判定操作过快 这样子修改后两次请求会比现在的请求要快如下: requestCount++; // 增加请求计数器 if (requestCount % 3 === 0) { // 每三次请求后暂停 setTimeout(enrollCourse, interval); } else { enrollCourse(); // 否则立即执行下一次请求 }2. 添加一个本地时钟获取 到点自动开始 时间可以在界面添加一个输入框 再加一个定时开始的按钮定时器大概如下:function executeAtSpecificTime(hour, minute, callback) { const now = new Date(); const target = new Date(); // 设置目标时间为今天的指定小时和分钟 target.setHours(hour, minute, 0, 0); // 如果当前时间已经超过今天的目标时间,则设置目标时间为明天的同一时间 if (now.getTime() > target.getTime()) { target.setDate(target.getDate() + 1); } // 计算当前时间与目标时间的差值 const delay = target.getTime() - now.getTime(); if (delay > 0) { setTimeout(callback, delay); } else { console.log('目标时间已过,立即执行代码!'); callback(); }}用Date来计算
已经实现了前者。后者不打算实现了,意义不大。可以提前开始运行脚本,而不是“准时”开始运行。
登录以发表回复。
有两个优化建议
1. 添加一个计数器 三次请求一次暂停 因为1s内超过3次才会判定操作过快 这样子修改后两次请求会比现在的请求要快
如下: requestCount++; // 增加请求计数器
if (requestCount % 3 === 0) { // 每三次请求后暂停
setTimeout(enrollCourse, interval);
} else {
enrollCourse(); // 否则立即执行下一次请求
}
2. 添加一个本地时钟获取 到点自动开始 时间可以在界面添加一个输入框 再加一个定时开始的按钮
定时器大概如下:function executeAtSpecificTime(hour, minute, callback) {
const now = new Date();
const target = new Date();
// 设置目标时间为今天的指定小时和分钟
target.setHours(hour, minute, 0, 0);
// 如果当前时间已经超过今天的目标时间,则设置目标时间为明天的同一时间
if (now.getTime() > target.getTime()) {
target.setDate(target.getDate() + 1);
}
// 计算当前时间与目标时间的差值
const delay = target.getTime() - now.getTime();
if (delay > 0) {
setTimeout(callback, delay);
} else {
console.log('目标时间已过,立即执行代码!');
callback();
}
}
用Date来计算