From 0bb121817ad7534b1cf75429aedd08fb9a93c72d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 27 Feb 2015 12:10:12 +0530 Subject: [PATCH] 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) --- src/calibre/ebooks/mobi/reader/markup.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/mobi/reader/markup.py b/src/calibre/ebooks/mobi/reader/markup.py index 98455e960c..00c847b843 100644 --- a/src/calibre/ebooks/mobi/reader/markup.py +++ b/src/calibre/ebooks/mobi/reader/markup.py @@ -314,10 +314,14 @@ def handle_media_queries(raw): parser = tinycss.make_full_parser() def replace(m): sheet = parser.parse_stylesheet(m.group() + '}') - for mq in sheet.rules[0].media: - # Only accept KF8 media types - if (mq.media_type, mq.negated) in {('amzn-mobi', True), ('amzn-kf8', False)}: - return '@media screen {' + if len(sheet.rules) > 0: + for mq in sheet.rules[0].media: + # Only accept KF8 media types + 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 re.sub(r'@media\s[^{]*{', replace, raw)