Code
// ==UserScript==
// @name blah2k6's d2jsp post blocker
// @description Hides posts from a defined list of users
// @namespace d2jsp.postblocker
// @include http://forums.d2jsp.org/topic.php?t=*&f=*
// ==/UserScript==
function addToBlockList(username)
{
var strList = GM_getValue("blocklist", "");
if(strList == "") GM_setValue("blocklist", username + ";");
else
{
if(strList.indexOf(username) == -1)
{
GM_setValue("blocklist", strList + username + ";");
window.location.reload();
}
}
}
function removeFromBlockList(username)
{
var strList = GM_getValue("blocklist", "");
if(strList.indexOf(username) != -1)
{
strList = strList.replace(username + ";", "");
GM_setValue("blocklist", strList);
window.location.reload();
}
}
function isInBlockList(username)
{
var strList = GM_getValue("blocklist", "");
if(strList.indexOf(username) != -1) return true;
else return false;
}
function getElementsByClassName(classname, par){
var a=[];
var re = new RegExp('\\b' + classname + '\\b');
var els = par.getElementsByTagName("*");
for(var i=0,j=els.length; i<j; i++){
if(re.test(els[i].className)){
a.push(els[i]);
}
}
return a;
}
function showPost(div, username, postID, fr, ftb, frContent, ftbContent)
{
if(frContent.indexOf("Hide Post") == -1) fr.innerHTML = '<a href="javascript:void(0)" id="h' + postID + '">Hide Post</a>' + frContent;
else fr.innerHTML = frContent;
ftb.innerHTML = ftbContent;
document.getElementById('h' + postID).addEventListener('click', function(){ createHTML(div, username, postID, fr, ftb) }, true);
}
function createHTML(div, username, postID, fr, ftb)
{
var br = document.createElement('BR');
var holder = document.createElement('B');
var frSave = fr.innerHTML;
var ftbSave = ftb.innerHTML;
if(isInBlockList(username))
{
fr.innerHTML = '<a href="javascript:void(0)" id="s' + postID + '">Show Post</a><a href="javascript:scroll(0,0)">Top</a>';
ftb.innerHTML = '<div class="foot ce ta"><b>Post by this user are blocked. <a href="javascript:void(0)" id="ub' + postID + '">Unblock</a></div>';
}
else
{
var colorBL = GM_getValue("blockLinkColor", "red");
holder.innerHTML += '<a href="javascript:void(0)" id="b' + postID + '"><font color="' + colorBL + '">Block Posts</font></a>';
var beforeEle = div.getElementsByTagName('DIV')[0];
div.insertBefore(holder,beforeEle);
div.insertBefore(br,beforeEle);
}
if(document.getElementById('b' + postID) != null) document.getElementById('b' + postID).addEventListener('click', function(){ addToBlockList(username) }, true);
else
{
document.getElementById('ub' + postID).addEventListener('click', function(){ removeFromBlockList(username) }, true);
document.getElementById('s' + postID).addEventListener('click', function(){ showPost(div, username, postID, fr, ftb, frSave, ftbSave) }, true);
}
}
function loadPage()
{
if(GM_getValue("blockLinkColor", "") == "")
{
GM_setValue("blockLinkColor", "red");
}
var dl = document.getElementsByTagName('DL');
var fr = getElementsByClassName('fR', document);
var bc1 = getElementsByClassName('bc1',document);
var dt = document.getElementsByTagName('DT');
var ftb = getElementsByClassName('ftb', document);
var name,postID,strDT,strName,strPostID,dlOffset,dtOffset,bc1Offset,frOffset, ftbOffset;
dlOffset = 0;
dtOffset = 0;
bc1Offset = 0;
frOffset = 1;
ftbOffset = 0;
for(var i=0;i<dl.length;i++)
{
if(dt[i + dtOffset].innerHTML == 'User Poll')
{
dtOffset++;
dlOffset++;
ftbOffset++;
}
strDT = dt[i + dtOffset].firstChild;
postID = strDT.name;
if(strDT.innerHTML.indexOf('<') == 0)
{
strDT = strDT.firstChild;
}
strName = strDT.innerHTML;
var idx = strName.indexOf('<');
if(idx != -1)
{
name = strName.substring(0,idx)
}
else
{
name = strName;
}
name = name.replace(/ /gi,'');
createHTML(bc1[i + bc1Offset],name,postID, fr[i + frOffset], ftb[i + ftbOffset]);
}
}
loadPage();
ANYONE WANNA TELL ME WERE U SEE A KEY LOGGER IN THERE? NOOBS LOOOOOOOOL