mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Method that allows implementing has_book in a worker process with no access to the data
This commit is contained in:
parent
e50915bfe8
commit
b127f0b3f9
@ -1422,11 +1422,18 @@ class Cache(object):
|
|||||||
result.append(author_to_author_sort(aut) if aid is None else table.asort_map[aid])
|
result.append(author_to_author_sort(aut) if aid is None else table.asort_map[aid])
|
||||||
return ' & '.join(filter(None, result))
|
return ' & '.join(filter(None, result))
|
||||||
|
|
||||||
|
@read_api
|
||||||
|
def data_for_has_book(self):
|
||||||
|
''' Return data suitable for use in :meth:`has_book`. This can be used for an
|
||||||
|
implementation of :meth:`has_book` in a worker process without access to the
|
||||||
|
db. '''
|
||||||
|
return {icu_lower(title):book_id for book_id, title in self.fields['title'].table.book_col_map.itervalues()}
|
||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
def has_book(self, mi):
|
def has_book(self, mi):
|
||||||
''' Return True iff the database contains an entry with the same title
|
''' Return True iff the database contains an entry with the same title
|
||||||
as the passed in Metadata object. The comparison is case-insensitive.
|
as the passed in Metadata object. The comparison is case-insensitive.
|
||||||
'''
|
See also :meth:`data_for_has_book`. '''
|
||||||
title = mi.title
|
title = mi.title
|
||||||
if title:
|
if title:
|
||||||
if isbytestring(title):
|
if isbytestring(title):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user