From 196a4231bb3b5f04c1a3d3a0d4bccf1f37b34101 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 30 Jun 2010 18:04:31 +0100 Subject: [PATCH 1/2] Add 'size' as a search term. Permit 'K', 'M', 'G' as qualtifiers --- src/calibre/library/caches.py | 7 ++++++- src/calibre/library/field_metadata.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 06cf07bb67..d68c81931f 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -341,8 +341,13 @@ class ResultCache(SearchQueryParser): cast = lambda x : float (x) adjust = lambda x: x + if len(query) > 1: + mult = query[-1:].lower() + if mult in ['k', 'm', 'g']: + query = query[:-1] + mult = {'k':1024., 'm': 1024.*1024, 'g': 1024.*1024*1024}[mult] try: - q = cast(query) + q = cast(query) * mult except: return matches diff --git a/src/calibre/library/field_metadata.py b/src/calibre/library/field_metadata.py index 5ccc17d1eb..626683fee5 100644 --- a/src/calibre/library/field_metadata.py +++ b/src/calibre/library/field_metadata.py @@ -253,7 +253,7 @@ class FieldMetadata(dict): 'is_multiple':None, 'kind':'field', 'name':None, - 'search_terms':[], + 'search_terms':['size'], 'is_custom':False, 'is_category':False}), ('timestamp', {'table':None, From 8314a05a1ac595397d42de55f45ba17b9745b3c5 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 30 Jun 2010 18:10:59 +0100 Subject: [PATCH 2/2] Fix uninitialized variable (mult) problem --- src/calibre/library/caches.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index d68c81931f..6716c1c491 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -343,9 +343,11 @@ class ResultCache(SearchQueryParser): if len(query) > 1: mult = query[-1:].lower() - if mult in ['k', 'm', 'g']: + mult = {'k':1024.,'m': 1024.**2, 'g': 1024.**3}.get(mult, 1.0) + if mult != 1.0: query = query[:-1] - mult = {'k':1024., 'm': 1024.*1024, 'g': 1024.*1024*1024}[mult] + else: + mult = 1.0 try: q = cast(query) * mult except: