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 { 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 { STATICS } = require('../../../labscore/utils/statics');
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.from)) return editOrReply(context, createEmbed("warning", context, "Invalid language (from)."))
args.to = getCodeFromAny(args.to)
args.from = getCodeFromAny(args.from)
try{
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) {
if (!desiredLang) {
@ -16,11 +16,27 @@ function getCode(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;
}
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) {
return Boolean(getCode(desiredLang));
}