AtCoder Standings Excluding Unrated User

AtCoderの順位表から参加登録していないユーザを隠すスクリプトです。

이 스크립트를 설치하려면 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         AtCoder Standings Excluding Unrated User
// @namespace    https://hals.one/
// @version      0.2.2
// @description  AtCoderの順位表から参加登録していないユーザを隠すスクリプトです。
// @author       HalsSC
// @match        https://atcoder.jp/contests/*/standings
// @exclude      https://atcoder.jp/contests/*/standings/json
// @license      MIT
// @grant        none
// ==/UserScript==

const delay = 1000;

// 順位表の中で参加登録していないユーザの行を見つけ、hidden属性をtrueにする関数
function hidden_unrated(){
    setTimeout((function(){
    const unrated_users = document.querySelectorAll("td.standings-rank");
    console.log(unrated_users);
    unrated_users.forEach(function(user) {
        let element = user;
        if (element.innerHTML !== "-"){ return; } // 参加者はスキップ
        while (element && element.tagName !== "TR") {
            element = element.parentElement;
        }
        // FAに垢消しが含まれるとFA欄まで消えちゃう
        if(element && element.className !== "standings-fa"){
            element.hidden = true;
        }
    });
    }), delay);
}

// 「お気に入りのみ表示」にclickアクションとしてhidden_unrated関数を登録する関数
function set_onclick(){
    setTimeout((function(){
        const button = document.getElementById("checkbox-fav-only");
        button.addEventListener("click", hidden_unrated);
    }), delay);
}

// メイン関数
(function(){
    hidden_unrated();
    set_onclick();
})();