Browse Source

Fix handling of mulilingual defines.

tags/v0.2
Ben Kurtovic 10 years ago
parent
commit
05fc3a3e4a
1 changed files with 8 additions and 5 deletions
  1. +8
    -5
      earwigbot/commands/dictionary.py

+ 8
- 5
earwigbot/commands/dictionary.py View File

@@ -51,9 +51,6 @@ class Dictionary(Command):
except exceptions.SiteNotFoundError: except exceptions.SiteNotFoundError:
site = self.bot.wiki.add_site(project="wiktionary", lang=lang) site = self.bot.wiki.add_site(project="wiktionary", lang=lang)


multilingual = "#" in term
if multilingual:
lang_requested = term.rsplit("#", 1)[1]
page = site.get_page(term, follow_redirects=True) page = site.get_page(term, follow_redirects=True)
try: try:
entry = page.get() entry = page.get()
@@ -68,11 +65,17 @@ class Dictionary(Command):
if not languages: if not languages:
return u"Couldn't parse {0}!".format(page.url) return u"Couldn't parse {0}!".format(page.url)


if "#" in term: # Requesting a specific language
lang = term.rsplit("#", 1)[1]
if lang not in languages:
resp = u"Language {0} not found in definition."
return resp.format(lang)
definition = self.get_definition(languages[lang], level)
return u"({0}) {1}".format(lang, definition)

result = [] result = []
for lang, section in sorted(languages.items()): for lang, section in sorted(languages.items()):
definition = self.get_definition(section, level) definition = self.get_definition(section, level)
if multilingual and lang == lang_requested:
return u"({0}) {1}".format(lang, definition)
result.append(u"({0}) {1}".format(lang, definition)) result.append(u"({0}) {1}".format(lang, definition))
return u"; ".join(result) return u"; ".join(result)




Loading…
Cancel
Save