-#! /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.
__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:
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()
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__':