'Download and pre-process all articles from the feeds in this recipe.
This method should be called only once on a particular Recipe instance.
Calling it more than once will lead to undefined behavior.
:return: Path to index.html'

def download(self):

    try:
        res = self.build_index()
        self.report_progress(1, _('Download    finished'))
        if self.failed_downloads:
            self.log.warning(_('Failed    to    download    the    following    articles:'))
            for (feed, article, debug) in self.failed_downloads:
                self.log.warning(article.title, 'from', feed.title)
                self.log.debug(article.url)
                self.log.debug(debug)
        if self.partial_failures:
            self.log.warning(_('Failed    to    download    parts    of    the    following    articles:'))
            for (feed, atitle, aurl, debug) in self.partial_failures:
                self.log.warning(((atitle + _('    from    ')) + feed))
                self.log.debug(aurl)
                self.log.warning(_(' DCTB Failed    links:'))
                for (l, tb) in debug:
                    self.log.warning(l)
                    self.log.debug(tb)
        return res
    finally:
        self.cleanup()
