diff --git a/src/commands/ponyapi.ts b/src/commands/ponyapi.ts index 2202949..daf99c7 100644 --- a/src/commands/ponyapi.ts +++ b/src/commands/ponyapi.ts @@ -74,6 +74,15 @@ export default (bot: Telegraf) => { return; } + // if special characters or numbers (max 30 characters) + if (/[^a-zA-Z\s]/.test(userInput) || userInput.length > 30) { + ctx.reply(Strings.mlpInvalidCharacter, { + parse_mode: 'Markdown', + ...({ reply_to_message_id }) + }); + return; + } + const capitalizedInput = capitalizeFirstLetter(userInput); const apiUrl = `${Resources.ponyApi}/character/${capitalizedInput}`; @@ -148,6 +157,14 @@ export default (bot: Telegraf) => { return; } + if (Number(userInput) > 100) { + ctx.reply(Strings.mlpInvalidEpisode, { + parse_mode: 'Markdown', + ...({ reply_to_message_id }) + }); + return; + } + const apiUrl = `${Resources.ponyApi}/episode/by-overall/${userInput}`; try { @@ -218,6 +235,15 @@ export default (bot: Telegraf) => { return; }; + // if special characters or numbers (max 30 characters) + if (/[^a-zA-Z\s]/.test(userInput) || userInput.length > 30) { + ctx.reply(Strings.mlpInvalidCharacter, { + parse_mode: 'Markdown', + ...({ reply_to_message_id }) + }); + return; + } + const apiUrl = `${Resources.ponyApi}/comics-story/${userInput}`; try { diff --git a/src/locales/english.json b/src/locales/english.json index 0d9f6dd..4bc9c06 100644 --- a/src/locales/english.json +++ b/src/locales/english.json @@ -84,6 +84,8 @@ "catImgErr": "Sorry, but I couldn't get the cat photo you wanted.", "catGifErr": "Sorry, but I couldn't get the cat GIF you wanted.", "dogImgErr": "Sorry, but I couldn't get the dog photo you wanted.", + "mlpInvalidCharacter": "Please provide a valid character name.", + "mlpInvalidEpisode": "Please provide a valid episode number.", "foxApiErr": "An error occurred while fetching data from the API.\n\n`{error}`", "duckApiErr": "An error occurred while fetching data from the API.\n\n`{error}`", "httpCodes": { diff --git a/src/locales/portuguese.json b/src/locales/portuguese.json index 5416fa5..0e13aaf 100644 --- a/src/locales/portuguese.json +++ b/src/locales/portuguese.json @@ -84,6 +84,8 @@ "catImgErr": "Desculpe, mas não consegui obter a foto do gato que você queria.", "catGifErr": "Desculpe, mas não consegui obter o GIF do gato que você queria.", "dogImgErr": "Desculpe, mas não consegui obter a foto do cacbhorro que você queria.", + "mlpInvalidCharacter": "Por favor, forneça um nome de personagem válido.", + "mlpInvalidEpisode": "Por favor, forneça um número de episódio válido.", "foxApiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`", "duckApiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`", "httpCodes": {