From f01feb7468438218bbfb8c5f6563e237ccbb1487 Mon Sep 17 00:00:00 2001 From: Luquinhas Date: Sat, 8 Feb 2025 20:51:21 -0300 Subject: [PATCH] Random fox image --- src/commands/fox.js | 25 +++++++++++++++++++++++++ src/locales/english.json | 1 + src/locales/portuguese.json | 1 + src/props/resources.json | 3 ++- 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/commands/fox.js diff --git a/src/commands/fox.js b/src/commands/fox.js new file mode 100644 index 0000000..3bc46a5 --- /dev/null +++ b/src/commands/fox.js @@ -0,0 +1,25 @@ +const Resources = require('../props/resources.json'); +const { getStrings } = require('../plugins/checklang.js'); +const { isOnSpamWatch } = require('../plugins/lib-spamwatch/spamwatch.js'); +const spamwatchMiddleware = require('../plugins/lib-spamwatch/Middleware.js')(isOnSpamWatch); +const axios = require("axios"); + +module.exports = (bot) => { + bot.command("fox", spamwatchMiddleware, async (ctx) => { + const Strings = getStrings(ctx.from.language_code); + try { + const response = await axios(Resources.foxApi); + ctx.replyWithPhoto(response.data.image, { + caption: response.data.link, + reply_to_message_id: ctx.message.message_id + }); + } catch (error) { + const message = Strings.foxApiErr.replace('{error}', error.message); + ctx.reply(message, { + parse_mode: 'Markdown', + reply_to_message_id: ctx.message.message_id + }); + return; + } + }); +} \ No newline at end of file diff --git a/src/locales/english.json b/src/locales/english.json index 4ca7f5e..a414145 100644 --- a/src/locales/english.json +++ b/src/locales/english.json @@ -86,6 +86,7 @@ "quoteResult": "Here is a random quote for you:", "quoteErr": "Sorry, but something went wrong while displaying the quote.", "dogImgErr": "Sorry, but I couldn't get the dog photo you wanted.", + "foxApiErr": "An error occurred while fetching data from the API.\n\n`{error}`", "httpCodes": { "invalidCode": "Please enter a valid HTTP code.", "fetchErr": "An error occurred while fetching the HTTP code.", diff --git a/src/locales/portuguese.json b/src/locales/portuguese.json index eadb3de..3b76e96 100644 --- a/src/locales/portuguese.json +++ b/src/locales/portuguese.json @@ -86,6 +86,7 @@ "quoteResult": "Aqui está uma citação aleatória pra você (em inglês):", "quoteErr": "Desculpe, mas algo deu errado ao exibir a citação.", "dogImgErr": "Desculpe, mas não consegui obter a foto do cacbhorro que você queria.", + "foxApiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`", "httpCodes": { "invalidCode": "Por favor, insira um código HTTP válido.", "fetchErr": "Ocorreu um erro ao buscar o código HTTP.", diff --git a/src/props/resources.json b/src/props/resources.json index f9eb35b..4dec09a 100644 --- a/src/props/resources.json +++ b/src/props/resources.json @@ -18,5 +18,6 @@ "ponyApi": "http://ponyapi.net/v1", "quoteApi": "https://quotes-api-self.vercel.app/quote", "weatherApi": "https://api.weather.com/v3", - "randomPonyApi": "https://theponyapi.com/api/v1/pony/random" + "randomPonyApi": "https://theponyapi.com/api/v1/pony/random", + "foxApi": "https://randomfox.ca/floof/" } \ No newline at end of file