Via

By Lenny Domnitser Last update Oct 24, 2006 — Installed 246 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0
// ==UserScript==
// @name          Via
// @namespace     tag:domnit.org,2006-04:gmscripts
// @description   Log all referrers, and retrieve "via" links
// ==/UserScript==

/*
(C) 2006 Lenny Domnitser
Use this freely under the GNU GPL, http://www.gnu.org/licenses/gpl.html
*/

var referrers = GM_getValue('referrers.' + location.href, '');
if(referrers.length) {
  referrers = referrers.split(' ');
} else {
  referrers = [];
}
if(document.referrer && referrers.indexOf(document.referrer) == -1) {
  referrers.push(document.referrer);
  GM_setValue('referrers.' + location.href, referrers.join(' '));
}
if(referrers.length) {
  GM_registerMenuCommand('Via', function() {
    var htmlParts = ['<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">',
                     '<title>Referrers for ' + document.title + '</title>',
                     '<ul>'];
    for(var c = 0, referrer; referrer = referrers[c]; c++) {
      htmlParts.push('<li><a href="' + referrer + '">' + decodeURI(referrer) + '</a></li>');
    }
    htmlParts.push('</ul>');
    var html = htmlParts.join('\n');
    GM_openInTab('data:text/html;charset=utf-8,' + encodeURI(html));
  });
}