diff --git a/src/calibre/ebooks/fb2/input.py b/src/calibre/ebooks/fb2/input.py index 248f9bd524..f4f2df9cb5 100644 --- a/src/calibre/ebooks/fb2/input.py +++ b/src/calibre/ebooks/fb2/input.py @@ -60,6 +60,9 @@ class FB2Input(InputFormatPlugin): transform = etree.XSLT(styledoc) result = transform(doc) + for img in result.xpath('//img[@src]'): + src = img.get('src') + img.set('src', self.binary_map.get(src, src)) open('index.xhtml', 'wb').write(transform.tostring(result)) stream.seek(0) mi = get_metadata(stream, 'fb2') @@ -83,9 +86,15 @@ class FB2Input(InputFormatPlugin): return os.path.join(os.getcwd(), 'metadata.opf') def extract_embedded_content(self, doc): + self.binary_map = {} for elem in doc.xpath('./*'): if 'binary' in elem.tag and elem.attrib.has_key('id'): + ct = elem.get('content-type', '') fname = elem.attrib['id'] + ext = ct.rpartition('/')[-1].lower() + if ext in ('png', 'jpeg', 'jpg'): + fname += '.' + ext + self.binary_map[elem.get('id')] = fname data = b64decode(elem.text.strip()) open(fname, 'wb').write(data) diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index 1fd124e688..7b4af2d162 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -234,7 +234,7 @@ class Scheduler(QObject): self.connect(self.timer, SIGNAL('timeout()'), self.check) self.oldest = gconf['oldest_news'] self.oldest_timer.start(int(60 * 60 * 1000)) - QTimer.singleShot(10 * 1000, self.oldest_check) + QTimer.singleShot(5 * 1000, self.oldest_check) self.database_changed = self.recipe_model.database_changed def oldest_check(self):