Mozilla Bookmark Filter


Here is a fun little script to weed out all those dead bookmarks. Mostly meant for a Mozilla bookmark file.
# /usr/bin/perl/or/whatever
# Bookmark Validator Script 
# 11/18/02
#
# This validates your bookmark.html links and spits out 'bookmarks_out.html' containing 
# only valid links (no 404 pages, etc.) This may take awhile to run if your bookmark file is big.
use URI::URL;
use LWP::UserAgent;

my @OutLines;

my $BookmarkFile = "bookmarks.html";
my $NewBookmarkFile = "bookmarks_out.html";

open BOOKMARKS, $BookmarkFile or die "Cannot open $BookmarkFile for read :$!";
my @BookmarkLines = ;
close BOOKMARKS;

foreach (@BookmarkLines) {

	my $url;
	
	if (/href=\"(.*)\" ADD_DATE/i) {

		$url = $1;
			
		$ua = LWP::UserAgent->new;
		$request = HTTP::Request->new(GET => $url);
		$response = $ua->request($request);
		
		print "URL: $url, Status: ".$response->status_line."\n";
		
		push (@OutLines, $_) if ($response->status_line =~/200 OK/);
		
	} else {
		push (@OutLines, $_);
	}
}

open BOOKMARKSOUT, ">$NewBookmarkFile" or die "Cannot open $NewBookmarkFile for write :$!";
foreach (@OutLines) {
	print BOOKMARKSOUT $_;
}
close BOOKMARKSOUT;