X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=check_redirects.py;h=ef7a505c733de11197a7557ad2137cfe652d9181;hb=bd078d376a721b31918b60c41ebf15be408bf52a;hp=12c74d8e59ed9b8e4fdc06ef4baab39257a328cd;hpb=8a1de1f6955285e17c7cdf55caf34ff937cc55e7;p=bookmarks_db.git diff --git a/check_redirects.py b/check_redirects.py index 12c74d8..ef7a505 100755 --- a/check_redirects.py +++ b/check_redirects.py @@ -14,15 +14,26 @@ __copyright__ = "Copyright (C) 2023 PhiloSoft Design" __license__ = "GNU GPL" +def report_redirect(href, moved): + if log_file: + log_file.write("%s\n%s\n\n" % (href, moved)) + else: + print("URL: %s\nMoved to: %s\n" % (href, moved)) + + 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: @@ -33,9 +44,12 @@ def run(): if args: sys.stderr.write("check_redirects: too many arguments\n") - sys.stderr.write("Usage: check_redirects [-s]\n") + sys.stderr.write("Usage: check_redirects [-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,6 +64,7 @@ def run(): if report_stats: print("Ok") + redirects = 0 for object_no in range(objects): object = root_folder.linear[object_no] @@ -59,13 +74,13 @@ def run(): continue if hasattr(object, "moved"): - print(object.href) - print(object.moved) - print() + report_redirect(object.href, object.moved) del object.moved + redirects += 1 if report_stats: print(objects, "objects passed") + print(redirects, "redirects") if __name__ == '__main__':