This commit is contained in:
Kovid Goyal 2010-02-12 12:27:09 -07:00
commit d5b4f4c36f

View File

@ -832,8 +832,7 @@ class EPUB_MOBI(CatalogPlugin):
# Methods
def buildSources(self):
if self.booksByTitle is None:
self.fetchBooksByTitle()
if not len(self.booksByTitle):
if not self.fetchBooksByTitle():
return False
self.fetchBooksByAuthor()
self.generateHTMLDescriptions()
@ -901,16 +900,15 @@ class EPUB_MOBI(CatalogPlugin):
self.opts.sort_by = 'title'
# Merge opts.exclude_tag with opts.search_text
# What if no exclude tags?
# Merge opts.exclude_tags with opts.search_text
# Updated to use exact match syntax
empty_exclude_tags = False if len(self.opts.exclude_tags) else True
search_phrase = ''
if not empty_exclude_tags:
exclude_tags = self.opts.exclude_tags.split(',')
search_terms = []
for tag in exclude_tags:
search_terms.append("tag:%s" % tag)
search_terms.append("tag:=%s" % tag)
search_phrase = "not (%s)" % " or ".join(search_terms)
# If a list of ids are provided, don't use search_text
@ -996,6 +994,7 @@ class EPUB_MOBI(CatalogPlugin):
titles.append(this_title)
# Re-sort based on title_sort
if len(titles):
self.booksByTitle = sorted(titles,
key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper()))
if False and self.verbose:
@ -1004,6 +1003,9 @@ class EPUB_MOBI(CatalogPlugin):
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