Techcrunch RSS Junk Blocker

By riddle Last update Nov 15, 2007 — Installed 123 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// ==UserScript==
// @namespace     http://riddle.pl/-/greasemonkey/techcrunch.junkblocker.user.js
// @name          Techcrunch RSS Junk Blocker
// @description          Removes crunchbase junk, links to other TC blogs and ads in Google Reader
// @version				0.1
// @include       http://google.com/reader*
// @include       http://www.google.com/reader*
// ==/UserScript==

document.body.addEventListener('DOMNodeInserted', function() {
	var container = document.getElementById('entries');
	if (container) {
		var entries = container.childNodes;
		if (entries) {
			if (entries.length > 1) {
				var currentCount = 0;
				for (var i = 0; i < entries.length; i++) {
					var self = entries[i];
					var selfClass = self.className;
					if (selfClass) {
						if ( (selfClass.indexOf('entry') > -1) && (selfClass.indexOf('modified') == -1) ) {
							
							try {
								var entry = self.getElementsByTagName('table')[0]
																.getElementsByTagName('tr')[1]
																.getElementsByTagName('td')[1]
																.getElementsByTagName('div')[0]
																.getElementsByTagName('div')[2]
									
								if (entry) {
									var link = entry.getElementsByTagName('h2')[0].getElementsByTagName('a')[0].href;
									if (link.indexOf('http://feeds.feedburner.com/~r/Techcrunch/') > -1) {
										// TechCrunch!
										var body = entry.getElementsByTagName('div')[2]
																		.getElementsByTagName('div')[0]
																		.getElementsByTagName('ins')[0]
																		.getElementsByTagName('div')[0];
										if (body) {
											var children = body.childNodes;
											var startDeleting = false;
											for (var j = 0; j < children.length; j++) {
												var child = children[j];
												var childNodeName = child.nodeName.toLowerCase();
												if (childNodeName == 'p') {
													var strong = child.getElementsByTagName('strong')[0];
													if (strong) {
														if (strong.innerHTML.indexOf('Crunch Network') > -1) {
															// child: starting point for TC junk
															startDeleting = true;
														}
													}
												}
												if (childNodeName == 'div') {
													var link = child.getElementsByTagName('a')[0];
													if (link) {
														if (link.href == 'http://www.crunchbase.com/') {
															// child: starting point for TC junk
															startDeleting = true;
														}
													}
												}
												if (startDeleting) {
													if (child.nodeType == 1) {
														child.style.display = 'none !important';
													}
												}
											}
										}
									}
								}
							} catch(e) {
								// don't have time to do check on every element in getElemsByTagName
							}
						
							self.className += ' modified';
							
						}
					}
				}
			}
		}
	}
}, false);