]> git.phdru.name Git - bookmarks_db.git/blobdiff - set-title-list.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / set-title-list.py
index 6a4974238b4ea6b7de2856b30255782c376c7def..d37398475ddae5de7d9b8006f4042ecfefe7c12d 100755 (executable)
@@ -1,5 +1,6 @@
-#! /usr/bin/env python
-"""Run through the bookmarks database and set names to titles from an external file
+#! /usr/bin/env python3
+"""Run through the bookmarks database and set names to titles
+from an external file
 
 This file is a part of Bookmarks database and Internet robot.
 """
@@ -9,7 +10,7 @@ import sys
 
 
 __author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2003-2017 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2003-2023 PhiloSoft Design"
 __license__ = "GNU GPL"
 
 
@@ -28,7 +29,8 @@ def run():
         pass
 
     if report_stats:
-        print("Broytman set-title-list, Copyright (C) 2003-2017 PhiloSoft Design")
+        print("Broytman set-title-list, Copyright (C)"
+              " 2003-2023 PhiloSoft Design")
 
     if len(args) != 1:
         sys.stderr.write("Usage: set-title-list [-s] title_list_file\n")
@@ -40,22 +42,28 @@ def run():
     URL = None
     title = None
 
-    title_list_file = open(args[0], 'r')
+    title_list_file = open(args[0], 'rt', encoding='utf-8')
     for line in title_list_file:
-        line = line[:-1] # strip trailing newline
+        line = line[:-1]  # strip trailing newline
         if URL is None:
             URL = line
 
         elif title is None:
             title = line
 
-        elif line: # the third line in every 3 lines must be empty
-            raise ValueError("line is not empty for URL `%s', title `%s': line `%s'" % (URL, title, line))
+        elif line:  # the third line in every 3 lines must be empty
+            raise ValueError(
+                "line is not empty for URL `%s', title `%s': line `%s'"
+                % (URL, title, line)
+            )
 
-        else: # We've got 3 lines - add new entry to the mapping
-            if titles_dict.has_key(URL):
+        else:  # We've got 3 lines - add new entry to the mapping
+            if URL in titles_dict:
                 if title != titles_dict[URL]:
-                    raise ValueError("titles are not identical for URL `%s': `%s' != `%s'" % (URL, title, titles_dict[URL]))
+                    raise ValueError(
+                        "titles are not identical for URL `%s': `%s' != `%s'"
+                        % (URL, title, titles_dict[URL])
+                    )
 
             else:
                 titles_dict[URL] = title
@@ -66,7 +74,6 @@ def run():
 
     title_list_file.close()
 
-
     from storage import storage
     storage = storage()
 
@@ -82,7 +89,6 @@ def run():
     if report_stats:
         print("Ok")
 
-
     # Run through the list of objects and check URLs/titles
     changed = 0
     for object_no in range(objects):
@@ -90,13 +96,12 @@ def run():
 
         if object.isBookmark:
             URL = object.href
-            if titles_dict.has_key(URL):
+            if URL in titles_dict:
                 name = titles_dict[URL]
                 if object.name != name:
                     object.name = name
                     changed += 1
 
-
     if changed and report_stats:
         sys.stdout.write("Saving %s: " % storage.filename)
         sys.stdout.flush()