mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #8097 (Some Kindle azw books have svg code which disrupts Calibre viewer)
This commit is contained in:
parent
de1fc05bd2
commit
7d3fb20c6b
@ -513,11 +513,14 @@ class MobiReader(object):
|
|||||||
mobi_version = self.book_header.mobi_version
|
mobi_version = self.book_header.mobi_version
|
||||||
for x in root.xpath('//ncx'):
|
for x in root.xpath('//ncx'):
|
||||||
x.getparent().remove(x)
|
x.getparent().remove(x)
|
||||||
|
svg_tags = []
|
||||||
for i, tag in enumerate(root.iter(etree.Element)):
|
for i, tag in enumerate(root.iter(etree.Element)):
|
||||||
tag.attrib.pop('xmlns', '')
|
tag.attrib.pop('xmlns', '')
|
||||||
for x in tag.attrib:
|
for x in tag.attrib:
|
||||||
if ':' in x:
|
if ':' in x:
|
||||||
del tag.attrib[x]
|
del tag.attrib[x]
|
||||||
|
if tag.tag and barename(tag.tag) == 'svg':
|
||||||
|
svg_tags.append(tag)
|
||||||
if tag.tag and barename(tag.tag.lower()) in \
|
if tag.tag and barename(tag.tag.lower()) in \
|
||||||
('country-region', 'place', 'placetype', 'placename',
|
('country-region', 'place', 'placetype', 'placename',
|
||||||
'state', 'city', 'street', 'address', 'content', 'form'):
|
'state', 'city', 'street', 'address', 'content', 'form'):
|
||||||
@ -628,6 +631,11 @@ class MobiReader(object):
|
|||||||
cls = cls + (' ' if cls else '') + ncls
|
cls = cls + (' ' if cls else '') + ncls
|
||||||
attrib['class'] = cls
|
attrib['class'] = cls
|
||||||
|
|
||||||
|
for tag in svg_tags:
|
||||||
|
p = tag.getparent()
|
||||||
|
if hasattr(p, 'remove'):
|
||||||
|
p.remove(tag)
|
||||||
|
|
||||||
def create_opf(self, htmlfile, guide=None, root=None):
|
def create_opf(self, htmlfile, guide=None, root=None):
|
||||||
mi = getattr(self.book_header.exth, 'mi', self.embedded_mi)
|
mi = getattr(self.book_header.exth, 'mi', self.embedded_mi)
|
||||||
if mi is None:
|
if mi is None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user