// ==UserScript== // @name ao3 Comment Assist // @version 1.0 // @history 1.0 - basic functionality // @description prompts you to leave a comment when you've already left kudos // @include /https?://archiveofourown\.org/.*works/\d+/ // @grant none // @namespace https://greasyfork.org/users/36620 // @downloadURL none // ==/UserScript== //ACNOWLEDGEMENT: most of the method is cribbed from "ao3 no rekudos" by scriptfairy //Rest is cribbed from "Change Ao3 Kudos button text to Glory" by AlectoPerdita //I do not know enough JS to do shit like this on my own //https://greasyfork.org/en/scripts/406616-ao3-no-rekudos //https://greasyfork.org/en/scripts/390197-change-ao3-kudos-button-text-to-glory/code //SETUP// var assist_type = 0; //Set Comment Assist Mode notification type. You can choose from 3 different options. //1: A commenting guide for people who have never done it before. //2: A short comment prompt that gives you a jumping off point to write your own comment. //3: Adds a simple reminder to leave a comment. var fast_mode = false; //Set to "true" to turn on fast posting mode. //Hitting "enter" anywhere in the comment field will immediately send your comment. var lat = 500; //Delay in milliseconds, waiting for reply from OTW servers. (Check with CTRL+SHIFT+K) //Definitions var work_id, kudos, banner, kudo_btn, cmnt_btn, cmnt_field, id; work_id = window.location.pathname; work_id = work_id.substring(work_id.lastIndexOf('/')+1); banner = document.getElementById('kudos_message'); kudo_btn = document.getElementById('new_kudo'); cmnt_btn = document.getElementById('comment_submit_for_'+work_id); cmnt_field = document.getElementById('comment_content_for_'+work_id); // List of Assist Mode comment var assist_msg = Array( "[This is me testing fastposting. Plus extra kudos :)]", "[Comment assist long version]", "[Comment assist short version]", "[You've already left kudos. Why not leave a comment instead? :)]" ); //Fast Posting Mode function fastsend() { cmnt_field.addEventListener("keyup", function(event) { if (event.keyCode === 13) { cmnt_btn.click();} }); } //Assist mode basic functionality function assist() { cmnt_field.value = assist_msg[assist_type]; cmnt_btn.focus(); window.scrollBy(0,200); cmnt_field.focus(); if (fast_mode == true){ fastsend();} } function makeitwork() { console.log('Comment Assist lat check'); if (banner.classList.contains("kudos_error") == true) { assist();} } function delay(){ setTimeout(makeitwork,lat); } console.log("Assist Mode On"); kudo_btn.addEventListener("click", delay);