AO3 Random Nice Comments

Want to leave more kudos? Leave a random nice comment with the click of a button

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         AO3 Random Nice Comments
// @namespace    http://tampermonkey.net/
// @version      1.0
// @license      MIT
// @description  Want to leave more kudos? Leave a random nice comment with the click of a button
// @match        *://*.archiveofourown.org/*
// @grant        none
// ==/UserScript==

let anonName = 'Anon';
let anonEmail = '[email protected]';

function niceComment() {
    let niceComments = [
        'Kudos! ♥',
        'I loved this!',
        'This was great ♥',
        '♥ ♥ ♥',
        '<3 <3 <3',
        'This is great ♥',
        'Loved this <3',
        'Thank you for sharing this ♥',
        'Kudos ♥'
        ]

    let n = Math.floor(Math.random() * niceComments.length)
    return niceComments[n]
}

function getInputsByValue(value) {
    // kudos button has a universal id but the comment button id is unique to the work
    var allInputs = document.getElementsByTagName("input");
    var results = [];
    for(var x=0;x<allInputs.length;x++) {
        if(allInputs[x].value == value) {
            results.push(allInputs[x]);
        }
    }
    return results;
}

(function() {
    'use strict';

    if (!getInputsByValue('Comment').length || !getInputsByValue('Kudos ♥').length) {
        return null;
    }

    var submitButton = getInputsByValue('Comment')[0]
    var kudosButton = getInputsByValue('Kudos ♥')[0]
    var workID = submitButton.id.split('_')[3]

    const extraKudosButton = document.createElement("button")
    extraKudosButton.textContent = 'Comment Kudos ♥'
    extraKudosButton.onclick = function() {
        if (document.querySelectorAll('#comment_name_for_' + workID).length) {
            document.querySelector('#comment_name_for_' + workID).value = anonName;
            document.querySelector('#comment_email_for_' + workID).value = anonEmail;
        }

        document.querySelector('#comment_content_for_' + workID).value = niceComment();
        submitButton.click();
        extraKudosButton.remove(); // prevent extra clicks
    }

    kudosButton.parentNode.parentNode.insertBefore(extraKudosButton,kudosButton.parentNode)

})();