SSS

Really highlights sss

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name        SSS
// @namespace   pendevin
// @description Really highlights sss
// @include     http://boards.endoftheinter.net/showmessages.php?*
// @include     https://boards.endoftheinter.net/showmessages.php?*
// @require     http://code.jquery.com/jquery-2.1.3.min.js
// @version     2
// ==/UserScript==


//add userIDs of people you want strobed
//this is apple juice and John Egbert
const STROBED=$([4897,22887]);


//ll breaks without noconflict jquery
this.$ = this.jQuery = jQuery.noConflict(true);

//livelinks compatiblity *JQUERY
//calls the function on each message-container in a document, including ones added by livelinks
function livelinks(func,extraParams){
	if(extraParams==undefined)
		extraParams=null;
	//run the function on the message-containers currently on the page
	$('#u0_1 .message-container').each(function(i,container){
		func(container,extraParams);
	});
	//run it on any message-containers added in the future
	$('#u0_1').on(
		'DOMNodeInserted',
		extraParams,
		function(e){
			if($(e.target).children('.message-container').length){
				$(e.target).children('.message-container').each(function(i,container){
					func(container,e.data);
				});
			}
		}
	);
}

//adds a style to a document and returns the style object *JQUERY
//css is a string, id is an optional string that determines the object's id
function addStyle(css,id){
	//create a style
	var style=$('<style type="text/css">');
	//add the css data to it
	style.html(css);
	if(id){
		//remove any style that has our id
		$('#'+id).remove();
		//give our style the id after removing the other stuff. idk if it matters, but i'm too lazy to find out
		style.attr('id',id);
	}
	//add the style into the head
	$('head').append(style);
	//we're outta here
	return style;
}

function strobe(userids){
	var colors=['#ff0000','#ff8000','#ffff00','#00ff00','#0000ff','#ff00ff'];
	var text=['#ffffff','#ffffff','#000000','#000000','#ffffff','#000000'];
	var css='';
	userids.each(function(i,userid){
		css+='.message-container>.message-top[userID="'+userid+'"], .quoted-message>.message-top[userID="'+userid+'"]{'+
			'background-color:'+colors[num]+';'+
			'color:'+text[num]+';'+
		'}'+
		'.message-container>.message-top[userID="'+userid+'"] a, .quoted-message>.message-top[userID="'+userid+'"] a{'+
			'color:'+text[num]+';'+
		'}'+
		'.message-container>.message-top[userID="'+userid+'"] a:visited, .quoted-message>.message-top[userID="'+userid+'"] a:visited{'+
			'color:'+text[num]+';'+
		'}'
	});
	addStyle(css,'sss');
	num=(num+1)%6;
}

//tags message-tops with userids
//should call it with livelinks imo *JQUERY
function userids(container){
	$(container).find('.message-top').each(function(i,top){
		top=$(top);
		//get userid attribute from the profile link
		top.attr('userID',top.children('a[href*="user="]').attr('href').split('user=')[1]);
	});
}

livelinks(userids);
var num=0;
window.setInterval(strobe,50,STROBED);