projang / 리체스 퍼즐 대시보드 개선

// ==UserScript==
// @name         리체스 퍼즐 대시보드 개선
// @version      1.0
// @description  퍼즐 대시보드 도표에 테마별 점수를 표기하고 최대 기간을 90일에서 10년으로 늘립니다.
// @match        https://lichess.org/training/dashboard/*/dashboard
// @author       projang
// @license MIT
// @copyright 2021, projang (https://openuserjs.org/users/projang)
// @updateURL https://openuserjs.org/meta/projang/리체스_퍼즐_대시보드_개선.meta.js
// ==/UserScript==

function index(str, pat, n) {
  var L = str.length,
    i = -1;
  while (n-- && i++ < L) {
    i = str.indexOf(pat, i);
    if (i < 0) break;
  }
  return i;
}

function main() {
  document.querySelector("a:nth-child(10)").insertAdjacentHTML('afterend', '<a href="/training/dashboard/3650/dashboard">10년</a>')

  const s = document.querySelector('body > script:nth-child(11)').text
  const rawjson = s.slice(index(s, '{', 2), index(s, '}', 3) + 1)
  const json = JSON.parse(rawjson)
  const score = json.radar.datasets[0].data
  const labels = json.radar.labels
  json.radar.labels = labels.map((v, i) => v + " (" + score[i] + ")")
  lichess.load.then(() => {
    LichessPuzzleDashboard.renderRadar(json)
  })
}

main()