CHUNITHM get JSON file Plus

Get JSON file that can be used in https://reiwa.f5.si + Link to Best 30, My Constants Generator

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         CHUNITHM get JSON file Plus
// @version      1.0
// @description  Get JSON file that can be used in https://reiwa.f5.si + Link to Best 30, My Constants Generator
// @author       Alanimdeo
// @match        https://chunithm-net-eng.com/*
// @grant        none
// @license      MIT
// @namespace https://greasyfork.org/users/1384234
// ==/UserScript==

const css = `.jsonButton {
  background-color: #17a2b8;
  border-radius: 5px;
  border: 1px solid #17a2b8;
  display: block;
  width: fit-content;
  cursor: pointer;
  color: #ffffff;
  font-size: 1.5rem;
  padding: 0.7rem 1.4rem;
  text-decoration: none;
  margin: 1rem auto;
}
.green {
  background-color: #28a745;
  border: 1px solid #28a745;
}
.green:hover {
  background-color: #218838;
}
.green:active {
  background-color: #117828;
}
.cyan {
  background-color: #17a2b8;
  border: 1px solid #17a2b8;
}
.cyan:hover {
  background-color: #138496;
}
.cyan:active {
  background-color: #037486;
}`;

const d = document;

(function () {
  "use strict";
  const downloadJsonBtn = d.createElement("button");
  downloadJsonBtn.className = "jsonButton green";
  downloadJsonBtn.innerText = "Download JSON";
  downloadJsonBtn.addEventListener("click", () => {
    var e = d.createElement("script");
    e.src =
      "https://reiwa.f5.si/chuni_scoredata/main.js?" +
      String(Math.floor(new Date().getTime() / 1e3));
    d.body.appendChild(e);
  });
  const bestImageBtn = d.createElement("button");
  bestImageBtn.className = "jsonButton cyan";
  bestImageBtn.innerText = "Best 30";
  bestImageBtn.addEventListener("click", () =>
    window.open("https://reiwa.f5.si/newbestimg/chunithm_int")
  );
  const constBtn = d.createElement("button");
  constBtn.className = "jsonButton cyan";
  constBtn.innerText = "MY CONSTANTS";
  constBtn.addEventListener("click", () =>
    window.open("https://reiwa.f5.si/newmyconstants/chunithm-int")
  );
  const style = d.createElement("style");
  if (style.styleSheet) {
    style.styleSheet.cssText = css;
  } else {
    style.appendChild(d.createTextNode(css));
  }
  d.getElementsByTagName("head")[0].appendChild(style);
  const cf = d.querySelector(".clearfix");
  cf?.insertAdjacentElement("afterend", constBtn);
  cf?.insertAdjacentElement("afterend", bestImageBtn);
  cf?.insertAdjacentElement("afterend", downloadJsonBtn);
})();