Popmundo Developer Discussions

By Photodeus Last update Jul 15, 2009 — Installed 169 times. Daily Installs: 1, 2, 0, 1, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 3, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0

There are 3 previous versions of this script.

// ==UserScript==
// @name           Popmundo Developer Discussions
// @namespace      http://popodeus.com
// @description    Easily find threads where Popmundo developers have discussed in
// @include        http://www*.popmundo.com/Common/*
// @require        http://updater.usotools.co.cc/49400.js
// @copyright      http://popodeus.com/ all right reserved. Do not copy or redistribute.
// ==/UserScript==

var DEVPOST_FETCH_INTERVAL = 30*60; // 30 minutes
var loc = location.href.toLowerCase();

var IMG_STAR = 'http://popodeus.com/scripts/gfx/star_pink.png';
var W_DEV_FORUM = 'A developer has posted in this forum';
var W_DEV_THREAD = 'A developer has posted in this thread';

var time = GM_getValue('devposts.fetched');

function showDevFolders() {
	var folders = GM_getValue('devposts.data.folders').split(",");
	if (folders) {
		// /html/body/div[@id='cn']/table[3]/tbody/tr/td/table[1]/tbody/tr[10]/td[1]/img
		folders.length = folders.length - 1;
		for (var j = 0; j < folders.length; j++) {
			folders[j] = new RegExp('action=viewfolder&folderid=' + folders[j] + '$');
		}

		for (var i = 0; i < document.links.length; i++) {
			var link = document.links[i];
			for (j = 0; j < folders.length; j++) {
				if (link.href.match(folders[j])) {
					var img = link.parentNode.parentNode.getElementsByTagName('img')[0];
					img.src = IMG_STAR;
					img.title = W_DEV_FORUM;
				}
			}
		}
	}
}
function showDevThreads() {
	var threads = GM_getValue('devposts.data.threads').split(",");
	if (threads) {
		threads.length = threads.length - 1;
		//GM_log(threads);
		for (var j = 0; j < threads.length; j++) {
			threads[j] = new RegExp('action=view&threadid=' + threads[j] + '&');
		}
		for (var i = 0; i < document.links.length; i++) {
			var link = document.links[i];
			for (j = 0; j < threads.length; j++) {
				if (link.href.match(threads[j])) {
					var img = link.previousSibling.previousSibling;
					img.src = IMG_STAR;
					img.title = W_DEV_THREAD;
				}
			}
		}
	}
}

var data = GM_getValue('devposts.data');
if (!time || !data || (new Date().getTime() / 1000) - time > DEVPOST_FETCH_INTERVAL) {
	GM_log('Fetching new data...')
	GM_xmlhttpRequest({
		method:'GET',
		url:'http://popodeus.com/forum-search/devposts.jsp',
        onerror: function(r) {
            GM_log("Failed...");
            time = parseInt(new Date().getTime() / 1000);
            GM_setValue('devposts.fetched', time);
            GM_log(time + ": " + data);
        },
		onload: function(r) {
			if (r.status == 200) {
				var lines = r.responseText.split("\n");
				var data = "";
				var folderhash = { };
				var threadhash = { };
				for (var i = 0; i < lines.length; i++) {
					var m = lines[i].match(/(\d+)\.(\d+)\.(\d+)\.(\d+)/);
					if (m) {
						data += lines[i];
						folderhash[m[1]] = '';
						threadhash[m[2]] = '';
					}
				}
				GM_setValue('devposts.data', data);
                GM_log(data);
                var tmp = '';
				for (var key in folderhash) {
					tmp += key + ',';
				}
				GM_setValue('devposts.data.folders', tmp);
				tmp = '';
				for (key in threadhash) {
					tmp += key + ',';
				}
				GM_setValue('devposts.data.threads', tmp);

			}
            time = parseInt(new Date().getTime() / 1000);
            GM_setValue('devposts.fetched', time);
            GM_log(time + ": " + data);
		}
	});
}

if (loc.indexOf("action=viewfolder&folderid=") >= 0 ||
	loc.indexOf("action=viewfolderunread&folderid=") >= 0 ||
	loc.indexOf("menuforum.asp") >= 0) {

	showDevThreads();
}

if (location.href.match(/\/common\/cn.asp\?a(ction)?=options/i)) {
	showDevFolders();
}