Auto Load GitHub Issue Comments

Automatically load all comments in GitHub issues

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Auto Load GitHub Issue Comments
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Automatically load all comments in GitHub issues
// @author       Your Name
// @match        https://github.com/*/*/issues/*
// @grant        none
// @license MIT
// ==/UserScript==

(function () {
    'use strict';

    let tryAttempts = 0;

    function loadComments() {
        let needRescheduling = false;

        // Find and click pagination buttons
        const paginationButtons = document.querySelectorAll(".ajax-pagination-btn[data-disable-with]");
        paginationButtons.forEach((button) => {
            button.click();
            needRescheduling = true;
            tryAttempts = 0; // Reset attempts if new pagination button is found
        });

        // Retry logic
        if (needRescheduling || tryAttempts < 5) {
            if (needRescheduling) {
                console.log("Loading more comments...");
            } else {
                console.log("Retrying to find comments to load...");
            }
            tryAttempts++;
            setTimeout(loadComments, 500); // Retry after 500ms
        } else {
            console.log("All comments loaded.");

            // Load resolved comments
            const resolvedButtons = document.querySelectorAll(".js-toggle-outdated-comments[data-view-component]");
            resolvedButtons.forEach((button) => {
                button.click();
            });

            console.log("All resolved comments loaded.");
        }
    }

    // Trigger on page load
    window.addEventListener('load', function () {
        console.log("GitHub Auto Comment Loader: Started");
        loadComments();
    });
})();