reddit commentroversy

By frantk Last update Mar 5, 2009 — Installed 6,272 times. Daily Installs: 8, 12, 7, 3, 5, 7, 8, 2, 6, 6, 7, 10, 3, 8, 18, 0, 5, 0, 10, 5, 3, 5, 12, 5, 7, 20, 7, 16, 12, 10, 54, 13

There are 4 previous versions of this script.

// reddit commentroversy
// version 0.2.0 BETA
// 2009−01−30
// Copyright (C) 2008-2009, frantk
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
// 
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
// 
// This is a Greasemonkey user script.
// 
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
// 
// To uninstall, go to Tools/Manage User Scripts,
// select "reddit commentroversy", and click Uninstall.
// 
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
// 
// ==UserScript==
// @name          reddit commentroversy
// @description   Shows up and down votes for reddit comments
// @include       http://www.reddit.com/r/*/comments/*
// @include       http://www.reddit.com/user/*
// ==/UserScript==


var showPermanently = GM_getValue('showPermanently', true);

var commandText;
if (showPermanently) {
	commandText = "reddit - show comment votes on mouseover";
} else {
	commandText = "reddit - always show comment votes";
}
GM_registerMenuCommand(commandText, function () {
  GM_setValue('showPermanently', !showPermanently)
});


$ = unsafeWindow.jQuery;

function addVotes(items) {
    $.each(items, function(i, item) {
        var data = item.data;
        
        var votesText = '(+'+data.ups+'/-'+data.downs+')';
        var votes = $('<span></span>').addClass('votes').text(votesText);
        
        var tagline = $('.id-'+data.name+' > .entry .tagline');
        
        if (showPermanently) {
            votes.css({ 'margin' : '0 0.4em' });
            votes.insertAfter(tagline.find('.score'));
        } else {
            votes.css({ 'color' : '#03F', 'font-weight' : 'bold' });
            votes.hide();
            tagline.hover(
                function() { $(this).find('.votes').show(); },
                function() { $(this).find('.votes').hide(); }
            )
            votes.appendTo(tagline);
        }
        
        if (data.replies) {
            addVotes(data.replies.data.children);
        }
    });
}

$.getJSON(
	window.location.href.split('?')[0]+'.json',
	function(listing) {
	    if (listing[1]) {
	        addVotes(listing[1].data.children);
	    } else {
	        addVotes(listing.data.children);
	    }
    }
);