Repair autofill

Автозаполнение ремонта, запоминание ника, процента. `Передать` на кнопку энтер. Выставить дефолтный процент ремонта и клавишу для отправления в коде

// ==UserScript==
// @name         Repair autofill
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Автозаполнение ремонта, запоминание ника, процента. `Передать` на кнопку энтер. Выставить дефолтный процент ремонта и клавишу для отправления в коде
// @author       Something begins
// @license     none
// @match       https://www.heroeswm.ru/art_transfer*
// @match       https://my.lordswm.com/art_transfer*
// @match       https://www.lordswm.com/art_transfer*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru
// @grant        none
// ==/UserScript==
const sendKey = "Enter";
const defaultPercent = 101;
const defaultNickname = "";
const cost = 700;
const days = 0.05;
const battles = 1;
const allowRepair = true;
const nameInput = document.querySelector('input[oninput="check_button();"]');
const transferInput = document.querySelector("body > center > table:nth-child(2) > tbody > tr > td > table:nth-child(2) > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=radio]:nth-child(3)")
const costInput = document.querySelector("#gold");
const rentInput = document.querySelector("body > center > table > tbody > tr > td > table:nth-child(2) > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=radio]:nth-child(5)");
const repairInput = document.querySelector('input[onclick="show_arenda(5)"]');

const inputEvent = new Event('input', {
    bubbles: true,
    cancelable: true,
});
const clickEvent = new Event('click', {
    bubbles: true,
    cancelable: true,
});
let nick = localStorage.getItem("rent_autofill_nick");
if (!nick) {
    nick = defaultNickname;
    localStorage.setItem("rent_autofill_nick", nick);
}
let percent = localStorage.getItem("rent_autofill_percent");
if (!percent) {
    percent = defaultPercent;
    localStorage.setItem("rent_autofill_percent", percent);
}
percent = parseInt(percent);
nameInput.value = nick;
costInput.value = cost;
repairInput.checked = true;
repairInput.dispatchEvent(inputEvent);
repairInput.dispatchEvent(clickEvent);
setTimeout(fillRent, 100);

nameInput.addEventListener("keyup", event =>{
    nameInput.value = nameInput.value.replace("@", "").replace(",", "");
})
function fillRent(){
    document.querySelector("#ar > table > tbody > tr > td:nth-child(1) > input[type=text]").value = days;
    document.querySelector("#ar > table > tbody > tr > td:nth-child(3) > input[type=text]").value = battles;
    const allowRepairInput = document.querySelector("#ar > table > tbody > tr > td:nth-child(5) > input[type=checkbox]");
    if (allowRepair){
        const fullPrice = parseInt(document.querySelector("#rep > table.wb > tbody > tr:nth-child(6) > td:nth-child(4)").textContent.replace(/,/g, ""));
        const userPercent = localStorage.getItem("rent_autofill_checked") === "checked" ? percent : defaultPercent;
        const repairPrice = Math.round(fullPrice / 100 * userPercent);
        const percentInput = document.querySelector("#rep_price");
        percentInput.value = repairPrice;
        percentInput.dispatchEvent(inputEvent);
        percentInput.insertAdjacentHTML("afterend", `<input type="checkbox" id="remember_percent" ${localStorage.getItem("rent_autofill_checked")}>
<label for="remember_percent">Запомнить процент</label>`);
        monitorPercent();
    }
}
document.addEventListener("input", event => {
    if (event.target.getAttribute("oninput") === "check_button();"){
        localStorage.setItem("rent_autofill_nick", document.querySelector("input[oninput='check_button();']").value)
    }
    if (event.target.id === "remember_percent"){
        console.log("checked");
        const checked = document.querySelector("#remember_percent").checked ? "checked" : "";
        localStorage.setItem("rent_autofill_checked", checked);
        const userPercent = document.getElementById('comiss2').textContent.split("%")[0].trim();
        localStorage.setItem("rent_autofill_percent", userPercent);
    }
})
document.addEventListener("keyup", event => {
    if (event.key === sendKey) document.querySelector("input[value='Передать']").click();
})
function monitorPercent() {
    const target = document.getElementById('comiss2');
    const observer = new MutationObserver((mutationsList) => {
        for (let mutation of mutationsList) {
            if (mutation.type === 'childList' || mutation.type === 'characterData') {
                if (!document.querySelector("#remember_percent").checked) return;
                const userPercent = target.textContent.split("%")[0].trim();
                localStorage.setItem("rent_autofill_percent", userPercent);
            }
        }
    });

    const config = {
        childList: true,
        characterData: true,
        subtree: true
    };

    observer.observe(target, config);
}