support flags in translate args

This commit is contained in:
derpystuff 2023-03-18 14:13:14 +01:00
parent 7789f194bf
commit 159ea53834
2 changed files with 27 additions and 8 deletions

View file

@ -1,9 +1,9 @@
const { createEmbed } = require('../../../labscore/utils/embed') const { createEmbed } = require('../../../labscore/utils/embed')
const { editOrReply } = require('../../../labscore/utils/message') const { editOrReply } = require('../../../labscore/utils/message')
const { codeblock, highlight, icon, pill } = require('../../../labscore/utils/markdown'); const { codeblock, icon, pill } = require('../../../labscore/utils/markdown');
const { isSupported } = require('../../../labscore/utils/translate'); const { isSupported, getCodeFromAny } = require('../../../labscore/utils/translate');
const { googleTranslate } = require('../../../labscore/api'); const { googleTranslate } = require('../../../labscore/api');
const { STATICS } = require('../../../labscore/utils/statics'); const { STATICS } = require('../../../labscore/utils/statics');
const { TRANSLATE_LANGUAGES, TRANSLATE_LANGUAGE_MAPPINGS } = require('../../../labscore/constants'); const { TRANSLATE_LANGUAGES, TRANSLATE_LANGUAGE_MAPPINGS } = require('../../../labscore/constants');
@ -37,6 +37,9 @@ module.exports = {
if(!isSupported(args.to)) return editOrReply(context, createEmbed("warning", context, "Invalid language (to).")) if(!isSupported(args.to)) return editOrReply(context, createEmbed("warning", context, "Invalid language (to)."))
if(!isSupported(args.from)) return editOrReply(context, createEmbed("warning", context, "Invalid language (from).")) if(!isSupported(args.from)) return editOrReply(context, createEmbed("warning", context, "Invalid language (from)."))
args.to = getCodeFromAny(args.to)
args.from = getCodeFromAny(args.from)
try{ try{
let translate = await googleTranslate(context, content, args.to, args.from) let translate = await googleTranslate(context, content, args.to, args.from)

View file

@ -1,4 +1,4 @@
const { TRANSLATE_LANGUAGES } = require("../constants"); const { TRANSLATE_LANGUAGES, TRANSLATE_LANGUAGE_MAPPINGS } = require("../constants");
function getCode(desiredLang) { function getCode(desiredLang) {
if (!desiredLang) { if (!desiredLang) {
@ -11,16 +11,32 @@ function getCode(desiredLang) {
} }
var keys = Object.keys(TRANSLATE_LANGUAGES).filter(function (key) { var keys = Object.keys(TRANSLATE_LANGUAGES).filter(function (key) {
if (typeof TRANSLATE_LANGUAGES[key] !== 'string') { if (typeof TRANSLATE_LANGUAGES[key] !== 'string') {
return false; return false;
} }
return TRANSLATE_LANGUAGES[key].toLowerCase() === desiredLang; return TRANSLATE_LANGUAGES[key].toLowerCase() === desiredLang;
}); });
keys.push(Object.keys(TRANSLATE_LANGUAGE_MAPPINGS).filter(function (key) {
if (typeof TRANSLATE_LANGUAGE_MAPPINGS[key] !== 'string') {
return false;
}
return TRANSLATE_LANGUAGE_MAPPINGS[key].toLowerCase() === desiredLang;
}));
return keys[0] || false; return keys[0] || false;
} }
module.exports.getCodeFromAny = function (prompt) {
if(TRANSLATE_LANGUAGES[prompt.toLowerCase()]) return prompt.toLowerCase()
let languages = [];
for(const i of Object.keys(TRANSLATE_LANGUAGES)) if(!languages.includes(i) && TRANSLATE_LANGUAGES[i].toLowerCase() == prompt.toLowerCase()) languages.push(i)
for(const i of Object.keys(TRANSLATE_LANGUAGE_MAPPINGS)) if(!languages.includes(i) && TRANSLATE_LANGUAGE_MAPPINGS[i].toLowerCase() == prompt.toLowerCase()) languages.push(i)
return languages[0];
};
module.exports.isSupported = function (desiredLang) { module.exports.isSupported = function (desiredLang) {
return Boolean(getCode(desiredLang)); return Boolean(getCode(desiredLang));
} }