mirror of
git://github.com/kovidgoyal/calibre.git
synced 2025-12-23 05:25:39 +01:00
Don't search tags when the expression is unprefixed. Some performance improvements and defensive code.
This commit is contained in:
parent
352ee20933
commit
6001342b32
1 changed files with 6 additions and 7 deletions
|
|
@ -1136,7 +1136,7 @@ def get_matches(self, location, query):
|
|||
if location not in self.USABLE_LOCATIONS:
|
||||
return set([])
|
||||
matches = set([])
|
||||
all_locs = set(self.USABLE_LOCATIONS) - set(['all'])
|
||||
all_locs = set(self.USABLE_LOCATIONS) - set(['all', 'tags'])
|
||||
locations = all_locs if location == 'all' else [location]
|
||||
q = {
|
||||
'title' : lambda x : getattr(x, 'title').lower(),
|
||||
|
|
@ -1144,7 +1144,7 @@ def get_matches(self, location, query):
|
|||
'collections':lambda x: ','.join(getattr(x, 'device_collections')).lower(),
|
||||
'format':lambda x: os.path.splitext(x.path)[1].lower(),
|
||||
'inlibrary':lambda x : getattr(x, 'in_library'),
|
||||
'tags':lambda x : getattr(x, 'tags')
|
||||
'tags':lambda x : getattr(x, 'tags', [])
|
||||
}
|
||||
for x in ('author', 'format'):
|
||||
q[x+'s'] = q[x]
|
||||
|
|
@ -1172,11 +1172,10 @@ def get_matches(self, location, query):
|
|||
m = matchkind
|
||||
|
||||
vals = accessor(row)
|
||||
if not isinstance(vals, list):
|
||||
if locvalue == 'collections':
|
||||
vals = accessor(row).split(',')
|
||||
else:
|
||||
vals = [accessor(row)]
|
||||
if vals is None:
|
||||
vals = ''
|
||||
if isinstance(vals, basestring):
|
||||
vals = vals.split(',') if locvalue == 'collections' else [vals]
|
||||
if _match(query, vals, m, use_primary_find_in_search=upf):
|
||||
matches.add(index)
|
||||
break
|
||||
|
|
|
|||
Loading…
Reference in a new issue