LZT_ContestPro

Дополнение к розыгрышам на зелёнке

// ==UserScript==
// @name         LZT_ContestPro
// @namespace    MeloniuM/LZT
// @version      1.0
// @description  Дополнение к розыгрышам на зелёнке
// @author       MeloniuM
// @license      MIT
// @match        http*://zelenka.guru/threads/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    if(!XenForo._loadedScripts.contest) return;
    const closedTopic = document.querySelector('h1 > i.fa-lock');
    if (closedTopic) {
        console.log('Тема закрыта, лайк не ставим');
        return;
    }

    let $participateButton = $('.LztContest--Participate');
    if (!($participateButton.length)) return;
    $participateButton.get(0).scrollIntoView();
    //участие кнопкой Tab
    $(document).on('keydown', function(e){
        if(e.defaultPrevented) return;
        if (e.key == 'Tab' && $participateButton.is(':visible') && !$participateButton.hasClass('disabled')){
            e.preventDefault();
            $participateButton.click();
        }
    });

    //автолайк
    const likeButton = $('.firstPost a.LikeLink');
    const likeProbability = 0.5; // вероятность лайка 50%
    XenForo.ajax(likeButton.data('likesUrl'), {}, function(ajaxData){
        const countLeft = $(ajaxData.templateHtml).find('.likeCountLeft b').text().split(' ')[0];
        if (Number(countLeft) > 0){
            const randomValue = Math.random(); // генерируем случайное число от 0 до 1
            if (randomValue <= likeProbability) { // сравниваем с вероятностью лайка
                likeButton.click(); // если число меньше или равно вероятности лайка, ставим лайк
            }
        }else{
            console.log('Осталось 0 лайков');
        }
    });
})();