Popmundo EVIL Script

By Photodeus Last update Sep 2, 2009 — Installed 123 times. Daily Installs: 0, 0, 0, 0, 0, 0, 1, 2, 0, 5, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 1, 0, 1, 1, 0, 0, 0

There are 2 previous versions of this script.

// ==UserScript==
// @name           Popmundo Voting and Tagging
// @namespace      http://popodeus.com
// @description    Vote and tag forum posts in Popmundo. BETA VERSION. Do not install.
// @include        http://www*.popmundo.com/Common/*
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @require        http://updater.usotools.co.cc/49589.js
// @copyright      Popodeus.com. All rights reserved.
// @version        3
// ==/UserScript==

var version = 3;
var loc = document.location.href.toLowerCase();
var ref = document.referrer.toLowerCase();
var POSTURL = 'http://beta.popodeus.com/rpc/forum/vote/add';
var TAGLISTURL = 'http://beta.popodeus.com/taglist/forum';

function doit(send, handler) {
	if (!handler) handler = function() { };
	GM_xmlhttpRequest({
		method:'POST',
		url:POSTURL,
		headers: { "Content-Type": "application/x-www-form-urlencoded" },
		data: send,
		onload: handler
	})
}

// Vote on comics
if (loc.indexOf('gazette.asp?action=comics') > 0) {
	var iface = '<div id="popodeus-vote" style="display: none">';
	iface += '<span id="x-voting"><img src="http://beta.popodeus.com/scripts/gfx/vote_up.png" alt="+" id="x-up"/>' +
			 '  ' +
			 '<img src="http://beta.popodeus.com/scripts/gfx/vote_down.png" alt="-" id="x-down"/></span>' +
			 '</div>';

	$(document).ready(function() {
		function comicvote() {
			var txt = $(this).attr('alt');
			var m = loc.match( /comics&cityid=(\d+)&issue=(\d+)/);
			var img = this.parentNode.parentNode.previousSibling;
			var send = 'issue=' + m[2] + '&city=' + m[1] +
					   '&vote=' + encodeURIComponent(txt) +
					   '&url=' + encodeURIComponent(img.src);
			$('#popodeus-vote').fadeOut();
			doit(send, function(res) {
					GM_log(res.responseText);
			});
		}
		GM_addStyle(
				'#popodeus-vote { ' +
				'background-color: #474747; opacity: 0.85; ' +
				'position: absolute; margin-top: -30px; height: 21px;' +
				//'border-top: 1px solid #111; ' +
				'border-bottom: 2px solid #111; ' +
				'padding: 3px;' +
				'width: 500px;' +
				'font-size: 12px; ' +
				'z-index: 20; ' +
				'} ' +
				'#popodeus-vote img { ' +
				'cursor: pointer; ' +
				'}');
		$('body').append(iface);
		$('#x-voting > img').click( comicvote );
		$('td[colspan="2"][align="center"] > img').mouseenter(function() {
				$('#popodeus-vote').insertAfter($(this));
				$('#popodeus-vote')
						.css('width', $(this).attr('width')-5)
						.css('display', 'block')
						.css('left', $(this).position().left)
						;
		});
		$('#popodeus-vote').mouseleave(function() {
				$('#popodeus-vote').css('display', 'none');
		});
	});
}


// Vote on forum posts
if (loc.indexOf('cn.asp?a=v&t=') > 0 || loc.indexOf('cn.asp?action=view&threadid=') > 0) {
	GM_addStyle(
				'div.messageBox:hover { background: #FFE; } ' +
				'#x-info, #popodeus-vote { ' +
				'background-color: #474747; opacity: 0.9; ' +
				'position: absolute; margin-top: -10px; height: 21px;' +
				'border-top: 1px solid #111; ' +
				'border-bottom: 1px solid #111; ' +
				'padding: 3px;' +
				'width: 500px;' +
				'font-size: 12px; ' +
				'z-index: 20; ' +
				'}' +
				'#x-info { text-align: right; background-color: #DFD; font-weight: bold; color: black; z-index: 5; } ' +
				'#popodeus-vote img, #popodeus-vote > span {' +
				'cursor: pointer; ' +
				'z-index: 50; ' +
				'}' +
				'#popodeus-vote img { margin-top: -1px; } ' +
				'#x-voting { float: right; } ' +
				'#x-voting > img:hover { background-color: #999; } ' +
				'#x-tagging > span {' +
				'display: block; float: left; ' +
				'border: 1px solid #111; ' +
				'color: #000; ' +
				'margin-top: -2px; ' +
				'margin-right: 5px; ' +
				'padding: 3px 4px 3px 13px; ' +
				'-moz-border-radius: 6px; ' +
				'cursor: pointer; ' +
				'background-repeat: no-repeat; background-position: 1px 50%; ' +
				'}' +
				'.tag0 { background: #EDC url(http://popodeus.com/scripts/gfx/star_orange.png) } ' +
				'.tag1 { background: #D5D6ED url(http://popodeus.com/scripts/gfx/star_blue.png) } ' +
				'.tag2 { background: #ECC url(http://popodeus.com/scripts/gfx/star_red.png) } ' +
				'.tag3 { background: #CEC url(http://popodeus.com/scripts/gfx/star_green.png) } ' +
				'.tag4 { background: #ECE url(http://popodeus.com/scripts/gfx/star_pink.png) } ' +
				'.tag5 { background: #CCC url(http://popodeus.com/scripts/gfx/star_green.png) } ' +
				'span.tag0:hover { background-color: #AA6 } ' +
				'span.tag1:hover { background-color: #77A } ' +
				'span.tag2:hover { background-color: #A66 } ' +
				'span.tag3:hover { background-color: #6A6 } ' +
				'span.tag4:hover { background-color: #A6A } ' +
				'span.tag5:hover { background-color: #666 } ' +
				'');

	function hoovon() {
		var node = $('#popodeus-vote');
		node.insertAfter(this);
		$('#x-info').insertAfter(this);
		node.css('display', 'block');
	}
	function hoovoff() {
		$('#popodeus-vote').css('display', 'none');
	}
	function voteclick() {
		var txt = $(this).attr('alt');
		var node = this.parentNode.parentNode.previousSibling.previousSibling;
		var links = node.getElementsByTagName('a')
		for (var i=0; i<links.length; i++) {
			var link = links[i];
			if (link.href.indexOf('a=v&t=') > 0) {
				var tmp = link.href.match(/t=(\d+)&n=(\d+)/);
				var postid = tmp[1]+'.'+tmp[2];
				var dbg = "Voted " + txt + " on " + postid;
				var send = postid + "=" + encodeURIComponent(txt);
				$('#x-info').html(dbg);
				$('#x-info').css('display', 'block');
				$('#popodeus-vote').fadeOut('fast');
				doit(send, function(res) {
						GM_log(res.responseText);
						setTimeout(function() {
							$('#x-info').fadeOut('fast');
						}, 500);
					});
				break;
			}
		}
	}
	function tagclick() {
		var txt = $(this).html();
		var node = this.parentNode.parentNode.previousSibling.previousSibling;
		var links = node.getElementsByTagName('a')
		for (var i=0; i<links.length; i++) {
			var link = links[i];
			if (link.href.indexOf('a=v&t=') > 0) {
				var tmp = link.href.match(/t=(\d+)&n=(\d+)/);
				var postid = tmp[1]+'.'+tmp[2];
				var dbg = "Tagged as " + txt;
				var send = postid + "=" + encodeURIComponent(txt);
				doit(send, function(res) {
					GM_log(res.responseText);
				});
				$('#x-info').html(dbg).css('display', 'block');
				$('#popodeus-vote').fadeOut().fadeIn('fast');
				setTimeout(function() { $('#x-info').css('display', 'none') }, 520);	

				break;
			}
		}
	}
	//var tags = ['Amazing','Boo'];
	function activate() {
		var taglist = GM_getValue('taglist');
		var tags = taglist.split(",");

		var iface = '<div id="popodeus-vote" style="display: none;"><span id="x-tagging">';
		for (var i=0; i<tags.length; i++) {
			iface += '<span class="tag'+i+'">'+tags[i]+'</span>';
		}
		iface += '</span><span id="x-voting"><img src="http://beta.popodeus.com/scripts/gfx/vote_up.png" alt="+" id="x-up"/> <img src="http://beta.popodeus.com/scripts/gfx/vote_down.png" alt="-" id="x-down"/></span>' +
				 '</div><div id="x-info" style="display: none" >Vote info comes here</div>';

		$(document).ready(function() {
			$('body').append(iface);
			$('#x-voting > img').click( voteclick );
			$('#x-tagging > span').click( tagclick );
			$('div.messageBox').mouseenter(hoovon);
			$('#popodeus-vote').mouseleave(hoovoff);
			$('#cn').mouseleave(hoovoff);
		});
	}

	var default_list = 'Music,Relationships,Economics,Law,Other';
	var taglist = GM_getValue('taglist');
	var taglist_refresh = GM_getValue('taglist.refresh');
	var now = parseInt(new Date().getTime()/1000);
	if (!taglist || !taglist_refresh || now - taglist_refresh > 24*60*60) {
		//taglist = 'Core,Relationships,Law';
		GM_xmlhttpRequest({
			method:'GET',
			url:TAGLISTURL,
			onload: function(ret) {
				if (ret.status == 200) {
					var list = ret.responseText;
					GM_log("Refreshed tag list: " + list);
					GM_setValue('taglist.refresh', now);
					if (list.length > 0 && list.indexOf(",") > 0) {
						GM_setValue('taglist', list);
					} else {
						// boo...
						GM_setValue('taglist', default_list);
					}
					activate();
				}
			}
		});
	} else {
		activate();
	}
}