AZW3 Input: Fix a bug that prevented conversion of AZW3 files that contained an empty CSS media block. Fixes #1426220 [Private bug](https://bugs.launchpad.net/calibre/+bug/1426220)

This commit is contained in:
Kovid Goyal 2015-02-27 12:10:12 +05:30
parent c920ab7298
commit 0bb121817a

View File

@ -314,10 +314,14 @@ def handle_media_queries(raw):
parser = tinycss.make_full_parser() parser = tinycss.make_full_parser()
def replace(m): def replace(m):
sheet = parser.parse_stylesheet(m.group() + '}') sheet = parser.parse_stylesheet(m.group() + '}')
for mq in sheet.rules[0].media: if len(sheet.rules) > 0:
# Only accept KF8 media types for mq in sheet.rules[0].media:
if (mq.media_type, mq.negated) in {('amzn-mobi', True), ('amzn-kf8', False)}: # Only accept KF8 media types
return '@media screen {' if (mq.media_type, mq.negated) in {('amzn-mobi', True), ('amzn-kf8', False)}:
return '@media screen {'
else:
# Empty sheet, doesn't matter what we use
return '@media screen {'
return m.group() return m.group()
return re.sub(r'@media\s[^{]*{', replace, raw) return re.sub(r'@media\s[^{]*{', replace, raw)