SteamDB Auto Activate

Автоматически активировать пакеты на сайте https://steamdb.info/freepackages/ и выводить отчет времени в консоли браузера.

目前為 2023-06-05 提交的版本,檢視 最新版本

// ==UserScript==
// @name         SteamDB Auto Activate
// @version      1.9
// @description  Автоматически активировать пакеты на сайте https://steamdb.info/freepackages/ и выводить отчет времени в консоли браузера.
// @match        https://steamdb.info/freepackages/*
// @namespace    Gleb237237
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    var countdownInterval;

    function activatePackages() {
        clearInterval(countdownInterval);
        var activateButton = document.getElementById('js-activate-now');
        if (activateButton && activateButton.offsetParent !== null) {
            activateButton.click();
        }
    }

    function displayTimeReport() {
        var countdown = 30;
        var stopButton = document.createElement('button');
        stopButton.textContent = 'Stop';
        stopButton.style.position = 'fixed';
        stopButton.style.bottom = '10px';
        stopButton.style.right = '10px';
        stopButton.style.zIndex = '9999';
        stopButton.style.padding = '10px';
        stopButton.style.backgroundColor = '#3498db';
        stopButton.style.color = '#fff';
        stopButton.style.border = 'none';
        stopButton.style.cursor = 'pointer';
        document.body.appendChild(stopButton);

        function updateReport() {
            console.log('%c Активация продуктов через: ' + countdown + ' сек.', 'color: #c0392b; font-size: 18px; font-weight: bold;');
        }

        countdownInterval = setInterval(function() {
            countdown--;
            updateReport();

            if (countdown <= 0) {
                clearInterval(countdownInterval);
                updateReport();
                activatePackages();
                stopButton.style.display = 'none';
            }
        }, 1000);

        stopButton.addEventListener('click', function() {
            clearInterval(countdownInterval);
            console.log('%c Отчет времени остановлен.', 'color: #c0392b; font-size: 18px; font-weight: bold;');
            stopButton.style.display = 'none';
        });

        window.addEventListener('keydown', function(event) {
            if (event.key.toLowerCase() === 's' && event.ctrlKey && !event.altKey && !event.shiftKey) {
                clearInterval(countdownInterval);
                stopButton.style.display = 'none';
            }
        });
    }

    var hideDemosButton = document.getElementById('js-hide-demos');
    if (hideDemosButton && hideDemosButton.offsetParent !== null) {
        hideDemosButton.click();
    }

    displayTimeReport();
})();