By timendum
Has 2 other scripts.
// ==UserScript==
// @name digg - add mirrors and alexadex
// @description Adds links to Coral (http://www.coralcdn.org/), MirrorDot (http://www.mirrordot.com/), the Google Cache (http://www.google.com/) and to Alexadex (http://alexadex.com/) to every link in the articles and comments
// @include http://digg.com/*
// @include http://*.digg.com/*
// @version 0.1
// @author Timendum
// ==/UserScript==
// Big ups to Valentin Laube ( http://userscripts.org/scripts/show/921 )
// Big ups to tyler ( http://userscripts.org/scripts/show/1807 )
// I stole most of it from him who stole from Valentin ;)
var coralcacheicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs%2B9AAAAgUlEQVQY042O0QnCQBQEZy0sFiEkVVxa8GxAuLOLgD3cVRKwAytYf05JkGgGFt7H8nZkG10UgBNwZE0F7j77JiIJGPlNFhGzgwOQd%2FQytrEJdjtbrs%2FORAqRZBvZBrQxby2nv5iHniqokquUgM%2FH8Hadh57HNG05rlMgFXDL0vE%2FL%2BEXVN83HSenAAAAAElFTkSuQmCC";
var mirrordoticon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs%2B9AAAAbklEQVQY05WQMRKEMAwDNzzqUobWv%2BBedvcK3EKZV4kmBiYFE9RYI3mssZIkRjD1Qnbfsvv2uJjdF6AApfELkpDEZ12XmHcefpJEiyrAF%2Fi1G8H3ajZPjOJVdPfMGV3N%2FuGlvseopprNdz2NFn4AFndcO4mmiYkAAAAASUVORK5CYII%3D";
var googleicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAiklEQVQY02MUjfmmFxPFgAuIxnz7jwNcU9BngSjae%2FbDxJUPj1z%2BxMDAYKPLlx8u72wswMDAwASRnrjyIQMDw%2BoW3XfbbfPD5SFchOGCHof2nHmPaTgTpmuEPA8LeR6GsKHSNrp8E1c%2B3Hv2A8QKG10%2BiDjUaRD7Qmsuw51GlMcYnXcE4AqSyRn3Abz4culPbiCuAAAAAElFTkSuQmCC";
var background_left = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAOCAYAAADqtqZhAAAAZklEQVQI153OuwmAMBhF4ZOk%2BBuFgJbqCu7gBI6UWZzAEawcRC0VhNikCFj4wNpbna%2B7CqAbmxpw6o5BRKwGnIjYsqjQQJtlOcYYNECapAAXnv2GP%2FyLfttWYoxowIUQ9nmZUN%2BjJzhhGYq8ft%2BLAAAAAElFTkSuQmCC";
var background_middle = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAOCAYAAADuQ3ZcAAAAHElEQVQI12NYdMzpP5O6mgYDEwMDAznEzVs3GADbhgXE7HIXAgAAAABJRU5ErkJggg%3D%3D";
var background_right = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAOCAYAAADqtqZhAAAAdklEQVQI153OIQ6DQBQA0elfsaYkJFtZegU8aoOr6wl6Fs6CqyonQOIQXAGQJWmymC82raAC3XHPDXVXPuuuzAEOj%2F76UdU34CU7X7DWpkAlxhicOwHcBCA5JgAIu%2F5GWMOGGCPL8gJoZJpHfjuVqGoD%2BHvRDl9lDiMntdjqogAAAABJRU5ErkJggg%3D%3D";
var tradeicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs%2B9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAU0lEQVQY04WQzQ6AMAiDvy4mPrZLfGlv9eBPpmOsCRdKW0BgOlhdq7AeO9d0VpvATh1lsCgvEcR9ox%2FVrRxhGS2PHDgGxN%2BgZC9pxfOrG8fKHPUEBHwgCHFBqzEAAAAASUVORK5CYII%3D";
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
function addIcons(node, isComment) {
var anchor, container, background_left, background_middle, background_right;
// add container
container = document.createElement("div");
container.className = "sam_container";
node.parentNode.insertBefore(container, node.nextSibling);
// add background
background_left = document.createElement("div");
background_left.className = "sam_backgroundimage_left";
container.appendChild(background_left);
background_middle = document.createElement("div");
background_middle.className = "sam_backgroundimage_middle";
container.appendChild(background_middle);
background_right = document.createElement("div");
background_right.className = "sam_backgroundimage_right";
container.appendChild(background_right);
// links in comments are not cached by mirrordot
if(isComment) {
//add mirrordot link
anchor = document.createElement("a");
anchor.href = "http://www.mirrordot.com/find-mirror.html?" + node.href;
anchor.title = "MirrorDot - Solving the Digg Effect";
anchor.className = "sam_mirrordoticon";
background_middle.appendChild(anchor);
}
//add coral cache link
anchor = document.createElement("a");
anchor.href = node.href;
anchor.host += ".nyud.net:8090";
anchor.title = "Coral - The NYU Distribution Network";
anchor.className = "sam_coralcacheicon";
background_middle.appendChild(anchor);
//add google cache link
anchor = document.createElement("a");
anchor.href = "http://www.google.com/search?q=cache:" + node.href;
anchor.title = "Google Cache";
anchor.className = "sam_googleicon";
background_middle.appendChild(anchor);
//add trade link
anchor = document.createElement("a");
anchor.href = "http://alexadex.com/ad/index.fcgi?page=url&url="+encodeURIComponent(node.href);
anchor.title = "Trade it";
anchor.className = "sam_tradeicon";
background_middle.appendChild(anchor);
// add a space so it wraps nicely
node.parentNode.insertBefore(document.createTextNode(" "), node.nextSibling);
}
addGlobalStyle("a.sam_coralcacheicon, a.sam_tradeicon, a.sam_mirrordoticon, a.sam_googleicon { padding-left: 15px; background: center no-repeat; }");
addGlobalStyle("a.sam_coralcacheicon { background-image: url(" + coralcacheicon + "); }");
addGlobalStyle("a.sam_mirrordoticon { background-image: url(" + mirrordoticon + "); }");
addGlobalStyle("a.sam_googleicon { background-image: url(" + googleicon + "); }");
addGlobalStyle("a.sam_tradeicon { background-image: url(" + tradeicon + "); }");
addGlobalStyle("a.sam_coralcacheicon:hover, a.sam_tradeicon:hover, a.sam_mirrordoticon:hover, a.sam_googleicon:hover { opacity: 0.5; }");
addGlobalStyle("div.sam_container { display:inline; white-space:nowrap; }");
addGlobalStyle("div.sam_backgroundimage_left, div.sam_backgroundimage_middle, div.sam_backgroundimage_right { display: inline; background-repeat: no-repeat; background-position: center; }");
addGlobalStyle("div.sam_backgroundimage_left { padding-left: 3px; background-image:url(" + background_left + "); }");
addGlobalStyle("div.sam_backgroundimage_middle { background-image:url(" + background_middle + "); background-repeat: repeat-x; }");
addGlobalStyle("div.sam_backgroundimage_right { padding-left: 3px; background-image:url(" + background_right + "); }");
var xpath = "//div[@class='news-body']/h3/descendant::a[starts-with(@href, 'http://')]";
var result = document.evaluate ( xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
for ( var i = 0; i < result.snapshotLength; i++ )
{
addIcons ( result.snapshotItem ( i ), true );
}