From 76a2154a903ea67b1f9f3d9da4e685c508482954 Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Sat, 20 Jun 2020 11:57:57 -0400 Subject: [PATCH] Fix translate bug in resolving languages --- commands/edit-text/translate.js | 32 +++++++++++--------------------- package.json | 2 +- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/commands/edit-text/translate.js b/commands/edit-text/translate.js index d7bf3945..6da7e72f 100644 --- a/commands/edit-text/translate.js +++ b/commands/edit-text/translate.js @@ -2,7 +2,7 @@ const Command = require('../../structures/Command'); const { MessageEmbed } = require('discord.js'); const translate = require('@vitalets/google-translate-api'); const { list } = require('../../util/Util'); -const codes = translate.languages; +const codes = Object.keys(translate.languages).filter(code => typeof translate.languages[code] !== 'function'); module.exports = class TranslateCommand extends Command { constructor(client) { @@ -12,7 +12,7 @@ module.exports = class TranslateCommand extends Command { group: 'edit-text', memberName: 'translate', description: 'Translates text to a specific language.', - details: `**Codes:** ${Object.keys(codes).join(', ')}`, + details: `**Codes:** ${codes.join(', ')}`, clientPermissions: ['EMBED_LINKS'], credit: [ { @@ -31,18 +31,13 @@ module.exports = class TranslateCommand extends Command { }, { key: 'target', - prompt: `Which language would you like to translate to? Either ${list(Object.keys(codes), 'or')}.`, + prompt: `Which language would you like to translate to? Either ${list(codes, 'or')}.`, type: 'string', validate: target => { - const value = target.toLowerCase(); - if (codes[value] || Object.keys(codes).find(key => codes[key].toLowerCase() === value)) return true; - return `Invalid target, please enter either ${list(Object.keys(codes), 'or')}.`; + if (translate.languages.isSupported(target)) return true; + return `Invalid target, please enter either ${list(codes, 'or')}.`; }, - parse: target => { - const value = target.toLowerCase(); - if (codes[value]) return value; - return Object.keys(codes).find(key => codes[key].toLowerCase() === value); - } + parse: target => translate.languages.getCode(target) }, { key: 'base', @@ -50,15 +45,10 @@ module.exports = class TranslateCommand extends Command { type: 'string', default: 'auto', validate: base => { - const value = base.toLowerCase(); - if (codes[value] || Object.keys(codes).find(key => codes[key].toLowerCase() === value)) return true; - return `Invalid base, please enter either ${list(Object.keys(codes), 'or')}.`; + if (translate.languages.isSupported(base)) return true; + return `Invalid base, please enter either ${list(codes, 'or')}.`; }, - parse: base => { - const value = base.toLowerCase(); - if (codes[value]) return value; - return Object.keys(codes).find(key => codes[key].toLowerCase() === value); - } + parse: base => translate.languages.getCode(base) } ] }); @@ -70,8 +60,8 @@ module.exports = class TranslateCommand extends Command { const embed = new MessageEmbed() .setColor(0x4285F4) .setFooter('Powered by Google Translate', 'https://i.imgur.com/h3RoHyp.png') - .addField(`❯ From: ${codes[from.language.iso]}`, from.text.value || text) - .addField(`❯ To: ${codes[target]}`, result); + .addField(`❯ From: ${translate.languages[from.language.iso]}`, from.text.value || text) + .addField(`❯ To: ${translate.languages[target]}`, result); return msg.embed(embed); } catch (err) { return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); diff --git a/package.json b/package.json index 370dacc0..acfa1b89 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "116.34.3", + "version": "116.34.4", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {