计算 nodeseek 论坛签到获得鸡腿的平均值
获取了当天总计1903条签到数据,总鸡腿数量为9425,平均值为4.952706253。
以收集到的数据来说,略亏一丢丢。直接+5是最稳妥、长期收益最高的。
作案工具如下,复制到浏览器控制台中使用:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function fetchData(page) {
const url = `https://www.nodeseek.com/api/attendance/board?page=${page}`;
const response = await fetch(url);
if (response.ok) {
return response.json();
} else {
return null;
}
}
function convertToCSV(data) {
const header = ["id", "member_id", "day_id", "gain", "created_at", "member_name"];
const rows = data.map(item => [
item['id'], item['member_id'], item['day_id'], item['gain'], item['created_at'], item['member_name']
]);
const csvContent = [header, ...rows].map(e => e.join(",")).join("\n");
return csvContent;
}
function downloadCSV(csvContent, filename = 'attendance_data.csv') {
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement("a");
const url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", filename);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
async function main() {
let page = 1;
let allData = [];
while (true) {
const data = await fetchData(page);
console.log(data);
if (data && data['list'].length > 0) {
allData = allData.concat(data['list']);
page += 1;
await sleep(5000); // 等待5秒
} else {
break;
}
}
if (allData.length > 0) {
const csvContent = convertToCSV(allData);
downloadCSV(csvContent);
console.log("数据已保存到CSV文件中。");
} else {
console.log("未获取到数据。");
}
}
main();