X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=check_dups.py;h=25c2936da800999cf5e84b9a1e2b0e6c4ec83bd6;hb=29bdb96dda0b68ab2946ca4ba46e1887e414b06c;hp=eebd09b20ac0c09691262cf032e804131c542c55;hpb=71712390f4edb041609ff7bc9272d12a5c1a9b1d;p=bookmarks_db.git diff --git a/check_dups.py b/check_dups.py index eebd09b..25c2936 100755 --- a/check_dups.py +++ b/check_dups.py @@ -1,92 +1,93 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 """Check duplicate URLs in the bookmarks database This file is a part of Bookmarks database and Internet robot. """ +from __future__ import print_function +import sys + + __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2000-2012 PhiloSoft Design" +__copyright__ = "Copyright (C) 2000-2023 PhiloSoft Design" __license__ = "GNU GPL" -import sys - log_file = None + def report_dup(href, object_no): - s = "Duplicate URL: %s (first at rec. %d)" % (href, object_no) + s = "Duplicate URL: %s (first at rec. %d)" % (href, object_no) - if log_file: - log_file.write("%s\n" % s) - else: - print s + if log_file: + log_file.write("%s\n" % s) + else: + print(s) def run(): - from getopt import getopt - optlist, args = getopt(sys.argv[1:], "sl:") - - report_stats = 1 - global log_file - log_filename = None - - for _opt, _arg in optlist: - if _opt == '-s': - report_stats = 0 - if _opt == '-l': - log_filename = _arg - try: - del _opt, _arg - except NameError: - pass + from getopt import getopt + optlist, args = getopt(sys.argv[1:], "sl:") - if report_stats: - print "Broytman check_dups, Copyright (C) 2000-2007 PhiloSoft Design" + report_stats = 1 + global log_file + log_filename = None - if args: - sys.stderr.write("check_urls: too many arguments\n") - sys.stderr.write("Usage: check_urls [-s] [-l logfile]\n") - sys.exit(1) + for _opt, _arg in optlist: + if _opt == '-s': + report_stats = 0 + if _opt == '-l': + log_filename = _arg + try: + del _opt, _arg + except NameError: + pass - if log_filename: - log_file = open(log_filename, 'w') + if report_stats: + print("Broytman check_dups, Copyright (C) 2000-2023 PhiloSoft Design") - from storage import storage - storage = storage() + if args: + sys.stderr.write("check_urls: too many arguments\n") + sys.stderr.write("Usage: check_urls [-s] [-l logfile]\n") + sys.exit(1) - if report_stats: - sys.stdout.write("Loading %s: " % storage.filename) - sys.stdout.flush() + if log_filename: + log_file = open(log_filename, 'w') - root_folder = storage.load() - from bkmk_objects import make_linear - make_linear(root_folder) - objects = len(root_folder.linear) + from storage import storage + storage = storage() - if report_stats: - print "Ok" + if report_stats: + sys.stdout.write("Loading %s: " % storage.filename) + sys.stdout.flush() + root_folder = storage.load() + from bkmk_objects import make_linear + make_linear(root_folder) + objects = len(root_folder.linear) - dup_dict = {} + if report_stats: + print("Ok") - for object_no in range(objects): - object = root_folder.linear[object_no] + dup_dict = {} - if object.isBookmark: - href = object.href - if dup_dict.has_key(href): - report_dup(href, dup_dict[href]) - else: - dup_dict[href] = object_no + for object_no in range(objects): + object = root_folder.linear[object_no] + if object.isBookmark: + href = object.href + if href in dup_dict: + report_dup(href, dup_dict[href]) + else: + dup_dict[href] = object_no - if log_filename: - log_file.close() + if log_filename: + log_file.close() - if report_stats: - print "Ok" - print objects, "objects passed" + if report_stats: + print("Ok") + print(objects, "objects passed") if __name__ == '__main__': - run() + run()