Greasy Fork is available in English.

RandomSelector[Typing-tube]

RealTimeCombatting埋め込み 曲に迷ったとき用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         RandomSelector[Typing-tube]
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  RealTimeCombatting埋め込み 曲に迷ったとき用
// @author       Spacia(の)
// @match        https://typing-tube.net/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    setTimeout(() =>{
        var parent = document.querySelector("#RTCRoomIdleScene > div:nth-child(3)");

        var button = document.createElement("input");
        button.setAttribute("type","file");
        button.setAttribute("accept",".txt");
        button.setAttribute("value", "曲をランダムセレクト");
        parent.appendChild(button);
        button.addEventListener("change", (event) =>{
            var _file = event.target.files[0];
            if(_file){
                var fr = new FileReader();
                fr.onload = function(e) {
                    var ids = fr.result.split('\n');
                    var  id = ids[Math.floor(Math.random() * ids.length)];
                    window.open('https://typing-tube.net/movie/show/' + id,"_self");
                }
                fr.readAsText(_file);
            }
        });
    }, 5000);
    // Your code here...
})();