Click All Expand Comments on Boosty To

автоматического раскрытия комментариев щелкает Показать еще или Читать далее

// ==UserScript==
// @name         Click All Expand Comments on Boosty To
// @include        https://boosty.to/*
// @grant       none
// @version     2.0
// @description автоматического раскрытия комментариев щелкает Показать еще или Читать далее
// @namespace https://greasyfork.org/users/789838
// ==/UserScript==

(function() {
    'use strict';

    // Селекторы для основных элементов
    const POST_SELECTOR = '[class*="Feed_itemWrap"], [class*="Feed-scss--module_item"]';
    const EXPAND_BUTTONS = [
        '.Post-scss--module_readMore', // "Читать далее"
        '.ShowMore-scss--module_showMore', // "Показать ещё"
        '[class*="CommentView-scss--module_showMore"]', // "Раскрыть комментарий"
        '[class*="readMore"]', // Все кнопки с readMore
        '[class*="showMore"]' // Все кнопки с showMore
    ].join(', ');

    // Обработчик кликов
    document.addEventListener('click', function(event) {
        // Находим ближайший пост, в котором был клик
        const post = event.target.closest(POST_SELECTOR);
        if (!post) return;

        // Ждем немного перед обработкой (на случай анимаций)
        setTimeout(() => {
            // Находим ВСЕ кнопки раскрытия внутри этого поста
            const buttons = post.querySelectorAll(EXPAND_BUTTONS);

            buttons.forEach(btn => {
                // Проверяем, что кнопка видима и кликабельна
                if (btn.offsetParent &&
                    !btn.disabled &&
                    getComputedStyle(btn).display !== 'none') {

                    // Имитируем настоящий клик
                    btn.dispatchEvent(new MouseEvent('click', {
                        bubbles: true,
                        cancelable: true,
                        view: window
                    }));

                    // Двойной клик для некоторых кнопок
                    if (btn.className.includes('showMore') || btn.className.includes('readMore')) {
                        setTimeout(() => {
                            btn.dispatchEvent(new MouseEvent('click', {
                                bubbles: true,
                                cancelable: true,
                                view: window
                            }));
                        }, 300);
                    }
                }
            });
        }, 100);
    });

    console.log('Boosty Click Expand script loaded - will work on post clicks');
})();