WikiGoogle

By Pirateshark Last update Mar 20, 2006 — Installed 1,947 times.
// ==UserScript==
// @name	WikiGoogle
// @namespace	http://pirateshark.com/sandbox/
// @description	injects wikipedia article link into a google search if available
// @include	http://www.google.com/*
// ==/UserScript==

if (!GM_xmlhttpRequest) {
	alert('Please upgrade to the latest version of Greasemonkey.');
	return;
}

function inject_wikipedia(rText){
	var allResults, thisResult;
	allResults = document.evaluate(
		"//p[@class='g']",
		document,
		null,    //namespace resolver function, only for xhtml+xml
		XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,  //can be ordered
		null);

	thisResult = allResults.snapshotItem(0); //can specify any search result here
	newElement = document.createElement('hr');
	thisResult.parentNode.insertBefore(newElement, thisResult);

	GM_log('page found, '+qs+' is query string');

	var reg1 = /%20/g;
	qsNice = qs.replace(reg1, " ");
	qsNice = qsNice.substring(0,1).toUpperCase() + qsNice.substring(1,qs.length);
	qsURL = qsNice.replace(/ /, "_");
	var w = 'http://en.wikipedia.org/wiki/';

	var querystring = document.createElement("a");
	querystring.innerHTML = '<a href="' +w+qsURL+ '"><b>' +qsNice+ '</b> - Wikipedia, the free encyclopedia</a>';
	thisResult.parentNode.insertBefore(querystring, thisResult);			


	newElement = document.createElement('hr');
	thisResult.parentNode.insertBefore(newElement, thisResult);
}

var qs = encodeURIComponent(document.gs.q.value);

GM_xmlhttpRequest({
	method: 'GET',
	url: 'http://en.wikipedia.org/wiki/'+qs,
	onload: function(responseDetails){
		var regex=/Wikipedia does not have an article with this exact name./;
		var responseText = responseDetails.responseText;
			if (!regex.test(responseText)){
				inject_wikipedia(responseText);
			}
		}
});