-#! /usr/bin/env python
+#! /usr/bin/env python3
"""Sort bookmarks DB according to a rule:
-a - by AddDate
-v - by LastVisit
import sys
-class SortBy(object):
+class SortKey(object):
def __init__(self, sort_by):
self.sort_by = sort_by
- def __call__(self, o1, o2):
+ def __call__(self, o1):
try:
- attr1 = int(getattr(o1, self.sort_by))
+ return int(getattr(o1, self.sort_by))
except (AttributeError, TypeError, ValueError):
return 1
- try:
- attr2 = int(getattr(o2, self.sort_by))
- except (AttributeError, TypeError, ValueError):
- return -1
-
- return cmp(attr1, attr2)
-
def walk_linear(linear, walker):
for object in linear:
linear = root_folder.linear
del linear[0] # exclude root folder from sorting
- by = SortBy(sort_by)
- linear.sort(by)
+ sort_key = SortKey(sort_by)
+ linear.sort(key=sort_key)
from writers import writer
output_filename = "%s-sorted_by-%s" % (writer.filename, sort_by)
sys.stdout.write("Writing %s: " % output_filename)
sys.stdout.flush()
- outfile = open(output_filename, 'w')
+ outfile = open(output_filename, 'wt', encoding='utf-8')
writer = writer(outfile)
writer.root_folder(root_folder)
walk_linear(linear, writer)