Haha-Yes/commands/utility/translate.js

62 lines
2.3 KiB
JavaScript
Raw Normal View History

2018-12-30 01:20:24 +01:00
const { Command } = require('discord-akairo');
2018-12-02 01:46:24 +01:00
const Discord = require('discord.js');
2018-12-30 01:20:24 +01:00
const fetch = require('node-fetch');
2018-12-02 01:46:24 +01:00
const { yandexAPI } = require('../../config.json');
2018-12-02 01:34:15 +01:00
2018-12-30 01:20:24 +01:00
class TranslationCommand extends Command {
constructor() {
super('translation', {
aliases: ['translation', 'trn'],
category: 'utility',
2018-12-31 20:56:13 +01:00
split: 'sticky',
2018-12-30 01:20:24 +01:00
description: 'Translate the text you send into the lanuguage you selected',
2018-12-02 01:34:15 +01:00
args: [
2018-12-02 04:26:22 +01:00
{
2018-12-30 01:20:24 +01:00
id: 'language',
2018-12-02 04:26:22 +01:00
type: 'string',
2018-12-30 01:20:24 +01:00
default: 'en'
2018-12-02 04:26:22 +01:00
},
2018-12-02 01:34:15 +01:00
{
2018-12-30 01:20:24 +01:00
id: 'text',
2018-12-02 01:34:15 +01:00
type: 'string',
}
2018-12-30 01:20:24 +01:00
],
description: {
content: 'Translate what you send in your desired language. You can find the language code here: https://tech.yandex.com/translate/doc/dg/concepts/api-overview-docpage/',
usage: '[language code] [Text to translate]',
examples: ['fr What are we doing today?', 'en Que faisons-nous aujourd\'hui?']
}
2018-12-02 01:34:15 +01:00
});
}
2018-12-30 01:20:24 +01:00
async exec(message, args) {
let language = args.language;
let text = args.text;
2018-12-02 01:34:15 +01:00
2018-12-02 18:23:18 +01:00
let textURI = encodeURI(text)
fetch(`https://translate.yandex.net/api/v1.5/tr.json/translate?key=${yandexAPI}&text=${textURI}&lang=${language}&options=1`,{
2018-12-02 01:34:15 +01:00
}).then((response) => {
2018-12-30 01:20:24 +01:00
return response.json();
}).then((response) => {
if (response.code == '502')
return message.channel.send(`${response.message}, you probably didin't input the correct language code, you can check them here! https://tech.yandex.com/translate/doc/dg/concepts/api-overview-docpage/`)
else if (response.code != '200')
return message.channel.send('An error has occured')
2018-12-02 01:46:24 +01:00
const translationEmbed = new Discord.RichEmbed()
2018-12-30 01:20:24 +01:00
.setColor('#0099ff')
.setTitle('Asked for the following translation:')
.setAuthor(message.author.username)
.setDescription(response.text[0])
.addField('Original text', text)
.addField('Translated from', response.detected.lang)
.setTimestamp()
.setFooter('Powered by Yandex.Translate ');
message.channel.send(translationEmbed)
2018-12-02 01:34:15 +01:00
});
2018-12-30 01:20:24 +01:00
}
}
module.exports = TranslationCommand;