From cde0383b67ac3189888be92a4e73fabccabd023e Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 26 Jan 2010 17:32:35 -0700 Subject: [PATCH] Raise MOBIError if type!=MOBIBOOK --- src/calibre/ebooks/metadata/mobi.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index cca2dc72dd..ff3dfe5809 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -91,6 +91,10 @@ class MetadataUpdater(object): self.stream = stream data = self.data = StreamSlicer(stream) self.type = data[60:68] + + if self.type != "BOOKMOBI": + return + self.nrecs, = unpack('>H', data[76:78]) record0 = self.record0 = self.record(0) self.encryption_type, = unpack('>H', record0[12:14]) @@ -271,6 +275,11 @@ class MetadataUpdater(object): return StreamSlicer(self.stream, start, stop) def update(self, mi): + print "self.type: %s" % self.type + if self.type != "BOOKMOBI": + raise MobiError("Setting metadata only supported for MOBI files of type 'BOOK'.\n" + "\tThis is a '%s' file of type '%s'" % (self.type[0:4], self.type[4:8])) + recs = [] try: from calibre.ebooks.conversion.config import load_defaults