diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 96310d2111..7d7421c601 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -832,9 +832,8 @@ class EPUB_MOBI(CatalogPlugin): # Methods def buildSources(self): if self.booksByTitle is None: - self.fetchBooksByTitle() - if not len(self.booksByTitle): - return False + if not self.fetchBooksByTitle(): + return False self.fetchBooksByAuthor() self.generateHTMLDescriptions() self.generateHTMLByAuthor() @@ -996,14 +995,18 @@ class EPUB_MOBI(CatalogPlugin): titles.append(this_title) # Re-sort based on title_sort - self.booksByTitle = sorted(titles, - key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) - if False and self.verbose: - self.opts.log.info("fetchBooksByTitle(): %d books" % len(self.booksByTitle)) - self.opts.log.info(" %-40s %-40s" % ('title', 'title_sort')) - for title in self.booksByTitle: - self.opts.log.info((u" %-40s %-40s" % (title['title'][0:40], - title['title_sort'][0:40])).encode('utf-8')) + if len(titles): + self.booksByTitle = sorted(titles, + key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) + if False and self.verbose: + self.opts.log.info("fetchBooksByTitle(): %d books" % len(self.booksByTitle)) + self.opts.log.info(" %-40s %-40s" % ('title', 'title_sort')) + for title in self.booksByTitle: + self.opts.log.info((u" %-40s %-40s" % (title['title'][0:40], + title['title_sort'][0:40])).encode('utf-8')) + return True + else: + return False def fetchBooksByAuthor(self): # Generate a list of titles sorted by author from the database