mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
GwR patch for missing OPF
This commit is contained in:
parent
79249a8429
commit
1c5efc3d1c
@ -163,6 +163,8 @@ class ITUNES(DriverBase):
|
|||||||
settings()
|
settings()
|
||||||
set_progress_reporter()
|
set_progress_reporter()
|
||||||
upload_books()
|
upload_books()
|
||||||
|
_get_fpath()
|
||||||
|
_update_epub_metadata()
|
||||||
add_books_to_metadata()
|
add_books_to_metadata()
|
||||||
use_plugboard_ext()
|
use_plugboard_ext()
|
||||||
set_plugboard()
|
set_plugboard()
|
||||||
@ -2621,42 +2623,42 @@ class ITUNES(DriverBase):
|
|||||||
# Touch the OPF timestamp
|
# Touch the OPF timestamp
|
||||||
try:
|
try:
|
||||||
zf_opf = ZipFile(fpath,'r')
|
zf_opf = ZipFile(fpath,'r')
|
||||||
|
fnames = zf_opf.namelist()
|
||||||
|
opf = [x for x in fnames if '.opf' in x][0]
|
||||||
except:
|
except:
|
||||||
raise UserFeedback("'%s' is not a valid EPUB" % metadata.title,
|
raise UserFeedback("'%s' is not a valid EPUB" % metadata.title,
|
||||||
None,
|
None,
|
||||||
level=UserFeedback.WARN)
|
level=UserFeedback.WARN)
|
||||||
fnames = zf_opf.namelist()
|
|
||||||
opf = [x for x in fnames if '.opf' in x][0]
|
opf_tree = etree.fromstring(zf_opf.read(opf))
|
||||||
if opf:
|
md_els = opf_tree.xpath('.//*[local-name()="metadata"]')
|
||||||
opf_tree = etree.fromstring(zf_opf.read(opf))
|
if md_els:
|
||||||
md_els = opf_tree.xpath('.//*[local-name()="metadata"]')
|
ts = md_els[0].find('.//*[@name="calibre:timestamp"]')
|
||||||
if md_els:
|
if ts is not None:
|
||||||
ts = md_els[0].find('.//*[@name="calibre:timestamp"]')
|
timestamp = ts.get('content')
|
||||||
if ts is not None:
|
old_ts = parse_date(timestamp)
|
||||||
timestamp = ts.get('content')
|
metadata.timestamp = datetime.datetime(old_ts.year, old_ts.month, old_ts.day, old_ts.hour,
|
||||||
old_ts = parse_date(timestamp)
|
old_ts.minute, old_ts.second, old_ts.microsecond+1, old_ts.tzinfo)
|
||||||
metadata.timestamp = datetime.datetime(old_ts.year, old_ts.month, old_ts.day, old_ts.hour,
|
if DEBUG:
|
||||||
old_ts.minute, old_ts.second, old_ts.microsecond+1, old_ts.tzinfo)
|
self.log.info(" existing timestamp: %s" % metadata.timestamp)
|
||||||
if DEBUG:
|
|
||||||
self.log.info(" existing timestamp: %s" % metadata.timestamp)
|
|
||||||
else:
|
|
||||||
metadata.timestamp = now()
|
|
||||||
if DEBUG:
|
|
||||||
self.log.info(" add timestamp: %s" % metadata.timestamp)
|
|
||||||
else:
|
else:
|
||||||
metadata.timestamp = now()
|
metadata.timestamp = now()
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
self.log.warning(" missing <metadata> block in OPF file")
|
|
||||||
self.log.info(" add timestamp: %s" % metadata.timestamp)
|
self.log.info(" add timestamp: %s" % metadata.timestamp)
|
||||||
# Force the language declaration for iBooks 1.1
|
else:
|
||||||
#metadata.language = get_lang().replace('_', '-')
|
metadata.timestamp = now()
|
||||||
|
|
||||||
# Updates from metadata plugboard (ignoring publisher)
|
|
||||||
metadata.language = metadata_x.language
|
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
if metadata.language != metadata_x.language:
|
self.log.warning(" missing <metadata> block in OPF file")
|
||||||
self.log.info(" rewriting language: <dc:language>%s</dc:language>" % metadata.language)
|
self.log.info(" add timestamp: %s" % metadata.timestamp)
|
||||||
|
# Force the language declaration for iBooks 1.1
|
||||||
|
#metadata.language = get_lang().replace('_', '-')
|
||||||
|
|
||||||
|
# Updates from metadata plugboard (ignoring publisher)
|
||||||
|
metadata.language = metadata_x.language
|
||||||
|
|
||||||
|
if DEBUG:
|
||||||
|
if metadata.language != metadata_x.language:
|
||||||
|
self.log.info(" rewriting language: <dc:language>%s</dc:language>" % metadata.language)
|
||||||
|
|
||||||
zf_opf.close()
|
zf_opf.close()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user