Torn Racing Vehicle Name Reverter

Changes the current Torn racing car names back to their previous real-world names.

// ==UserScript==
// @name         Torn Racing Vehicle Name Reverter
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  Changes the current Torn racing car names back to their previous real-world names.
// @author       Furms
// @match        https://www.torn.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const nameMap = {
        "Alpha Milano 156": "Alfa Romeo 156",
        "Bavaria M5": "BMW M5",
        "Bavaria X5": "BMW X5",
        "Bavaria Z8": "BMW Z8",
        "Bedford Nova": "Vauxhall Nova",
        "Bedford Racer": "Vauxhall Astra",
        "Chevalier CVR": "Chevrolet Corvette",
        "Chevalier CZ06": "Chevrolet Corvette Z06",
        "Coche Basurero": "Chevrolet El Camino",
        "Colina Tanprice": "Sierra Cosworth",
        "Cosmos EX": "Mazda RX-7",
        "Dart Rampager": "Dodge Charger",
        "Echo Quadrato": "Audi Quattro",
        "Echo R8": "Audi R8",
        "Echo S3": "Audi S3",
        "Echo S4": "Audi S4",
        "Edomondo ACD": "Honda Accord",
        "Edomondo IR": "Honda Integra",
        "Edomondo Localé": "Honda Civic",
        "Edomondo NSX": "Honda NSX",
        "Edomondo S2": "Honda S2000",
        "Invader H3": "Hummer H3",
        "Knight Firebrand": "Pontiac Firebird",
        "Lambrini Torobravo": "Lamborghini Gallardo",
        "Limoen Saxon": "Lotus Elise",
        "Lolo 458": "Ferrari 458",
        "Mercia SLR": "Mercedes-Benz SLR",
        "Nano Cavalier": "Nissan 350Z",
        "Nano Pioneer": "Nissan Skyline GT-R",
        "Oceania SS": "Subaru Impreza WRX STI",
        "Papani Colé": "Pagani Zonda",
        "Stormatti Casteon": "Bugatti Veyron",
        "Sturmfahrt 111": "Porsche 911",
        "Stålhög 860": "Volvo 860",
        "Tabata RM2": "Toyota MR2",
        "Trident": "Mitsubishi Lancer Evolution",
        "Tsubasa Impressor": "Subaru Impreza",
        "Volt GT": "Ford GT",
        "Volt RS": "Focus RS",
        "Veloria LFA": "Lexus LFA",
        "Weston Marlin 177": "Aston Martin 177"
    };

    function replaceNames(node) {
        if (node.nodeType === Node.TEXT_NODE) {
            for (const [fake, real] of Object.entries(nameMap)) {
                if (node.nodeValue.includes(fake)) {
                    node.nodeValue = node.nodeValue.replaceAll(fake, real);
                }
            }
        } else if (node.nodeType === Node.ELEMENT_NODE) {
            for (const child of node.childNodes) {
                replaceNames(child);
            }
        }
    }

    const observer = new MutationObserver(mutations => {
        for (const mutation of mutations) {
            for (const node of mutation.addedNodes) {
                replaceNames(node);
            }
        }
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // Initial run
    replaceNames(document.body);
})();