GlaDOS自动签到脚本

GlaDOS签到自动化脚本

// ==UserScript==
// @name         GlaDOS自动签到脚本
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  GlaDOS签到自动化脚本
// @author       溪枫
// @match        https://glados.one/console/checkin
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @license      GPL-3.0 License
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

function formattedDateStringOfToday() {
  let today = new Date();
  return today.toISOString().split("T")[0];
}

(function () {
  "use strict";

  // Your code here...
  let todayStr = formattedDateStringOfToday();
  let cachedDate = GM_getValue("lastCheckinDate");
  if (cachedDate === todayStr) {
    console.dir("今天已签到");
    return;
  }

  // 签到页
  let maxRetryTimes = 60;
  let retryTimes = 0;
  let retryInterval = setInterval(() => {
    retryTimes += 1;
    let checkinButton = document.querySelector(".ui.positive.button");
    if (checkinButton != null) {
      checkinButton.click();
      console.dir("已点击签到");
      clearInterval(retryInterval);
      GM_setValue("lastCheckinDate", todayStr);
    } else if (retryTimes >= maxRetryTimes) {
      clearInterval(retryInterval);
      console.dir("重试次数太多,已放弃签到");
    }
  }, 1000);
})();