NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name CF Voting Buffer // @namespace http://codeforces.com/profile/PikMike // @version 0.1 // @description Plugin for those who missclick that tiny vote button all the time! // @author PikMike // @include *codeforces.*/blog/entry/* // @grant none // ==/UserScript== (function() { 'use strict'; var votes = {}; $(".vote-for-comment").unbind("click"); $(".vote-for-comment").removeAttr("href"); $(".vote-for-comment").css("cursor", "pointer"); $("[votedirection='0']").attr("dd", "z"); $(".vote-for-comment").click(function(){ var vote = $(this); var commentId = vote.parent().attr("commentid"); var voteDirection = (vote.attr("dd") === 'x' ? 1 : vote.attr("dd") === 'y' ? -1 : 0); if (votes[commentId] === undefined || votes[commentId] === 0){ if (voteDirection !== 0){ if (voteDirection === 1) vote.find("img").attr("src", "http://st.codeforces.com/s/32530/images/actions/comment-voteup.png"); else vote.find("img").attr("src", "http://st.codeforces.com/s/32530/images/actions/comment-votedown.png"); vote.find("img").attr("popacity", "1.0"); vote.find("img").css("opacity", "1.0"); } votes[commentId] = voteDirection; vote.attr("votedirection", (votes[commentId] === 0 ? voteDirection.toString() : "0")); } else{ if (voteDirection !== 0){ vote.parent().children().first().find("img").attr("src", "http://st.codeforces.com/s/32530/images/actions/comment-voteup-blue.png"); vote.parent().children().last().find("img").attr("src", "http://st.codeforces.com/s/32530/images/actions/comment-votedown-blue.png"); vote.parent().find("img").attr("popacity", "0.35"); vote.parent().find("img").css("opacity", "0.35"); } votes[commentId] = 0; vote.parent().children().first().attr("votedirection", "1"); vote.parent().children().last().attr("votedirection", "-1"); } }); function apply(){ var fl = false; for (var entry in votes){ var vote; if (votes[entry] === 1) vote = $('span[commentid="' + entry + '"]').first().children().first(); else if (votes[entry] === -1) vote = $('span[commentid="' + entry + '"]').first().children().last(); else continue; fl = true; var commentId = entry; var commentRating = vote.parent().attr("data-commentRating"); var direction = votes[entry].toString(); $.post("/data/comment/vote", {commentId: commentId, _tta: Codeforces.tta(), vote: direction, commentRating: commentRating}, function() {}, "json"); } votes = {}; } var btn = $(".up").clone(); btn.html("✔"); btn.removeClass("up").addClass("comm"); btn.attr("title", "Save votes"); btn.click(apply); $(".up").after(btn); if ($(".new-comments-box").css("display") === "none"){ $(".up").hide(); $(".down").hide(); } else{ var hr = document.createElement("hr"); $(".comm").after(hr); } $(".new-comments-box").css({display: ''}); $(window).bind("beforeunload", apply); })();