Google Translate, remove some aliases

This commit is contained in:
Daniel Odendahl Jr
2017-11-06 13:58:33 +00:00
parent a15ea3e499
commit 5e686f222f
9 changed files with 69 additions and 96 deletions
+17 -16
View File
@@ -3,13 +3,12 @@ const { MessageEmbed } = require('discord.js');
const snekfetch = require('snekfetch');
const { list } = require('../../util/Util');
const codes = require('../../assets/json/translate');
const { YANDEX_KEY } = process.env;
module.exports = class TranslateCommand extends Command {
constructor(client) {
super(client, {
name: 'translate',
aliases: ['yandex', 'yandex-translate', 'translate-yandex'],
aliases: ['google-translate'],
group: 'text-edit',
memberName: 'translate',
description: 'Translates text to a specified language.',
@@ -17,7 +16,8 @@ module.exports = class TranslateCommand extends Command {
clientPermissions: ['EMBED_LINKS'],
args: [
{
key: 'text',
key: 'content',
label: 'text',
prompt: 'What text would you like to translate?',
type: 'string',
max: 500
@@ -41,7 +41,7 @@ module.exports = class TranslateCommand extends Command {
key: 'base',
prompt: `Which language would you like to use as the base? Either ${list(Object.keys(codes), 'or')}.`,
type: 'string',
default: '',
default: 'auto',
validate: base => {
const value = base.toLowerCase();
if (codes[value] || Object.keys(codes).find(key => codes[key].toLowerCase() === value)) return true;
@@ -57,23 +57,24 @@ module.exports = class TranslateCommand extends Command {
});
}
async run(msg, { text, target, base }) {
async run(msg, { content, target, base }) {
try {
const { body } = await snekfetch
.get('https://translate.yandex.net/api/v1.5/tr.json/translate')
const { text } = await snekfetch
.get('https://translate.googleapis.com/translate_a/single')
.query({
key: YANDEX_KEY,
text,
lang: base ? `${base}-${target}` : target
client: 'gtx',
sl: base,
tl: target,
dt: 't',
q: content
});
const lang = body.lang.split('-');
const body = JSON.parse(text);
const embed = new MessageEmbed()
.setColor(0xFF0000)
.setFooter('Powered by Yandex.Translate', 'https://i.imgur.com/HMpH9sq.png')
.addField(` From: ${codes[lang[0]]}`,
.setColor(0x3174F1)
.addField(` From: ${codes[body[2]]}`,
text)
.addField(` To: ${codes[lang[1]]}`,
body.text[0]);
.addField(` To: ${codes[target]}`,
body[0][0][0]);
return msg.embed(embed);
} catch (err) {
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);