Nemam tri veze sa JS, ali mislim da mogu dovoljno da shvatim zarad prerade već gotove skripte.
Svrha skripte je da totalno izbaci iz konkretnog vBulletin 4.x foruma poruke zadatih korisnika. Želim da skripta radi
nativno u što više internet pregledača, tj. po mogućstvu bez Grease/Violent/Tampermonkey i sl. specifičnih dodataka sa svojim funkcijama.
Koristim Operu 12.15, a probano je i sa FF 22 i Greasemonkey 1.9 i stvaraju se sledeći
problemi:
1) Skripta pravilno eliminiše samo prvu neželjenu poruku na učitanoj strani, a sve naredne ignoriše i
2) Ukloni sve citirane poruke na strani bez obzira od koga su, umesto samo od predefinisanih korisnika,
Kod skripte je u spojleru, pa ako neko može da kaže zašto scumbaguje:
Kod:
// ==UserScript==
// @name Remover
// @description Totally remove Ignored Users Posts
// @include *showthread.php?* //OVDE IDE PUN URL
// ==/UserScript==
(function()
{
var allT;
var allR;
var plonk = new Array();
var ignore_threads_from = ["troll1", "troll2"]; //JUZERNEJMOVI KOJE TREBA IGNORISATI
for (var i = 0; i < ignore_threads_from.length; i++)
{
plonk[ignore_threads_from[i]] = ignore_threads_from[i];
}
allT = document.getElementsByTagName('table');
for (var i = 0; i < allT.length; i++)
{
if(allT[i].innerHTML.match(/This message is hidden because <strong>(\w+)<\/strong> is on your <a href="" target="_blank">ignore list<\/a>./))
{
allT[i].style.display="none";
//Add ignored user to list of ignored users
plonk[RegExp.$1] = RegExp.$1;
}
}
//else return;
// Remove posts that quote a user on the ignore list
for (var i = 0; i < allT.length; i++)
{
for (var x in plonk)
{
if(allT[i].innerHTML.match("Originally Posted by <strong>"+plonk[x]+"</strong>"))
{
allT[i].style.display="none";
}
if(allT[i].innerHTML.match("This message is hidden because <strong>"+plonk[x]+"</strong> is on your <a href=\"\" target=\"_blank\">ignore list</a>./"))
{
allT[i].style.display="none";
}
//if(allT[i].innerHTML.match("<a.*>"+plonk[x]+"</a>[^]*?<img.*alt=\""+plonk[x]))
//{
// allT[i].style.display="none";
//}
}
}
//U OVOM BLOKU TREBA DA SE DEŠAVA ELIMINACIJA, ALI RADI POGREŠNO
//OBZIROM DA SKRIPTA RADI PRVI PUT, CENIM DA JE PROBLEM SA PETLJOM
allR = document.getElementsByClassName('postbitignored postbitim'); //IGNORISANI KORISNICI
allP = document.getElementsByClassName('bbcode_quote'); //CITIRANI KORISNICI
// Remove posts started by a user on the ignore list
for (var i = 0; i < allR.length; i++)
{
for (var x in plonk)
{
if(allR[i].innerHTML.match(plonk[x]))
{
allR[i].style.display="none";
allP[i].style.display="none";
}
}
}
})();
P.S. za domare foruma: aman, promenite font za CODE tag