Meneame.net - Edición EDN

Mejora la visibilidad de ciertos enlaces en Menéame que requieren de una cuenta para ver las respuestas

// ==UserScript==
// @name         Meneame.net - Edición EDN
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Mejora la visibilidad de ciertos enlaces en Menéame que requieren de una cuenta para ver las respuestas
// @author       ᵒᶜʰᵒᶜᵉʳᵒˢ
// @match        *://*.meneame.net/*
// @run-at       document-end
// @icon         https://www.meneame.net/favicon.ico
// @grant        none
// @license      GNU GPLv3
// ==/UserScript==

(function() {
    'use strict';

    const A_N_D = ["://twitter.com", "://www.twitter.com", "://x.com", "://www.x.com"];
    const N_N_D = "://xcancel.com";
    const A_G_S = "x.com/i/grok/share";

    function replaceDomainInLinks() {
        document.querySelectorAll('a[href]').forEach(link => {
            A_N_D.forEach(oldDomain => {
                if (link.href.includes(oldDomain) && !link.href.includes(A_G_S)) {
                    link.href = sanitizeURL(link.href.replace(oldDomain, N_N_D));
                    link.removeAttribute("class");
                }
            });
        });
    }

    function sanitizeURL(url) {
        return url.replace(/\?.*$/, '');
    }

    replaceDomainInLinks();

    const Nuremberg = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.type === 'childList') {
                replaceDomainInLinks();
            }
        });
    });

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

})();