#НетСловуАбаюдный

Возвращаем оффтопик обратно

// ==UserScript==
// @name         #НетСловуАбаюдный
// @namespace    https://lolz.live/
// @version      1
// @description  Возвращаем оффтопик обратно
// @author       Абаюдный
// @match        https://lolz.live/forums/8/*
// @match        https://lolz.live/threads/*
// @match        https://zelenka.guru/*
// @match        https://lzt.market/*
// @match        https://lolz.guru/*
// @match        https://lolz.live/*
// @match        https://zelenka.guru
// @match        https://lzt.market
// @match        https://lolz.guru
// @match        https://lolz.live
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    function cleanUp() {
        const titleElement = document.querySelector('h1[title]');
        if (titleElement && /абаюдный/i.test(titleElement.textContent)) {
            titleElement.textContent = titleElement.textContent.replace(/абаюдный/gi, "").trim();
            titleElement.setAttribute("title", titleElement.getAttribute("title").replace(/абаюдный/gi, "").trim());
        }

        const pageDescriptionLink = document.querySelector('#pageDescription a[href="forums/8/"]');
        if (pageDescriptionLink) {
            pageDescriptionLink.textContent = "Оффтопик";
        }

        const breadcrumbLink = document.querySelector('fieldset.breadcrumb a[href="https://lolz.live/forums/8/"] span[itemprop="name"]');
        if (breadcrumbLink) {
            breadcrumbLink.textContent = "Оффтопик";
        }

        const links = document.querySelectorAll('a[href="forums/8/"]');
        links.forEach(link => {
            if (/абаюдный/i.test(link.textContent)) {
                link.textContent = link.textContent.replace(/абаюдный/gi, "").trim();
            }
        });
    }

    cleanUp();

    const targetNodes = [
        document.querySelector('#pageDescription'),
        document.querySelector('.titleBar'),
        document.querySelector('fieldset.breadcrumb'),
        document.body // Для любых других ссылок
    ].filter(Boolean);

    targetNodes.forEach((node) => {
        const observer = new MutationObserver(() => {
            clearTimeout(node.debounce);
            node.debounce = setTimeout(cleanUp, 100);
        });

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