Never Let Chat Pause

Automatically clicks elements on Kick.com to keep the chat or other elements active, with a pause feature using the Delete key.

// ==UserScript==
// @name         Never Let Chat Pause
// @namespace    https://gf.qytechs.cn/en/users/1200587-trilla-g
// @version      5.0
// @description  Automatically clicks elements on Kick.com to keep the chat or other elements active, with a pause feature using the Delete key.
// @author       Trilla_G
// @match        *://*.kick.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    // Define the selector for the target element
    const targetSelector = '.betterhover\\:hover\\:bg-surface-higher';

    // State to track whether the script is paused
    let scriptPaused = false;

    // Set up an observer to watch for the target entering the viewport
    const observer = new IntersectionObserver(entries => {
        if (!scriptPaused) {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.click();
                }
            });
        }
    });

    // Function to monitor and observe the target
    function observeTarget() {
        if (scriptPaused) return; // Skip functionality when paused

        const target = document.querySelector(targetSelector);
        if (target) {
            observer.observe(target);
        }
    }

    // Set up a MutationObserver to detect changes in the page and find the target
    const mutationObserver = new MutationObserver(() => {
        if (!scriptPaused) observeTarget();
    });
    mutationObserver.observe(document.body, { childList: true, subtree: true });

    // Automatic clicking every 15 seconds
    const autoClickInterval = setInterval(() => {
        if (!scriptPaused) {
            const target = document.querySelector(targetSelector);
            if (target) {
                target.click();
            }
        }
    }, 15000); // 15 seconds

    // Pause the script for 15 seconds when the Delete key is pressed
    document.addEventListener('keydown', (event) => {
        if (event.key === 'Delete' && !scriptPaused) {
            console.log('Script paused for 15 seconds.');
            scriptPaused = true;

            // Disconnect observers and pause automatic actions
            observer.disconnect();
            mutationObserver.disconnect();

            // Resume script after 15 seconds
            setTimeout(() => {
                console.log('Script resumed.');
                scriptPaused = false;

                // Reconnect observers
                observeTarget();
                mutationObserver.observe(document.body, { childList: true, subtree: true });
            }, 15000);
        }
    });

    // Initial observation
    observeTarget();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址