- optlist, args = getopt(sys.argv[1:], "gits")
-
- show_pbar = 1
- to_text = 0
- to_gf = 0
- report_stats = 1
-
- for _opt, _arg in optlist:
- if _opt == '-g':
- to_gf = 1
- if _opt == '-i':
- show_pbar = 0
- if _opt == '-t':
- to_text = 1
- if _opt == '-s':
- report_stats = 0
- try:
- del _opt, _arg
- except NameError:
- pass
-
- if args:
- if len(args) > 1:
- sys.stderr.write("bkmk2db: too many arguments\n")
- sys.exit(1)
-
- filename = args[0]
-
- else:
- filename = 'bookmarks.html' # good name both for DOS (bookmark.htm) and UNIX
-
- if show_pbar:
- show_pbar = sys.stderr.isatty()
-
- if show_pbar:
- try:
- from tty_pbar import ttyProgressBar
- except ImportError:
- show_pbar = 0
-
- if show_pbar:
- try:
- size = os.stat(filename)[stat.ST_SIZE]
- except:
- print filename, ": no such file"
- sys.exit(1)
-
-
- fmt = AbstractFormatter(NullWriter())
- if to_text:
- parser = bkmk_parser.Bookmarks2Text(fmt)
- elif to_gf:
- parser = bkmk_parser.Bookmarks2Gadfly(fmt)
- else:
- parser = bkmk_parser.Bookmarks2Flad(fmt)
-
-
- if report_stats:
- str = "Converting " + filename + " to "
- if to_text:
- str = "text"
- elif to_gf:
- str = "GadFly database"
- else:
- str = "FLAD database"
-
- sys.stdout.write("Converting %s to %s: " % (filename, str))
- sys.stdout.flush()
-
- if show_pbar:
- pbar = ttyProgressBar(0, size)
- lng = 0
-
- # This is for DOS - it counts CRLF, which len() counts as 1 char!
- if os.name == 'dos' or os.name == 'nt' :
- dos_add = 1
- else:
- dos_add = 0 # UNIX' and Mac's len() counts CR or LF correct
-
- try:
- f = open(filename, 'r')
- except IOError, msg:
- print filename, ":", msg
- sys.exit(1)
-
- header = open("header", 'w')
- line_no = 0
-
- while 1:
- line = f.readline()
- if not line:
- break
-
- if show_pbar:
- lng = lng + len(line) + dos_add
- pbar.display(lng)
-
- line = string.strip(line)
- line_no = line_no + 1
-
- try:
- parser.feed(line)
-
- if parser.outfile: # Write header until HTML parser start writing outfile
- if header:
- header.close()
- header = None
- else:
- header.write(line + '\n')
-
- except:
- break # I need total number of lines; interpreter will print traceback on exit
-
- if show_pbar:
- del pbar
-
- if report_stats:
- print "Ok"
- print line_no, "lines proceed"
- print parser.urls_no, "urls found"
- print parser.record_no, "records created"
-
- parser.close()
- f.close()
+ optlist, args = getopt(sys.argv[1:], "is")
+
+ show_pbar = True
+ report_stats = 1
+
+ for _opt, _arg in optlist:
+ if _opt == '-i':
+ show_pbar = 0
+ if _opt == '-s':
+ report_stats = 0
+ try:
+ del _opt, _arg
+ except NameError:
+ pass
+
+ if args:
+ if len(args) > 1:
+ sys.stderr.write("bkmk2db: too many arguments\n")
+ sys.stderr.write("Usage: bkmk2db [-is] bookmarks.html\n")
+ sys.exit(1)
+
+ filename = args[0]
+
+ else:
+ # good name both for DOS (bookmark.htm) and UNIX
+ filename = 'bookmarks.html'
+
+ if report_stats:
+ from storage import storage_name
+ sys.stdout.write("Converting %s to %s: " % (filename, storage_name))
+ sys.stdout.flush()
+
+ if show_pbar:
+ show_pbar = sys.stderr.isatty()
+
+ if show_pbar:
+ try:
+ from m_lib.pbar.tty_pbar import ttyProgressBar
+ except ImportError:
+ show_pbar = 0
+
+ if show_pbar:
+ try:
+ size = os.path.getsize(filename)
+ except:
+ print(filename, ": no such file")
+ sys.exit(1)
+
+ if show_pbar:
+ pbar = ttyProgressBar(0, size)
+ lng = 0
+
+ # This is for DOS - it counts CRLF, which len() counts as 1 char!
+ if os.name == 'dos' or os.name == 'nt':
+ dos_add = 1
+ else:
+ dos_add = 0 # UNIX' and Mac's len() counts CR or LF correct
+
+ infile = open(filename, 'rt')
+ parser = BkmkParser()
+
+ line_no = 0
+ lng = 0
+ ok = 1
+
+ for line in infile:
+ if show_pbar:
+ lng = lng + len(line) + dos_add
+ pbar.display(lng)
+
+ # line = line.strip()
+ line_no = line_no + 1
+
+ try:
+ parser.feed(line)
+ except:
+ ok = 0
+ break
+
+ try:
+ parser.close()
+ except:
+ ok = 0
+
+ infile.close()
+
+ if show_pbar:
+ del pbar
+
+ if report_stats:
+ print("Ok")
+ print(line_no, "lines proceed")
+ print(parser.urls, "urls found")
+ print(parser.objects, "objects created")
+
+ if ok:
+ from storage import storage
+ storage = storage()
+ storage.store(parser.root_folder)
+
+ else:
+ import traceback
+ traceback.print_exc()
+ sys.exit(1)