mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Fix an infinite recursion error if the user chooses a non-existent default author search source
Fixes #1690449 [Maximum recursion depth exceeded error](https://bugs.launchpad.net/calibre/+bug/1690449)
This commit is contained in:
parent
abe50ef5ef
commit
95d15ae9ff
@ -12,7 +12,7 @@ from binascii import hexlify
|
|||||||
|
|
||||||
from calibre import prepare_string_for_xml, force_unicode
|
from calibre import prepare_string_for_xml, force_unicode
|
||||||
from calibre.ebooks.metadata import fmt_sidx, rating_to_stars
|
from calibre.ebooks.metadata import fmt_sidx, rating_to_stars
|
||||||
from calibre.ebooks.metadata.search_internet import name_for, url_for_author_search, url_for_book_search, qquote
|
from calibre.ebooks.metadata.search_internet import name_for, url_for_author_search, url_for_book_search, qquote, DEFAULT_AUTHOR_SOURCE
|
||||||
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
|
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
|
||||||
from calibre.constants import filesystem_encoding
|
from calibre.constants import filesystem_encoding
|
||||||
from calibre.library.comments import comments_to_html, markdown
|
from calibre.library.comments import comments_to_html, markdown
|
||||||
@ -56,7 +56,7 @@ def search_href(search_term, value):
|
|||||||
return prepare_string_for_xml('search:' + hexlify(search.encode('utf-8')), True)
|
return prepare_string_for_xml('search:' + hexlify(search.encode('utf-8')), True)
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_AUTHOR_LINK = 'search-goodreads'
|
DEFAULT_AUTHOR_LINK = 'search-{}'.format(DEFAULT_AUTHOR_SOURCE)
|
||||||
|
|
||||||
|
|
||||||
def author_search_href(which, title=None, author=None):
|
def author_search_href(which, title=None, author=None):
|
||||||
@ -67,7 +67,8 @@ def author_search_href(which, title=None, author=None):
|
|||||||
key, search_type = which.rpartition('-')[::2]
|
key, search_type = which.rpartition('-')[::2]
|
||||||
name = name_for(key)
|
name = name_for(key)
|
||||||
if name is None:
|
if name is None:
|
||||||
return author_search_href(DEFAULT_AUTHOR_LINK, title=title, author=author)
|
search_type = 'author'
|
||||||
|
return author_search_href(DEFAULT_AUTHOR_LINK.partition('-')[2], title=title, author=author)
|
||||||
if search_type == 'author':
|
if search_type == 'author':
|
||||||
tt = _('Search {0} for the author: {1}').format(name, author)
|
tt = _('Search {0} for the author: {1}').format(name, author)
|
||||||
else:
|
else:
|
||||||
|
@ -37,6 +37,9 @@ NAMES = {
|
|||||||
'gimg': _('Google images'),
|
'gimg': _('Google images'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFAULT_AUTHOR_SOURCE = 'goodreads'
|
||||||
|
assert DEFAULT_AUTHOR_SOURCE in AUTHOR_SEARCHES
|
||||||
|
|
||||||
name_for = NAMES.get
|
name_for = NAMES.get
|
||||||
all_book_searches = BOOK_SEARCHES.__iter__
|
all_book_searches = BOOK_SEARCHES.__iter__
|
||||||
all_author_searches = AUTHOR_SEARCHES.__iter__
|
all_author_searches = AUTHOR_SEARCHES.__iter__
|
||||||
|
Loading…
x
Reference in New Issue
Block a user