+def run():
+ from getopt import getopt
+ optlist, args = getopt(sys.argv[1:], "s")
+
+ report_stats = 1
+
+ for _opt, _arg in optlist:
+ if _opt == '-s':
+ report_stats = 0
+ try:
+ del _opt, _arg
+ except NameError:
+ pass
+
+ if report_stats:
+ print("Broytman set-real_title, Copyright (C)"
+ " 2003-2023 PhiloSoft Design")
+ if args:
+ sys.stderr.write("set-real_title: too many arguments\n")
+ sys.stderr.write("Usage: set-real_title [-s]\n")
+ sys.exit(1)
+
+ from storage import storage
+ storage = storage()
+
+ 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)
+
+ if report_stats:
+ print("Ok")
+
+ changed = 0
+ for object_no in range(objects):
+ object = root_folder.linear[object_no]
+
+ if object.isBookmark:
+ if not hasattr(object, "real_title"):
+ continue
+
+ real_title = object.real_title
+ if not real_title:
+ real_title = object.href
+ if object.name != real_title:
+ object.name = real_title
+ changed += 1
+
+ if changed and report_stats:
+ sys.stdout.write("Saving %s: " % storage.filename)
+ sys.stdout.flush()
+
+ if not changed and report_stats:
+ sys.stdout.write("No need to save data\n")
+ sys.stdout.flush()
+
+ if changed:
+ storage.store(root_folder)
+
+ if changed and report_stats:
+ print("Ok")
+ print(objects, "objects passed")
+ print(changed, "objects changed")