Azure: add nativeName lookups.

This commit is contained in:
oddluck 2020-08-02 03:58:43 -04:00
parent 83c35b5b37
commit a7ed2b240a
2 changed files with 35 additions and 19 deletions

View File

@ -103,7 +103,8 @@ conf.registerChannelValue(
_( _(
""" """
The default reply template for the translate command. The default reply template for the translate command.
Variables are $text, $sourceISO, $sourceName, $targetISO, $targetName. Variables are $text, $sourceISO, $sourceName, $sourceNativeName,
$targetISO, $targetName, $targetNativeName.
""" """
), ),
), ),

View File

@ -69,26 +69,36 @@ class Azure(callbacks.Plugin):
url = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&" url = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&"
if source != "auto": if source != "auto":
if self.languages.get(source) and self.languages.get(target): if not self.languages.get(source):
url += "to={0}&from={1}".format(target, source)
else:
for lang in self.languages: for lang in self.languages:
if source.lower() in self.languages[lang]["name"].lower(): if (
source.lower() in self.languages[lang]["name"].lower()
or source.lower() in self.languages[lang]["nativeName"].lower()
):
source = lang source = lang
if target.lower() in self.languages[lang]["name"].lower(): break
if not self.languages.get(target):
for lang in self.languages:
if (
target.lower() in self.languages[lang]["name"].lower()
or target.lower() in self.languages[lang]["nativeName"].lower()
):
target = lang target = lang
break
if self.languages.get(source) and self.languages.get(target): if self.languages.get(source) and self.languages.get(target):
url += "to={0}&from={1}".format(target, source) url += "to={0}&from={1}".format(target, source)
else: else:
irc.reply("Invalid language selection.") irc.reply("Invalid language selection.")
return return
else: else:
if self.languages.get(target): if not self.languages.get(target):
url += "to={0}".format(target)
else:
for lang in self.languages: for lang in self.languages:
if target.lower() in self.languages[lang]["name"].lower(): if (
target.lower() in self.languages[lang]["name"].lower()
or target.lower() in self.languages[lang]["nativeName"].lower()
):
target = lang target = lang
break
if self.languages.get(target): if self.languages.get(target):
url += "to={0}".format(target) url += "to={0}".format(target)
else: else:
@ -109,14 +119,19 @@ class Azure(callbacks.Plugin):
results = { results = {
"text": result[0]["translations"][0]["text"], "text": result[0]["translations"][0]["text"],
"targetName": self.languages[target]["name"], "targetName": self.languages[target]["name"],
"targetNativeName": self.languages[target]["nativeName"],
"targetISO": target, "targetISO": target,
} }
if result[0].get("detectedLanguage"): if result[0].get("detectedLanguage"):
results["sourceName"] = self.languages[ results["sourceName"] = self.languages[
result[0]["detectedLanguage"]["language"] result[0]["detectedLanguage"]["language"]
]["name"] ]["name"]
results["sourceNativeName"] = self.languages[
result[0]["detectedLanguage"]["language"]
]["nativeName"]
else: else:
results["sourceName"] = self.languages[source]["name"] results["sourceName"] = self.languages[source]["name"]
results["sourceNativeName"] = self.languages[source]["nativeName"]
irc.reply(template.safe_substitute(results)) irc.reply(template.safe_substitute(results))
translate = wrap(translate, [getopts({"from": "text", "to": "text"}), "text"]) translate = wrap(translate, [getopts({"from": "text", "to": "text"}), "text"])