Source for "Google Reader: Preview"

By George Saunders
Has 15 other scripts.


// Google Reader Preview
// 2007-09-14
// Copyright (c) 2006, Itai Lahan
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
// --------------------------------------------------------------------
// WHAT IT DOES:
// Replaces Google Reader's article summary with a frame containing the actual blog item
// --------------------------------------------------------------------
// ==UserScript==
// @name            Google Reader: Preview
// @description     Replaces Google Reader's article summary with a frame containing the actual blog item
// @include         *reader.google.com/reader/*
// @include         *www.google.com/reader/*
// ==/UserScript==

document.getElementsByClassName = function(className, parentNode) {
  var elements = [];
  var parent = parentNode;
  if (parentNode == undefined) {
	  parent = document.body;
  }
  if (parent.getElementsByTagName == undefined) {
	  return elements;
  }
  var children = parent.getElementsByTagName('*');
  for (var i = 0; i < children.length; i ++) {
	var child = children[i];
    if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) {
      elements[elements.length] = child;
	}
  }
  return elements;
}

var decorate_new_elements = function(e) {
	var element = e.target;
	if (element.className != "entry-container") {
		return;
	}
	var elements = document.getElementsByClassName("entry-title", element);
	if ((elements == undefined) || (elements.length == 0)) {
		return;
	}
	var entry_title = elements[0];
	var href_array = /\"(http:\/\/[^\"]*)\"/.exec(entry_title.innerHTML);
	if (href_array == undefined || href_array.length == 0) {
		return;
	}
	var href = href_array[1];

	elements = document.getElementsByClassName("entry-body", element);
	if (elements != undefined && (elements.length > 0)) {
		var body = elements[0];
		// Turn on preview for URLs that match the strings below.
		if (
                  href.toLowerCase().lastIndexOf("cad-comic")>-1 ||
                  href.toLowerCase().lastIndexOf("explosm")>-1 ||
                  href.toLowerCase().lastIndexOf("hyperdeathbabies")>-1 ||
                  href.toLowerCase().lastIndexOf("jesusandmo")>-1 ||
                  href.toLowerCase().lastIndexOf("lefthandedtoons")>-1 ||
                  href.toLowerCase().lastIndexOf("redmeat")>-1 ||
                  href.toLowerCase().lastIndexOf("slowwave")>-1 ||
                  href.toLowerCase().lastIndexOf("pbfcomics")>-1 ||
                  href.toLowerCase().lastIndexOf("mandolux")>-1 ||
                  href.toLowerCase().lastIndexOf("kennyrhit")>-1 ||
                  href.toLowerCase().lastIndexOf("halfsense")>-1 ||
                  href.toLowerCase().lastIndexOf("heytherehawsey")>-1
		) 
		{
		body.innerHTML = "<iframe src='"+href+"' height=775 width=1250></iframe>";

		}
	}
}

document.body.addEventListener('DOMNodeInserted', decorate_new_elements, false);