From 4bc7aa1b710e00bdefdd82bed915c8a977b2523e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 15 Sep 2010 21:56:02 -0600 Subject: [PATCH] More robust reading of user metadata from OPF --- src/calibre/ebooks/metadata/opf2.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index 96f1fa4832..ecbef3194d 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -531,6 +531,7 @@ class OPF(object): # {{{ def read_user_metadata(self): self._user_metadata_ = {} + temp = Metadata('x', ['x']) from calibre.utils.config import from_json elems = self.root.xpath('//*[name() = "meta" and starts-with(@name,' '"calibre:user_metadata:") and @content]') @@ -542,12 +543,13 @@ class OPF(object): # {{{ fm = elem.get('content') try: fm = json.loads(fm, object_hook=from_json) + temp.set_user_metadata(name, fm) except: prints('Failed to read user metadata:', name) import traceback traceback.print_exc() continue - self._user_metadata_[name] = fm + self._user_metadata_ = temp.get_all_user_metadata(True) def to_book_metadata(self): ans = MetaInformation(self)