From db3b08247e2fd0586f4a34569c24904b4609dab6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 26 Jul 2014 08:58:33 +0530 Subject: [PATCH] Comic Input: When sorting the pages inside a comic, recognize numbers, so that page2 sorts before page10 --- src/calibre/ebooks/comic/input.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/comic/input.py b/src/calibre/ebooks/comic/input.py index 2019e75c41..02c6fbfec7 100755 --- a/src/calibre/ebooks/comic/input.py +++ b/src/calibre/ebooks/comic/input.py @@ -13,6 +13,7 @@ from Queue import Empty from calibre import extract, prints, walk from calibre.constants import filesystem_encoding from calibre.ptempfile import PersistentTemporaryDirectory +from calibre.utils.icu import numeric_sort_key from calibre.utils.ipc.server import Server from calibre.utils.ipc.job import ParallelJob @@ -57,11 +58,11 @@ def find_pages(dir, sort_on_mtime=False, verbose=False): pages.append(path) break if sort_on_mtime: - comparator = lambda x, y : cmp(os.stat(x).st_mtime, os.stat(y).st_mtime) + key = lambda x:os.stat(x).st_mtime else: - comparator = lambda x, y : cmp(os.path.basename(x), os.path.basename(y)) + key = lambda x:numeric_sort_key(os.path.basename(x)) - pages.sort(cmp=comparator) + pages.sort(key=key) if verbose: prints('Found comic pages...') prints('\t'+'\n\t'.join([os.path.basename(p) for p in pages]))