IMVU Peer Review Countdown with Button Control

Adds a 25-second countdown, disables the "Vote" button, auto-clicks the "no issues" checkbox, and clicks a specific button on a specific page using its onclick attribute.

Устаревшая версия за 05.09.2024. Перейдите к последней версии.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         IMVU Peer Review Countdown with Button Control
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Adds a 25-second countdown, disables the "Vote" button, auto-clicks the "no issues" checkbox, and clicks a specific button on a specific page using its onclick attribute.
// @author       YourName
// @match        https://www.imvu.com/peer_review/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Create a div to display the countdown
    const countdownDiv = document.createElement('div');
    countdownDiv.style.position = 'fixed';
    countdownDiv.style.top = '10px';
    countdownDiv.style.right = '10px';
    countdownDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    countdownDiv.style.color = 'white';
    countdownDiv.style.padding = '10px';
    countdownDiv.style.fontSize = '16px';
    countdownDiv.style.borderRadius = '5px';
    countdownDiv.innerHTML = 'Time remaining: 25 seconds';
    document.body.appendChild(countdownDiv);

    // Get the vote button and set it to disabled (with grayed out style)
    const voteButton = document.getElementById('btn_submit_vote');
    if (voteButton) {
        voteButton.disabled = true;
        voteButton.style.opacity = '0.5'; // Gray out the button when disabled
        voteButton.style.cursor = 'not-allowed'; // Show the "not allowed" cursor
    }

    // Start the countdown from 25 seconds
    let timeRemaining = 25;
    const countdownInterval = setInterval(() => {
        timeRemaining--;
        countdownDiv.innerHTML = `Time remaining: ${timeRemaining} seconds`;

        // When the countdown reaches 0, stop the interval and enable the button
        if (timeRemaining <= 0) {
            clearInterval(countdownInterval);
            countdownDiv.innerHTML = 'Countdown finished!';
            if (voteButton) {
                voteButton.disabled = false; // Enable the "Vote" button
                voteButton.style.opacity = '1'; // Restore normal button style
                voteButton.style.cursor = 'pointer'; // Change cursor back to pointer
            }
        }
    }, 1000); // 1000ms = 1 second

    // Function to wait for and click the "no issues" checkbox
    function clickCheckbox() {
        const checkbox = document.querySelector('input[name="no_issues"]');
        if (checkbox && !checkbox.checked) {
            checkbox.click();
        }
    }

    // Wait for the checkbox element to be available and click it
    const observer = new MutationObserver(() => {
        const checkbox = document.querySelector('input[name="no_issues"]');
        if (checkbox) {
            clickCheckbox();
            observer.disconnect(); // Stop observing once the checkbox is found and clicked
        }
    });

    // Start observing the document for changes to detect when the checkbox loads
    observer.observe(document.body, { childList: true, subtree: true });

    // Click the specific button on the specific page
    if (window.location.href === 'https://www.imvu.com/peer_review/') {
        // Locate the button using its onclick attribute
        const specificButton = Array.from(document.querySelectorAll('button'))
            .find(button => button.getAttribute('onclick') && button.getAttribute('onclick').includes("/next/peer_review"));

        if (specificButton) {
            specificButton.click();
        }
    }

})();