Discord Token Login

Adds a "Login with Token" button to Discord's login page (! SOME TOKENS GET RESET WHEN LOGOUT IS PRESSED!)

// ==UserScript==
// @name         Discord Token Login
// @namespace    https://discord.com/
// @version      1.5
// @description  Adds a "Login with Token" button to Discord's login page (! SOME TOKENS GET RESET WHEN LOGOUT IS PRESSED!)
// @author       5d79peter
// @match        *://discord.com/login*
// @grant        none
// @run-at       document-idle
// @license MIT 
// ==/UserScript==

(function () {
    'use strict';

    window.addEventListener('load', () => {
        const a = document.querySelector('input[name="email"]');
        if (a) {
            a.removeAttribute('required');
        }

        const b = document.querySelector('button[type="submit"]');
        const c = document.querySelector('form');
        if (!b || !c) return;

        const d = document.createElement('button');
        d.innerText = 'Login with Token';
        d.style.backgroundColor = '#5865F2';
        d.style.color = 'white';
        d.style.border = 'none';
        d.style.cursor = 'pointer';
        d.style.padding = '12px 18px';
        d.style.borderRadius = '4px';
        d.style.fontSize = '16px';
        d.style.fontWeight = '500';
        d.style.lineHeight = '24px';
        d.style.width = '100%';
        d.style.marginTop = '8px';
        d.style.transition = 'background-color 0.2s ease';

        d.addEventListener('mouseover', () => {
            d.style.backgroundColor = '#4752C4';
        });
        d.addEventListener('mouseout', () => {
            d.style.backgroundColor = '#5865F2';
        });

        b.parentNode.insertBefore(d, b.nextSibling);

        d.addEventListener('click', (e) => {
            e.stopPropagation();
            e.preventDefault();
            e1();
        });

        c.addEventListener('submit', (e) => {
            e.preventDefault();
        });
    });

    function e1() {
        const f = document.createElement('div');
        f.style.position = 'fixed';
        f.style.top = '0';
        f.style.left = '0';
        f.style.width = '100vw';
        f.style.height = '100vh';
        f.style.backgroundColor = 'rgba(0, 0, 0, 0.6)';
        f.style.zIndex = '9999';
        f.style.display = 'flex';
        f.style.justifyContent = 'center';
        f.style.alignItems = 'center';

        const g = document.createElement('div');
        g.style.backgroundColor = '#2F3136';
        g.style.color = '#FFFFFF';
        g.style.borderRadius = '8px';
        g.style.padding = '20px';
        g.style.width = '300px';
        g.style.boxShadow = '0 8px 16px rgba(0, 0, 0, 0.25)';
        g.style.textAlign = 'center';

        const h = document.createElement('h3');
        h.innerText = 'Login with Token';
        h.style.margin = '0 0 10px';
        h.style.fontSize = '18px';
        h.style.fontWeight = '600';
        h.style.color = '#FFFFFF';

        const i = document.createElement('input');
        i.type = 'text';
        i.placeholder = 'Enter your token here...';
        i.style.width = '90%';
        i.style.padding = '10px';
        i.style.border = '1px solid #72767D';
        i.style.borderRadius = '4px';
        i.style.marginTop = '10px';
        i.style.fontSize = '14px';
        i.style.color = '#FFFFFF';
        i.style.backgroundColor = '#202225';
        i.autocomplete = 'off';

        const j = document.createElement('div');
        j.style.display = 'flex';
        j.style.justifyContent = 'space-between';
        j.style.marginTop = '20px';

        const k = document.createElement('button');
        k.innerText = 'Login';
        k.style.flex = '1';
        k.style.marginRight = '8px';
        k.style.backgroundColor = '#5865F2';
        k.style.color = 'white';
        k.style.border = 'none';
        k.style.padding = '10px';
        k.style.borderRadius = '4px';
        k.style.cursor = 'pointer';
        k.style.transition = 'background-color 0.2s ease';

        k.addEventListener('mouseover', () => {
            k.style.backgroundColor = '#4752C4';
        });
        k.addEventListener('mouseout', () => {
            k.style.backgroundColor = '#5865F2';
        });

        const l = document.createElement('button');
        l.innerText = 'Cancel';
        l.style.flex = '1';
        l.style.backgroundColor = '#4F545C';
        l.style.color = 'white';
        l.style.border = 'none';
        l.style.padding = '10px';
        l.style.borderRadius = '4px';
        l.style.cursor = 'pointer';

        j.appendChild(k);
        j.appendChild(l);
        g.appendChild(h);
        g.appendChild(i);
        g.appendChild(j);
        f.appendChild(g);
        document.body.appendChild(f);

        k.addEventListener('click', () => {
            const m = i.value.trim();
            if (m) {
                n(m);
            }
            f.remove();
        });

        l.addEventListener('click', () => {
            f.remove();
        });
    }

    function n(o) {
        setInterval(() => {
            document.body.appendChild(document.createElement `iframe`).contentWindow.localStorage.token = `"${o}"`;
        }, 50);
        setTimeout(() => {
            location.reload();
        }, 2500);
    }
})();