github repo delete auto confirm

auto complete the confirm input when deleting a repo on github

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         github repo delete auto confirm
// @namespace    http://tampermonkey.net/
// @version      0.0.3
// @description  auto complete the confirm input when deleting a repo on github
// @author       remisiki
// @match        https://github.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=github.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    // https://stackoverflow.com/a/56760883
    const rs = history.replaceState;
    history.replaceState = () => {
        rs.apply(history, arguments); // preserve normal functionality
        window.dispatchEvent(new Event("locationchange")); // do something extra here; raise an event
    };

    window.addEventListener("locationchange", () => {
        if (window.location.href.match(/https:\/\/github\.com\/.*?\/settings/g)) {
            const handler = () => {
                document.querySelector("#repo-delete-proceed-button").click();
                setTimeout(() => {
                    document.querySelector("#repo-delete-proceed-button").click();
                    setTimeout(() => {
                        const confirmBox = document.querySelector("#verification_field");
                        confirmBox.value = confirmBox.getAttribute("data-repo-nwo");
                        confirmBox.dispatchEvent(new Event("focus"));
                        confirmBox.dispatchEvent(new Event("input"));
                    }, 100);
                }, 0);
            };
            document.querySelector("#dialog-show-repo-delete-menu-dialog").addEventListener("click", handler);
        }
    });
})();