]> git.phdru.name Git - bookmarks_db.git/blobdiff - sort_db.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / sort_db.py
index 4418973011c9b1444c2670fdf4e9eebf1efb8566..4dd117e51219cbf818d3c9ce4db004b676e07cf2 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Sort bookmarks DB according to a rule:
       -a - by AddDate
       -v - by LastVisit
@@ -19,23 +19,16 @@ __license__ = "GNU GPL"
 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:
@@ -91,8 +84,8 @@ def run():
     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)
@@ -106,7 +99,7 @@ def run():
         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)