This file is a part of Bookmarks database and Internet robot.
"""
-__version__ = "$Revision$"[11:-2]
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
-__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 1997-2011 PhiloSoft Design"
-__license__ = "GNU GPL"
-
+from __future__ import print_function
import sys, os
from getopt import getopt
from bkmk_parser import BkmkParser
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 1997-2017 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+
def run():
- optlist, args = getopt(sys.argv[1:], "is")
+ 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
+ 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)
+ 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]
+ filename = args[0]
- else:
- filename = 'bookmarks.html' # good name both for DOS (bookmark.htm) and UNIX
+ else:
+ filename = 'bookmarks.html' # good name both for DOS (bookmark.htm) and UNIX
- if report_stats:
- from storage import storage_name
- sys.stdout.write("Converting %s to %s: " % (filename, storage_name))
- sys.stdout.flush()
+ 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:
+ 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:
+ 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:
+ try:
+ size = os.path.getsize(filename)
+ except:
+ print(filename, ": no such file")
+ sys.exit(1)
- if show_pbar:
- pbar = ttyProgressBar(0, size)
- lng = 0
+ 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
+ # 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, 'r')
- parser = BkmkParser()
+ infile = open(filename, 'r')
+ parser = BkmkParser()
- line_no = 0
- lng = 0
- ok = 1
+ line_no = 0
+ lng = 0
+ ok = 1
- for line in infile:
- if show_pbar:
- lng = lng + len(line) + dos_add
- pbar.display(lng)
+ for line in infile:
+ if show_pbar:
+ lng = lng + len(line) + dos_add
+ pbar.display(lng)
- #line = line.strip()
- line_no = line_no + 1
+ #line = line.strip()
+ line_no = line_no + 1
- try:
- parser.feed(line)
- except:
- ok = 0
- break
+ try:
+ parser.feed(line)
+ except:
+ ok = 0
+ break
- try:
- parser.close()
- except:
- ok = 0
+ try:
+ parser.close()
+ except:
+ ok = 0
- infile.close()
+ infile.close()
- if show_pbar:
- del pbar
+ 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 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)
+ if ok:
+ from storage import storage
+ storage = storage()
+ storage.store(parser.root_folder)
- else:
- import traceback
- traceback.print_exc()
- sys.exit(1)
+ else:
+ import traceback
+ traceback.print_exc()
+ sys.exit(1)
if __name__ == '__main__':
- run()
+ run()