From f782ef0cb6348cc3deea6fe515ace73b5dd18b92 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Fri, 24 Sep 2010 17:56:27 +0100 Subject: [PATCH] Make format_field return '' instead of None when the value really is '' --- src/calibre/ebooks/metadata/book/base.py | 18 +++++++++--------- src/calibre/gui2/library/models.py | 2 +- src/calibre/library/server/mobile.py | 3 +-- src/calibre/library/server/opds.py | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 8791d59242..87d034aba8 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -432,14 +432,14 @@ class Metadata(object): if key in self.user_metadata_keys(): res = self.get(key, None) cmeta = self.get_user_metadata(key, make_copy=False) + name = unicode(cmeta['name']) if cmeta['datatype'] != 'composite' and (res is None or res == ''): - return (None, None, None, None) + return (name, res, None, None) orig_res = res cmeta = self.get_user_metadata(key, make_copy=False) if res is None or res == '': - return (None, None, None, None) + return (name, res, None, None) orig_res = res - name = unicode(cmeta['name']) datatype = cmeta['datatype'] if datatype == 'text' and cmeta['is_multiple']: res = u', '.join(res) @@ -454,11 +454,12 @@ class Metadata(object): if key in field_metadata and field_metadata[key]['kind'] == 'field': res = self.get(key, None) - if res is None or res == '': - return (None, None, None, None) - orig_res = res fmeta = field_metadata[key] name = unicode(fmeta['name']) + if res is None or res == '': + return (name, res, None, None) + orig_res = res + name = unicode(fmeta['name']) datatype = fmeta['datatype'] if key == 'authors': res = authors_to_string(res) @@ -508,9 +509,8 @@ class Metadata(object): fmt('Rights', unicode(self.rights)) for key in self.user_metadata_keys(): val = self.get(key, None) - if val is not None: - (name, val) = self.format_field(key) - fmt(name, unicode(val)) + (name, val) = self.format_field(key) + fmt(name, unicode(val)) return u'\n'.join(ans) def to_html(self): diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index d19bed49fe..fe1701a918 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -327,7 +327,7 @@ class BooksModel(QAbstractTableModel): # {{{ mi = self.db.get_metadata(idx) for key in mi.user_metadata_keys(): name, val = mi.format_field(key) - if val is not None: + if val: data[name] = val return data diff --git a/src/calibre/library/server/mobile.py b/src/calibre/library/server/mobile.py index 071c7b1077..c51de90c6d 100644 --- a/src/calibre/library/server/mobile.py +++ b/src/calibre/library/server/mobile.py @@ -125,7 +125,6 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS): series = u'[%s - %s]'%(book['series'], book['series_index']) \ if book['series'] else '' tags = u'Tags=[%s]'%book['tags'] if book['tags'] else '' - print tags ctext = '' for key in CKEYS: @@ -231,7 +230,7 @@ class MobileServer(object): return '%s:#:%s'%(name, unicode(val)) mi = self.db.get_metadata(record[CFM['id']['rec_index']], index_is_id=True) name, val = mi.format_field(key) - if val is None: + if not val: continue datatype = CFM[key]['datatype'] if datatype in ['comments']: diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py index 0e6917c504..bd5b2f36b3 100644 --- a/src/calibre/library/server/opds.py +++ b/src/calibre/library/server/opds.py @@ -160,7 +160,7 @@ def ACQUISITION_ENTRY(item, version, db, updated, CFM, CKEYS): for key in CKEYS: mi = db.get_metadata(item[CFM['id']['rec_index']], index_is_id=True) name, val = mi.format_field(key) - if val is not None: + if not val: datatype = CFM[key]['datatype'] if datatype == 'text' and CFM[key]['is_multiple']: extra.append('%s: %s
'%(name, format_tag_string(val, ',',