X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=set-title-list.py;h=6a4974238b4ea6b7de2856b30255782c376c7def;hb=c88cb7a75e7caf1d67466cfa107981d95115fa0c;hp=589aa0d85f8b042a378663d1d3a4d4c9bc9c82af;hpb=43a5cbf292ea2e4def610f96d38c86d86f7ccfa6;p=bookmarks_db.git diff --git a/set-title-list.py b/set-title-list.py index 589aa0d..6a49742 100755 --- a/set-title-list.py +++ b/set-title-list.py @@ -1,115 +1,119 @@ #! /usr/bin/env python -""" - Run through the bookmarks database and set names to titles from an external file +"""Run through the bookmarks database and set names to titles from an external file - Written by BroytMann. Copyright (C) 2003-2007 PhiloSoft Design. +This file is a part of Bookmarks database and Internet robot. """ - +from __future__ import print_function import sys +__author__ = "Oleg Broytman " +__copyright__ = "Copyright (C) 2003-2017 PhiloSoft Design" +__license__ = "GNU GPL" + + def run(): - from getopt import getopt - optlist, args = getopt(sys.argv[1:], "s") + from getopt import getopt + optlist, args = getopt(sys.argv[1:], "s") - report_stats = 1 + report_stats = 1 - for _opt, _arg in optlist: - if _opt == '-s': - report_stats = 0 - try: - del _opt, _arg - except NameError: - pass + for _opt, _arg in optlist: + if _opt == '-s': + report_stats = 0 + try: + del _opt, _arg + except NameError: + pass - if report_stats: - print "BroytMann set-title-list, Copyright (C) 2003-2007 PhiloSoft Design" + if report_stats: + print("Broytman set-title-list, Copyright (C) 2003-2017 PhiloSoft Design") - if len(args) <> 1: - sys.stderr.write("Usage: set-title-list [-s] title_list_file\n") - sys.exit(1) + if len(args) != 1: + sys.stderr.write("Usage: set-title-list [-s] title_list_file\n") + sys.exit(1) - # Read the external file with titles and build a mapping (URL => title) - titles_dict = {} + # Read the external file with titles and build a mapping (URL => title) + titles_dict = {} - URL = None - title = None + URL = None + title = None - title_list_file = open(args[0], 'r') - for line in title_list_file: - line = line[:-1] # strip trailing newline - if URL is None: - URL = line + title_list_file = open(args[0], 'r') + for line in title_list_file: + line = line[:-1] # strip trailing newline + if URL is None: + URL = line - elif title is None: - title = 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): - if title <> titles_dict[URL]: - raise ValueError, "titles are not identical for URL `%s': `%s' <> `%s'" % (URL, title, titles_dict[URL]) + else: # We've got 3 lines - add new entry to the mapping + if titles_dict.has_key(URL): + if 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 + else: + titles_dict[URL] = title - # reset - URL = None - title = None + # reset + URL = None + title = None - title_list_file.close() + title_list_file.close() - from storage import storage - storage = storage() + from storage import storage + storage = storage() - if report_stats: - sys.stdout.write("Loading %s: " % storage.filename) - sys.stdout.flush() + if report_stats: + sys.stdout.write("Loading %s: " % storage.filename) + sys.stdout.flush() - root_folder = storage.load() - from bkmk_objects import make_linear, break_tree - make_linear(root_folder) - objects = len(root_folder.linear) + root_folder = storage.load() + from bkmk_objects import make_linear, break_tree + make_linear(root_folder) + objects = len(root_folder.linear) - if report_stats: - print "Ok" + if report_stats: + print("Ok") - # Run through the list of objects and check URLs/titles - changed = 0 - for object_no in range(objects): - object = root_folder.linear[object_no] + # Run through the list of objects and check URLs/titles + changed = 0 + for object_no in range(objects): + object = root_folder.linear[object_no] - if object.isBookmark: - URL = object.href - if titles_dict.has_key(URL): - name = titles_dict[URL] - if object.name <> name: - object.name = name - changed += 1 + if object.isBookmark: + URL = object.href + if titles_dict.has_key(URL): + 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() + 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 not changed and report_stats: + sys.stdout.write("No need to save data\n") + sys.stdout.flush() - if changed: - break_tree(root_folder.linear) - storage.store(root_folder) + if changed: + break_tree(root_folder.linear) + storage.store(root_folder) - if changed and report_stats: - print "Ok" - print objects, "objects passed" - print changed, "objects changed" + if changed and report_stats: + print("Ok") + print(objects, "objects passed") + print(changed, "objects changed") if __name__ == '__main__': - run() + run()