Better error reporting when custom dict lookup fails

This commit is contained in:
Kovid Goyal 2016-01-30 11:58:17 +05:30
parent 25db09228f
commit 1f65446f5e

View File

@ -103,6 +103,7 @@ class EbookViewer(MainWindow):
self.closed = False self.closed = False
self.show_toc_on_open = False self.show_toc_on_open = False
self.listener = listener self.listener = listener
self.lookup_error_reported = {}
if listener is not None: if listener is not None:
t = Thread(name='ConnListener', target=listen, args=(self,)) t = Thread(name='ConnListener', target=listen, args=(self,))
t.daemon = True t.daemon = True
@ -352,11 +353,16 @@ class EbookViewer(MainWindow):
def lookup(self, word): def lookup(self, word):
from urllib import quote from urllib import quote
word = quote(word.encode('utf-8')) word = quote(word.encode('utf-8'))
lang = canonicalize_lang(self.view.current_language) or get_lang() or 'en'
try: try:
url = lookup_website(canonicalize_lang(self.view.current_language) or 'en').format(word=word) url = lookup_website(lang).format(word=word)
except Exception: except Exception:
traceback.print_exc() if not self.lookup_error_reported.get(lang):
url = default_lookup_website(canonicalize_lang(self.view.current_language) or 'en').format(word=word) self.lookup_error_reported[lang] = True
error_dialog(self, _('Failed to use dictionary'), _(
'Failed to use the custom dictionary for language: %s Falling back to default dictionary.') % lang,
det_msg=traceback.format_exc(), show=True)
url = default_lookup_website(lang).format(word=word)
open_url(url) open_url(url)
def print_book(self): def print_book(self):