AtCoderRecentGraph

レーティンググラフを最近のだけにするボタンを追加

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         AtCoderRecentGraph
// @namespace    https://twitter.com/merom686
// @version      1.0
// @description  レーティンググラフを最近のだけにするボタンを追加
// @author       merom686
// @match        https://atcoder.jp/users/*
// @grant        none
// ==/UserScript==

(function(){
    if (typeof rating_history === 'undefined' || rating_history.length < 2) return;
    let rating_history_original = rating_history;
    let k = Math.min(64, Math.ceil(rating_history.length / 2));

    let button = document.createElement('button');
    button.className = 'btn btn-default';
    button.innerText = 'recent';
    button.onclick = () => {
        if (rating_history.length == k) {
            rating_history = rating_history_original;
        } else {
            rating_history = rating_history.slice(-k);
        }
        const e = new CustomEvent('load');
        window.dispatchEvent(e);
    };
    let a = document.getElementById('rating-graph-expand');
    a.parentNode.insertBefore(button, a.nextSibling);
})();