1 #! /usr/local/bin/python -O
3 Sort bookmarks DB according to a rule:
10 -r - reverse the sort order
12 Written by BroytMann, Apr 2000. Copyright (C) 2000 PhiloSoft Design
20 def __init__(self, sort_by):
21 self.sort_by = sort_by
23 def __call__(self, o1, o2):
25 attr1 = int(getattr(o1, self.sort_by))
26 except (TypeError, AttributeError):
30 attr2 = int(getattr(o2, self.sort_by))
31 except (TypeError, AttributeError):
34 return cmp(attr1, attr2)
37 def walk_linear(linear, walker):
40 walker.bookmark(object, 0)
44 from getopt import getopt
45 optlist, args = getopt(sys.argv[1:], "avmztrs")
47 sort_by = "last_modified"
51 for _opt, _arg in optlist:
55 sort_by = "last_visit"
57 sort_by = "last_modified"
61 sort_by = "last_tested"
71 from storage import storage
75 sys.stdout.write("Loading %s: " % storage.filename)
78 root_folder = storage.load()
82 sys.stdout.write("Sorting (by %s): " % sort_by)
85 from bkmk_objects import make_linear
86 make_linear(root_folder)
88 linear = root_folder.linear
89 del linear[0] # exclude root folder from sorting
94 from writers import writer
95 output_filename = "%s-sorted_by-%s" % (writer.filename, sort_by)
99 output_filename = output_filename + "-reverse"
103 sys.stdout.write("Writing %s: " % output_filename)
106 outfile = open(output_filename, 'w')
107 writer = writer(outfile)
108 writer.root_folder(root_folder)
109 walk_linear(linear, writer)
116 if __name__ == '__main__':