[Flightradar24] Bypass Timeout

Bypasses the 30-min timeout

// ==UserScript==
// @name        [Flightradar24] Bypass Timeout
// @namespace   HKR
// @match       https://www.flightradar24.com/*
// @grant       none
// @version     1.2
// @author      HKR
// @description Bypasses the 30-min timeout
// @run-at      document-start
// ==/UserScript==

function modifyConfigString(configStr, key, value) {
    let regex = new RegExp(`("${key}":\\s*)[^,]+`, 'g');
    let newConfigStr = configStr.replace(regex, `$1${value}`);

    return newConfigStr;
}

function patchNode(node) {
    const changeArr = [
        ['map.timeout.mins', 0]
        // room for more changes...
    ];

    changeArr.forEach(x => node.innerText = modifyConfigString(node.innerText, x[0], x[1]));
}

new MutationObserver(mutationsList => {
    mutationsList.forEach(mutationRecord => {
        [...mutationRecord.addedNodes]
          .filter(node => node.tagName === 'SCRIPT')
          .forEach(node => patchNode(node));
    });
}).observe(document, { childList: true, subtree: true });