Kagi Assistant Auto-Scroll

Automatically scroll down when new content is added to Kagi Assistant

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Kagi Assistant Auto-Scroll
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Automatically scroll down when new content is added to Kagi Assistant
// @author       You
// @match        *://kagi.com/assistant*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // The main container that holds the chat messages
    const targetSelector = '.main-center-box';

    // Function to scroll to bottom
    function scrollToBottom() {
        const container = document.querySelector(targetSelector);
        if (container) {
            container.scrollTop = container.scrollHeight;
        }
    }

    // Set up a mutation observer to watch for changes
    const observer = new MutationObserver((mutations) => {
        let shouldScroll = false;

        // Check if content was added
        mutations.forEach((mutation) => {
            if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                shouldScroll = true;
            } else if (mutation.type === 'characterData') {
                shouldScroll = true;
            }
        });

        if (shouldScroll) {
            scrollToBottom();
        }
    });

    // Function to initialize the observer when the target element exists
    function initObserver() {
        const target = document.querySelector(targetSelector);
        if (target) {
            observer.observe(target, {
                childList: true,
                subtree: true,
                characterData: true
            });
            console.log('Kagi Assistant Auto-Scroll: Observer initialized');

            // Initial scroll to bottom
            scrollToBottom();
        } else {
            // If target doesn't exist yet, try again shortly
            setTimeout(initObserver, 1000);
        }
    }

    // Start the initialization process
    initObserver();

    // Also scroll on window resize
    window.addEventListener('resize', scrollToBottom);
})();