1 #! /usr/local/bin/python -O
3 Convert Netscape Navigator's bookmarks.html to FLAD database
5 Written by BroytMann, Jun 1997 - Mar 1999. Copyright (C) 1997-1999 PhiloSoft Design
8 import sys, os, stat, string
9 from getopt import getopt
12 from formatter import AbstractFormatter, NullWriter
16 optlist, args = getopt(sys.argv[1:], "gits")
23 for _opt, _arg in optlist:
39 sys.stderr.write("bkmk2db: too many arguments\n")
45 filename = 'bookmarks.html' # good name both for DOS (bookmark.htm) and UNIX
48 show_pbar = sys.stderr.isatty()
52 from tty_pbar import ttyProgressBar
58 size = os.stat(filename)[stat.ST_SIZE]
60 print filename, ": no such file"
64 fmt = AbstractFormatter(NullWriter())
66 parser = bkmk_parser.Bookmarks2Text(fmt)
68 parser = bkmk_parser.Bookmarks2Gadfly(fmt)
70 parser = bkmk_parser.Bookmarks2Flad(fmt)
74 str = "Converting " + filename + " to "
78 str = "GadFly database"
82 sys.stdout.write("Converting %s to %s: " % (filename, str))
86 pbar = ttyProgressBar(0, size)
89 # This is for DOS - it counts CRLF, which len() counts as 1 char!
90 if os.name == 'dos' or os.name == 'nt' :
93 dos_add = 0 # UNIX' and Mac's len() counts CR or LF correct
96 f = open(filename, 'r')
98 print filename, ":", msg
101 header = open("header", 'w')
110 lng = lng + len(line) + dos_add
113 line = string.strip(line)
114 line_no = line_no + 1
119 if parser.outfile: # Write header until HTML parser start writing outfile
124 header.write(line + '\n')
127 break # I need total number of lines; interpreter will print traceback on exit
134 print line_no, "lines proceed"
135 print parser.urls_no, "urls found"
136 print parser.record_no, "records created"
142 if __name__ == '__main__':