X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=check_title.py;h=0bb10602281defb9bd127ae91f9fdf8d8ab019a0;hb=refs%2Fheads%2Fmaster;hp=ffab6fa7d325b69cd787b15e5f28fde7681bcaeb;hpb=c88cb7a75e7caf1d67466cfa107981d95115fa0c;p=bookmarks_db.git diff --git a/check_title.py b/check_title.py index ffab6fa..0bb1060 100755 --- a/check_title.py +++ b/check_title.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 """Check and show URLs in the bookmarks database where name != real title This file is a part of Bookmarks database and Internet robot. @@ -10,32 +10,50 @@ from bkmk_objects import make_linear, quote_title, unquote_title __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2002-2017 PhiloSoft Design" +__copyright__ = "Copyright (C) 2002-2023 PhiloSoft Design" __license__ = "GNU GPL" +def report_title(href, title, real_title): + if real_title is None: + real_title = "NO REAL TITLE!!!" + s = "%s\n%s\n%s\n" % (href, title, real_title) + + if log_file: + log_file.write("%s\n" % s) + else: + print(s) + + def run(): from getopt import getopt - optlist, args = getopt(sys.argv[1:], "s") + 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 if report_stats: - print("Broytman check_title, Copyright (C) 2002-2017 PhiloSoft Design") + print("Broytman check_title, Copyright (C) 2002-2023 PhiloSoft Design") if args: sys.stderr.write("check_title: too many arguments\n") - sys.stderr.write("Usage: check_title [-s]\n") + sys.stderr.write("Usage: check_title [-s] [-l logfile]\n") sys.exit(1) + if log_filename: + log_file = open(log_filename, 'wt', encoding='utf-8') + from storage import storage storage = storage() @@ -50,32 +68,30 @@ def run(): if report_stats: print("Ok") - + changed_titles = no_titles = 0 for object_no in range(objects): object = root_folder.linear[object_no] if object.isBookmark: - if hasattr(object, "moved") or hasattr(object, "error") \ - or object.href.startswith('place:'): # Firefox SmartBookmarks + if hasattr(object, "moved") or hasattr(object, "error") or \ + object.href.startswith('place:'): # Firefox SmartBookmarks continue - if hasattr(object, "real_title") and (object.real_title is not None): + if hasattr(object, "real_title") \ + and (object.real_title is not None): unquoted_title = unquote_title(quote_title(object.real_title)) unquoted_name = unquote_title(object.name) if unquoted_name != unquoted_title: - print(object.href) - print(unquoted_name) - print(unquoted_title) - print() + report_title(object.href, unquoted_name, unquoted_title) + changed_titles += 1 else: - print(object.href) - print(object.name) - print("NO REAL TITLE!!!") - print() - + report_title(object.href, object.name, None) + no_titles += 1 if report_stats: print(objects, "objects passed") + print(changed_titles, "changed titles") + print(no_titles, "no titles") if __name__ == '__main__':