X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=bkmk2db.py;h=5cf29aed53d4abfe607fb48b56aacdf4329b75cd;hb=c88cb7a75e7caf1d67466cfa107981d95115fa0c;hp=1e652828692665bfeb64ae242bdb0ca0f9774dbd;hpb=391f68ebaffbf017768a2ca64b4a2aded8a94e41;p=bookmarks_db.git diff --git a/bkmk2db.py b/bkmk2db.py index 1e65282..5cf29ae 100755 --- a/bkmk2db.py +++ b/bkmk2db.py @@ -1,124 +1,128 @@ -#! /usr/local/bin/python -O -""" - Convert Netscape Navigator's or Mozilla's bookmarks.html to a database +#! /usr/bin/env python +"""Convert Netscape Navigator's or Mozilla's bookmarks.html to a database - Written by BroytMann. Copyright (C) 1997-2003 PhiloSoft Design +This file is a part of Bookmarks database and Internet robot. """ - +from __future__ import print_function import sys, os from getopt import getopt from bkmk_parser import BkmkParser +__author__ = "Oleg Broytman " +__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 = not __debug__ - 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()