By pkoopmanpk
Has 3 other scripts.
// ==UserScript==
// @name Webwereld Killfile 0.1.6
// @namespace WebwereldKillfile
// @description Webwereld met ingeklapte en gemarkeerde reacties van opgegeven personen
// @include http://www.webwereld.nl/comments/*
// @include http://webwereld.nl/comments/*
// ==/UserScript==
/* ================================================================================
Changelog:
0.1 (NB)
+ Eerste release
0.1.5 (NB)
+ verbeterde snelheid
0.1.5 (27-5-2008) Fix
+ Fout in de style opgelost, waardoor geblockte mensen geen rode balk kregen in FF3
0.1.6 (9-6-2008)
+ Er wordt eerst gepositioneerd op een anker. Daarna werden de ongewenste reacties
dicht geklapt. Hierdoor kan de gefocusde reactie volledig verloren gaan. Daarom
zet ik nog een keer de focus aan het einde van het script
================================================================================ */
addEventListener('load', function(event) {
// ============================================================
// Gebruikte variabelen
// ============================================================
var css = getObjectCss();
var nodes = document.getElementById('comments').getElementsByTagName('span');
var colorSet = new Array;
var peildatum = '';
var cd = '';
// ============================================================
// Variabelen die aanpasbaar zijn
// ============================================================
// Zet op false om de blocklist uit te schakelen
var gebruikBlocklist = true;
// Zet op false om de kleurtjes uit te schakelen
var gebruikKleuren = true;
// Hier users toevoegen (Gescheiden door een komma. Vergeet de spatie achter de naam niet)
var users = ['SED. ', 'baseline '];
// ============================================================
// MAINLINE
// ============================================================
// Creer de style
if ( gebruikBlocklist ) {
addCssRule(css, "#comments li cite .killfiled", "background-color:#F9D0D0; background-image: url(/images/layout/thumb_down.gif); background-repeat: no-repeat; background-position: left; padding-left: 20px;");
}
// Creer de kleurensets
if ( gebruikKleuren ) {
fillColorArray();
}
// Doorloop de nodes
for ( i = 0; i < nodes.length; i++ ) {
// Author blocklijst
if ( gebruikBlocklist && nodes[i].className == 'author' ) {
for ( j = 0; j < users.length; j++ ) {
if ( nodes[i].innerHTML == users[j] ) {
nodes[i].className = 'killfiled';
nodes[i].parentNode.parentNode.style.backgroundColor = '#E9E0E0';
hideComment(nodes[i].parentNode.parentNode.parentNode.parentNode.id);
break;
}
}
}
// Recente datums een kleurtje geven
if ( gebruikKleuren && nodes[i].className == 'date' ) {
// dd-mm-yyyy hh:mm
cd = nodes[i].innerHTML;
cd = cd.substring(6, 10) + cd.substring(3, 5) + cd.substring(0, 2) + cd.substring(11, 13) + cd.substring(14, 16);
if (cd > peilDatum ) {
for ( j = 0; j < colorSet.length; j++ ) {
if ( cd > colorSet[j][0] ) {
addColor( nodes[i], colorSet[j][1], colorSet[j][2]);
break;
}
}
}
}
}
// Plaats focus op de juiste positie
moveWindow ();
// ============================================================
// FUNCTIES
// ============================================================
// Haal css referentie
// ============================================================
function getObjectCss() {
var css = null;
try {
css = document.styleSheets[0];
if (!css) {
var head = document.getElementsByTagName("head").item(0);
head.appendChild(document.createElement("style"));
css = document.styleSheets[0];
}
}
catch (ex) {
css = document.createStyleSheet("styles.css");
}
return css;
}
// ============================================================
// Zet css tag
// ============================================================
function addCssRule(css, selector, rule) {
if (css.insertRule) { // ff
css.insertRule(""+selector+" { "+rule+" }", css.cssRules.length);
}
else if(css.addRule) { // ie
css.addRule(selector, rule);
}
}
// ============================================================
// Vul de array met kleurtags voor datering van berichten
// ============================================================
function fillColorArray() {
var localTime = new Date().getTime();
var minuten = 0;
var uren = 1;
var index = 0;
// Eerste uur gradaties van rood
var r = 255; var g = 192; var b = 192;
for (i = 0; i < 12; i++) {
localTime -= 300000; // 5 minuten
minuten += 5;
colorSet[index] = [createStringFromTime(localTime),
r + ', ' + g + ', ' + b,
minuten.toString() + 'm'];
index += 1;
if (g > 0) {
g -= 24;
b -= 24;
}
else {
r -= 24;
}
}
// Daarna een gradatie van geel via groen naar blauw
r = 255; g = 255; b = 0;
for (i = 0; i < 11; i++) {
localTime -= 3600000; // 1 uur
uren += 1;
colorSet[index] = [createStringFromTime(localTime),
r + ', ' + g + ', ' + b,
uren.toString() + 'u'];
index += 1;
r -= 15; g -= 5; b += 5;
}
for (i = 0; i < 11; i++) {
localTime -= 3600000; // 1 uur
uren += 1;
colorSet[index] = [createStringFromTime(localTime),
r + ', ' + g + ', ' + b,
uren.toString() + 'u'];
index += 1;
r -= 12; g -= 10; b += 15;
}
peilDatum = createStringFromTime(localTime);
}
// ======================================================================
// Maak een string van een time
// ======================================================================
function createStringFromTime(lt) {
var ld = new Date;
var cr = '';
var h = 0;
ld.setTime(lt);
// Year
cr = ld.getFullYear().toString();
// Month
h = ld.getMonth() + 1;
if ( h < 10 ) cr += '0';
cr += h.toString();
// Day
h = ld.getDate();
if ( h < 10 ) cr += '0';
cr += h.toString();
// Hours
h = ld.getHours();
if ( h < 10 ) cr += '0';
cr += h.toString();
// Minutes
h = ld.getMinutes();
if ( h < 10 ) cr += '0';
cr += h.toString();
return (cr);
}
// ======================================================================
// verberg een commentaar
// ======================================================================
function hideComment(commentId) {
if ( document.getElementById(commentId + '_container').className != 'disabled' ) {
document.getElementById(commentId + '_container').className = 'disabled';
document.getElementById(commentId + '_showhide').innerHTML = 'Toon reactie';
document.getElementById(commentId + '_collapser').src = '/images/layout/plus.gif';
}
}
// ======================================================================
// Zet een gekleurde dateringstag
// ======================================================================
function addColor(object, color, tag) {
object.innerHTML = '<span style="font-size:xx-small;border:thin solid gray;background:rgb(' + color + ');"> </span> '+object.innerHTML.substring(11) + ' <span style="font-size:xx-small;">-' + tag + '</span>';
}
// ======================================================================
// Herpositioneer
// ======================================================================
function moveWindow () {
var anchor = location.hash
if ( anchor != '' ) {
window.location.hash = anchor;
}
}
}, false);