获取了当天总计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();