AtCoderRecentGraph

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

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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);
})();