mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
IGN:Fix minor bugs in setting metadata for MOBI and EPUB
This commit is contained in:
parent
f8aa3bf8de
commit
d439798750
@ -141,6 +141,7 @@ def set_file_type_metadata(stream, mi, ftype):
|
|||||||
plugin.set_metadata(stream, mi, ftype.lower().strip())
|
plugin.set_metadata(stream, mi, ftype.lower().strip())
|
||||||
break
|
break
|
||||||
except:
|
except:
|
||||||
|
print 'Failed to set metadata for', repr(getattr(mi, 'title', ''))
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,9 +86,9 @@ class MetadataUpdater(object):
|
|||||||
image_base, = unpack('>I', record0[108:112])
|
image_base, = unpack('>I', record0[108:112])
|
||||||
flags, = unpack('>I', record0[128:132])
|
flags, = unpack('>I', record0[128:132])
|
||||||
have_exth = self.have_exth = (flags & 0x40) != 0
|
have_exth = self.have_exth = (flags & 0x40) != 0
|
||||||
|
self.cover_record = self.thumbnail_record = None
|
||||||
if not have_exth:
|
if not have_exth:
|
||||||
return
|
return
|
||||||
self.cover_record = self.thumbnail_record = None
|
|
||||||
exth_off = unpack('>I', record0[20:24])[0] + 16 + record0.start
|
exth_off = unpack('>I', record0[20:24])[0] + 16 + record0.start
|
||||||
exth = self.exth = StreamSlicer(stream, exth_off, record0.stop)
|
exth = self.exth = StreamSlicer(stream, exth_off, record0.stop)
|
||||||
nitems, = unpack('>I', exth[8:12])
|
nitems, = unpack('>I', exth[8:12])
|
||||||
@ -143,6 +143,8 @@ class MetadataUpdater(object):
|
|||||||
exth = ['EXTH', pack('>II', len(exth) + 12, len(recs)), exth, pad]
|
exth = ['EXTH', pack('>II', len(exth) + 12, len(recs)), exth, pad]
|
||||||
exth = ''.join(exth)
|
exth = ''.join(exth)
|
||||||
title = (mi.title or _('Unknown')).encode(self.codec, 'replace')
|
title = (mi.title or _('Unknown')).encode(self.codec, 'replace')
|
||||||
|
if getattr(self, 'exth', None) is None:
|
||||||
|
raise MobiError('No existing EXTH record. Cannot update metadata.')
|
||||||
title_off = (self.exth.start - self.record0.start) + len(exth)
|
title_off = (self.exth.start - self.record0.start) + len(exth)
|
||||||
title_len = len(title)
|
title_len = len(title)
|
||||||
trail = len(self.exth) - len(exth) - len(title)
|
trail = len(self.exth) - len(exth) - len(title)
|
||||||
|
@ -618,7 +618,7 @@ class OPF(object):
|
|||||||
def fset(self, val):
|
def fset(self, val):
|
||||||
remove = list(self.authors_path(self.metadata))
|
remove = list(self.authors_path(self.metadata))
|
||||||
for elem in remove:
|
for elem in remove:
|
||||||
self.metadata.remove(elem)
|
elem.getparent().remove(elem)
|
||||||
for author in val:
|
for author in val:
|
||||||
attrib = {'{%s}role'%self.NAMESPACES['opf']: 'aut'}
|
attrib = {'{%s}role'%self.NAMESPACES['opf']: 'aut'}
|
||||||
elem = self.create_metadata_element('creator', attrib=attrib)
|
elem = self.create_metadata_element('creator', attrib=attrib)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user