#!/usr/bin/perl
#Created by Ann Lewis and Avi Silterra
#Converts IE Favorites into a bookmark list, links.html
#usage: convert [Favorites directory]
use strict;
use File::Listing;
my $name = "Avi J Silterra";
my $top_dir = @ARGV[0];
open(OUTPUT,">$top_dir\\links.html");
print OUTPUT "\n";
print OUTPUT "
Bookmarks for $name\n";
print OUTPUT "Bookmarks for $name
\n";
print OUTPUT "Perl script which created this from IE Favorites
\n";
print "starting w/ $top_dir\n";
convert_dir($top_dir);
print OUTPUT "";
close OUTPUT;
print "Conversion Successful";
#usage: parse_file [directory] [file name]
sub parse_file{
my $fname = @_[1];
my $dir = @_[0];
(my $title, $_) = split(/\.url/, $fname);
open(FILE, "@_[0]\\$fname");
my @lines = ;
foreach my $line (@lines) {
if(uc($line) =~/URL/ && not(uc($line) =~/BASEURL/)) {
chomp($line);
my($junk, $url) = split(/=/, $line);
print OUTPUT " $title
\n";
}
}
close FILE;
}
#usage: convert_dir [directory name]
sub convert_dir{
my $dir = @_[0]; #get directory name
# my $re = '\\';
($_, my $pretty_dir) = split(/\\/,$dir);
print OUTPUT "$pretty_dir
\n";
local *MYDIR;
opendir(MYDIR, "$dir") || die "$dir is a bad directory name \n";
#run first on files
while( defined( my $file=readdir(MYDIR))) {
if( uc($file) =~/.URL/ )
{parse_file($dir, $file);}
}
print OUTPUT "\n";
local *ME; #I wish I knew how to reset to beginning of file!
opendir(ME,"$dir") || die "$dir is a bad directory name \n";
#recurse on directories
while( defined( my $subfolder=readdir(ME))) {
if((-d $subfolder) && ($subfolder ne '.') && ($subfolder ne '..'))
{convert_dir($dir.'\\'.$subfolder);}
}
}