From 4cc19001821ac5b8ae545fe2e0e154ea44eac68e Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sat, 2 Jul 2011 11:17:03 +0100 Subject: [PATCH] Add has_cover() template function --- src/calibre/library/database2.py | 1 + src/calibre/utils/formatter_functions.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 3ebd63afde..f203f36bd9 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -963,6 +963,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): mi.cover_data = ('jpeg', cdata) else: mi.cover = self.cover(id, index_is_id=True, as_path=True) + mi.has_cover = _('Yes') if self.has_cover(id) else '' return mi def has_book(self, mi): diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 1684b9f85b..fcfd69d16d 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -679,6 +679,18 @@ class BuiltinOndevice(BuiltinFormatterFunction): return _('Yes') return '' +class BuiltinHasCover(BuiltinFormatterFunction): + name = 'has_cover' + arg_count = 0 + category = 'Get values from metadata' + __doc__ = doc = _('has_cover() -- return Yes if the book has a cover, ' + 'otherwise return the empty string') + + def evaluate(self, formatter, kwargs, mi, locals): + if mi.has_cover: + return _('Yes') + return '' + class BuiltinFirstNonEmpty(BuiltinFormatterFunction): name = 'first_non_empty' arg_count = -1 @@ -814,6 +826,7 @@ builtin_eval = BuiltinEval() builtin_first_non_empty = BuiltinFirstNonEmpty() builtin_field = BuiltinField() builtin_format_date = BuiltinFormatDate() +builtin_has_cover = BuiltinHasCover() builtin_identifier_in_list = BuiltinIdentifierInList() builtin_ifempty = BuiltinIfempty() builtin_in_list = BuiltinInList()