]> git.phdru.name Git - bookmarks_db.git/blob - set-real_title.py
/usr/bin/env python
[bookmarks_db.git] / set-real_title.py
1 #! /usr/bin/env python
2 """
3    Run through the bookmarks database and set name to real title
4
5    Written by BroytMann, Jul 2002 - May 2003. Copyright (C) 2002-2003 PhiloSoft Design
6 """
7
8
9 import sys
10
11
12 def run():
13    from getopt import getopt
14    optlist, args = getopt(sys.argv[1:], "s")
15
16    report_stats = 1
17
18    for _opt, _arg in optlist:
19       if _opt == '-s':
20          report_stats = 0
21    try:
22       del _opt, _arg
23    except NameError:
24       pass
25
26    if report_stats:
27       print "BroytMann set-real_title, Copyright (C) 2003 PhiloSoft Design"
28
29    if args:
30       sys.stderr.write("set-real_title: too many arguments\n")
31       sys.stderr.write("Usage: set-real_title [-s]\n")
32       sys.exit(1)
33
34    from storage import storage
35    storage = storage()
36
37    if report_stats:
38       sys.stdout.write("Loading %s: " % storage.filename)
39       sys.stdout.flush()
40
41    root_folder = storage.load()
42    from bkmk_objects import make_linear
43    make_linear(root_folder)
44    objects = len(root_folder.linear)
45
46    if report_stats:
47       print "Ok"
48
49
50    changed = 0
51    for object_no in range(objects):
52       object = root_folder.linear[object_no]
53
54       if object.isBookmark:
55          if not hasattr(object, "real_title"):
56             continue
57
58          real_title = object.real_title
59          if not real_title:
60             real_title = object.href
61          if object.name <> real_title:
62             object.name = real_title
63             changed += 1
64
65
66    if changed and report_stats:
67       sys.stdout.write("Saving %s: " % storage.filename)
68       sys.stdout.flush()
69
70    if not changed and report_stats:
71       sys.stdout.write("No need to save data\n")
72       sys.stdout.flush()
73
74    if changed:
75       storage.store(root_folder)
76
77    if changed and report_stats:
78       print "Ok"
79       print objects, "objects passed"
80       print changed, "objects changed"
81
82
83 if __name__ == '__main__':
84    run()