mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Conversion pipeline: Fix regression in 0.7.21 that broke conversion of LIT/EPUB documents that specified no title in their OPF files
This commit is contained in:
parent
3e6cc2042b
commit
768db24484
@ -654,8 +654,6 @@ class Metadata(object):
|
|||||||
if predicate(x):
|
if predicate(x):
|
||||||
l.remove(x)
|
l.remove(x)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
return self.items[key]
|
return self.items[key]
|
||||||
|
|
||||||
|
@ -132,17 +132,23 @@ class OEBReader(object):
|
|||||||
if not mi.language:
|
if not mi.language:
|
||||||
mi.language = get_lang().replace('_', '-')
|
mi.language = get_lang().replace('_', '-')
|
||||||
self.oeb.metadata.add('language', mi.language)
|
self.oeb.metadata.add('language', mi.language)
|
||||||
if not mi.title:
|
|
||||||
mi.title = self.oeb.translate(__('Unknown'))
|
|
||||||
if not mi.authors:
|
|
||||||
mi.authors = [self.oeb.translate(__('Unknown'))]
|
|
||||||
if not mi.book_producer:
|
if not mi.book_producer:
|
||||||
mi.book_producer = '%(a)s (%(v)s) [http://%(a)s.kovidgoyal.net]'%\
|
mi.book_producer = '%(a)s (%(v)s) [http://%(a)s.kovidgoyal.net]'%\
|
||||||
dict(a=__appname__, v=__version__)
|
dict(a=__appname__, v=__version__)
|
||||||
meta_info_to_oeb_metadata(mi, self.oeb.metadata, self.logger)
|
meta_info_to_oeb_metadata(mi, self.oeb.metadata, self.logger)
|
||||||
self.oeb.metadata.add('identifier', str(uuid.uuid4()), id='uuid_id',
|
m = self.oeb.metadata
|
||||||
scheme='uuid')
|
m.add('identifier', str(uuid.uuid4()), id='uuid_id', scheme='uuid')
|
||||||
self.oeb.uid = self.oeb.metadata.identifier[-1]
|
self.oeb.uid = self.oeb.metadata.identifier[-1]
|
||||||
|
if not m.title:
|
||||||
|
m.add('title', self.oeb.translate(__('Unknown')))
|
||||||
|
has_aut = False
|
||||||
|
for x in m.creator:
|
||||||
|
if getattr(x, 'role', '').lower() in ('', 'aut'):
|
||||||
|
has_aut = True
|
||||||
|
break
|
||||||
|
if not has_aut:
|
||||||
|
m.add('creator', self.oeb.translate(__('Unknown')), role='aut')
|
||||||
|
|
||||||
|
|
||||||
def _manifest_prune_invalid(self):
|
def _manifest_prune_invalid(self):
|
||||||
'''
|
'''
|
||||||
@ -364,10 +370,7 @@ class OEBReader(object):
|
|||||||
ncx = item.data
|
ncx = item.data
|
||||||
title = ''.join(xpath(ncx, 'ncx:docTitle/ncx:text/text()'))
|
title = ''.join(xpath(ncx, 'ncx:docTitle/ncx:text/text()'))
|
||||||
title = COLLAPSE_RE.sub(' ', title.strip())
|
title = COLLAPSE_RE.sub(' ', title.strip())
|
||||||
try:
|
|
||||||
title = title or unicode(self.oeb.metadata.title[0])
|
title = title or unicode(self.oeb.metadata.title[0])
|
||||||
except:
|
|
||||||
title = _('Unknown')
|
|
||||||
toc = self.oeb.toc
|
toc = self.oeb.toc
|
||||||
toc.title = title
|
toc.title = title
|
||||||
navmaps = xpath(ncx, 'ncx:navMap')
|
navmaps = xpath(ncx, 'ncx:navMap')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user