]> git.phdru.name Git - bookmarks_db.git/blobdiff - check_dups.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / check_dups.py
index 113e69ba61be9d3d1426038eb2b48c1616040240..df79df86cbe1aecea85ef89601b097c06b8c4225 100755 (executable)
@@ -1,95 +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.
 """
 
-__version__ = "$Revision$"[11:-2]
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
+from __future__ import print_function
+import sys
+
+
 __author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2000-2011 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, 'wt')
 
-   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()