mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
The field API
This commit is contained in:
parent
0a72140cac
commit
c1cca5213a
@ -73,6 +73,14 @@ class LibraryDatabase(object):
|
|||||||
setattr(self, func, partial(self.field_id_map, field))
|
setattr(self, func, partial(self.field_id_map, field))
|
||||||
self.all_tags = lambda : list(self.all_tag_names())
|
self.all_tags = lambda : list(self.all_tag_names())
|
||||||
|
|
||||||
|
for func in (
|
||||||
|
'standard_field_keys', 'custom_field_keys', 'all_field_keys',
|
||||||
|
'searchable_fields', 'sortable_field_keys',
|
||||||
|
'search_term_to_field_key', 'custom_field_metadata',
|
||||||
|
'all_metadata'):
|
||||||
|
setattr(self, func, getattr(self.field_metadata, func))
|
||||||
|
self.metadata_for_field = self.field_metadata.get
|
||||||
|
|
||||||
self.last_update_check = self.last_modified()
|
self.last_update_check = self.last_modified()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
@ -273,6 +281,11 @@ class LibraryDatabase(object):
|
|||||||
return list(self.new_api.get_ids_for_custom_book_data(name))
|
return list(self.new_api.get_ids_for_custom_book_data(name))
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
def get_field(self, index, key, default=None, index_is_id=False):
|
||||||
|
book_id = index if index_is_id else self.data.index_to_id(index)
|
||||||
|
mi = self.new_api.get_metadata(book_id, get_cover=key == 'cover')
|
||||||
|
return mi.get(key, default)
|
||||||
|
|
||||||
# Private interface {{{
|
# Private interface {{{
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
|
@ -149,7 +149,15 @@ class LegacyTest(BaseTest):
|
|||||||
'all_publishers':[()],
|
'all_publishers':[()],
|
||||||
'all_titles':[()],
|
'all_titles':[()],
|
||||||
'all_series':[()],
|
'all_series':[()],
|
||||||
|
'standard_field_keys':[()],
|
||||||
|
'all_field_keys':[()],
|
||||||
|
'searchable_fields':[()],
|
||||||
|
'search_term_to_field_key':[('author',), ('tag',)],
|
||||||
|
'metadata_for_field':[('title',), ('tags',)],
|
||||||
|
'sortable_field_keys':[()],
|
||||||
|
'custom_field_keys':[(True,), (False,)],
|
||||||
'get_usage_count_by_id':[('authors',), ('tags',), ('series',), ('publisher',), ('#tags',), ('languages',)],
|
'get_usage_count_by_id':[('authors',), ('tags',), ('series',), ('publisher',), ('#tags',), ('languages',)],
|
||||||
|
'get_field':[(1, 'title'), (2, 'tags'), (0, 'rating'), (1, 'authors'), (2, 'series'), (1, '#tags')],
|
||||||
}.iteritems():
|
}.iteritems():
|
||||||
for a in args:
|
for a in args:
|
||||||
fmt = lambda x: x
|
fmt = lambda x: x
|
||||||
|
@ -776,10 +776,10 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
return self.field_metadata.sortable_field_keys()
|
return self.field_metadata.sortable_field_keys()
|
||||||
|
|
||||||
def searchable_fields(self):
|
def searchable_fields(self):
|
||||||
return self.field_metadata.searchable_field_keys()
|
return self.field_metadata.searchable_fields()
|
||||||
|
|
||||||
def search_term_to_field_key(self, term):
|
def search_term_to_field_key(self, term):
|
||||||
return self.field_metadata.search_term_to_key(term)
|
return self.field_metadata.search_term_to_field_key(term)
|
||||||
|
|
||||||
def custom_field_metadata(self, include_composites=True):
|
def custom_field_metadata(self, include_composites=True):
|
||||||
return self.field_metadata.custom_field_metadata(include_composites)
|
return self.field_metadata.custom_field_metadata(include_composites)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user