diff --git a/commands/http.js b/commands/http.js new file mode 100644 index 0000000..7e7392e --- /dev/null +++ b/commands/http.js @@ -0,0 +1,47 @@ +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("http", spamwatchMiddleware, async (ctx) => { + const Strings = getStrings(ctx.from.language_code); + const userInput = ctx.message.text.split(' ')[1]; + const apiUrl = "https://status.js.org/codes.json"; + + if (!userInput || isNaN(userInput)) { + return ctx.reply(Strings.httpCodeInvalid, { + parse_mode: 'Markdown', + reply_to_message_id: ctx.message.message_id + }); + }; + + try { + const response = await axios.get(apiUrl); + const data = response.data; + const codesArray = Array.isArray(data) ? data : Object.values(data); + const codeInfo = codesArray.find(item => item.code === parseInt(userInput)); + + if (codeInfo) { + const message = Strings.httpCodeResult + .replace("{code}", codeInfo.code) + .replace("{description}", codeInfo.description); + await ctx.reply(message, { + parse_mode: 'Markdown', + reply_to_message_id: ctx.message.message_id + }); + } else { + await ctx.reply(Strings.httpCodeNotFound, { + parse_mode: 'Markdown', + reply_to_message_id: ctx.message.message_id + }); + }; + } catch (error) { + const message = Strings.httpCodeErr.replace("{error}", error); + ctx.reply(message, { + parse_mode: 'Markdown', + reply_to_message_id: ctx.message.message_id + }); + }; + }); +}; diff --git a/locales/english.json b/locales/english.json index b2af016..d3118d5 100644 --- a/locales/english.json +++ b/locales/english.json @@ -48,7 +48,7 @@ "mainCommands": "Main commands", "mainCommandsDesc": "*Main commands*\n\n- /help: Show bot's help\n- /start: Start the bot\n- /privacy: Read the bot's Privacy Policy", "usefulCommands": "Useful commands", - "usefulCommandsDesc": "*Useful commands*\n\n- /chatinfo: Send information about the group\n- /userinfo: Send information about yourself\n- /d | /device ``: Search for a device on GSMArena and show its specs.\n- /weather | /clima ``: See weather status for a specific location.\n- /modarchive | /tma ``: Download a module from The Mod Archive.\n- /wiki (WIP): Displays content from a Wikipedia page, converting some things to a more familiar format on Telegram.", + "usefulCommandsDesc": "*Useful commands*\n\n- /chatinfo: Send information about the group\n- /userinfo: Send information about yourself\n- /d | /device ``: Search for a device on GSMArena and show its specs.\n- /weather | /clima ``: See weather status for a specific location.\n- /modarchive | /tma ``: Download a module from The Mod Archive.\n- /wiki `` (WIP): Displays content from a Wikipedia page, converting some things to a more familiar format on Telegram.\n- /http ``: Send details about a specific HTTP code. Example: `/http 404`", "funnyCommands": "Funny commands", "funnyCommandsDesc": "*Funny commands*\n\n- /gay: Check if you are gay\n- /furry: Check if you are a furry\n- /random: Pick a random number between 0-10", "interactiveEmojis": "Interactive emojis", @@ -77,5 +77,9 @@ "catGifErr": "Sorry, but I couldn't get the cat GIF you wanted.", "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." + "dogImgErr": "Sorry, but I couldn't get the dog photo you wanted.", + "httpCodeInvalid": "Please enter a valid HTTP code.", + "httpCodeErr": "An error occurred while fetching the HTTP code.", + "httpCodeNotFound": "HTTP code not found.", + "httpCodeResult": "*HTTP Code*: {code}\n*Description*: {description}" } \ No newline at end of file diff --git a/locales/portuguese.json b/locales/portuguese.json index 4ff334b..20c2195 100644 --- a/locales/portuguese.json +++ b/locales/portuguese.json @@ -48,7 +48,7 @@ "mainCommands": "Comandos principais", "mainCommandsDesc": "*Comandos principais*\n\n- /help: Exibe a ajuda do bot\n- /start: Inicia o bot\n- /privacy: Leia a política de privacidade do bot", "usefulCommands": "Comandos úteis", - "usefulCommandsDesc": "*Comandos úteis*\n\n- /chatinfo: Envia informações sobre o grupo\n- /userinfo: Envia informações sobre você\n- /d | /device ``: Pesquisa um dispositivo no GSMArena e mostra suas especificações.\n- /weather | /clima ``: Veja o status do clima para uma localização específica\n- /modarchive | /tma ``: Baixa um módulo do The Mod Archive.\n- /wiki (WIP): Exibe conteúdo de uma página da Wikipedia, convertendo algumas coisas para um formato mais familiar no Telegram.", + "usefulCommandsDesc": "*Comandos úteis*\n\n- /chatinfo: Envia informações sobre o grupo\n- /userinfo: Envia informações sobre você\n- /d | /device ``: Pesquisa um dispositivo no GSMArena e mostra suas especificações.\n- /weather | /clima ``: Veja o status do clima para uma localização específica\n- /modarchive | /tma ``: Baixa um módulo do The Mod Archive.\n- /wiki `` (WIP): Exibe conteúdo de uma página da Wikipedia, convertendo algumas coisas para um formato mais familiar no Telegram.\n- /http ``: Envia detalhes sobre um código HTTP específico. Exemplo: `/http 404`", "funnyCommands": "Comandos engraçados", "funnyCommandsDesc": "*Comandos engraçados*\n\n- /gay: Verifique se você é gay\n- /furry: Verifique se você é furry\n- /random: Escolhe um número aleatório entre 0-10", "interactiveEmojis": "Emojis interativos", @@ -77,5 +77,9 @@ "catGifErr": "Desculpe, mas não consegui obter o GIF do gato que você queria.", "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." + "dogImgErr": "Desculpe, mas não consegui obter a foto do cacbhorro que você queria.", + "httpCodeInvalid": "Por favor, insira um código HTTP válido.", + "httpCodeErr": "Ocorreu um erro ao buscar o código HTTP.", + "httpCodeNotFound": "Código HTTP não encontrado.", + "httpCodeResult": "*Código HTTP*: {code}\n*Descrição*: {description}" } \ No newline at end of file diff --git a/locales/spanish.json b/locales/spanish.json index 3c3351a..be95d63 100644 --- a/locales/spanish.json +++ b/locales/spanish.json @@ -48,7 +48,7 @@ "mainCommands": "Comandos principales", "mainCommandsDesc": "*Comandos principales*\n\n- /help: Muestra la ayuda del bot\n- /start: Inicia el bot\n- /privacy: Lee la política de privacidad del bot", "usefulCommands": "Comandos útiles", - "usefulCommandsDesc": "*Comandos útiles*\n\n- /chatinfo: Envía información sobre el grupo\n- /userinfo: Envía información sobre ti\n- /d | /device ``: Busca un dispositivo en GSMArena y muestra sus especificaciones.\n- /weather | /clima ``: Ve el estado del clima para una ubicación específica\n- /modarchive | /tma ``: Descarga un módulo del The Mod Archive.\n- /wiki (WIP): Muestra contenido de una página de Wikipedia, convirtiendo algunas cosas a un formato más familiar en Telegram.", + "usefulCommandsDesc": "*Comandos útiles*\n\n- /chatinfo: Envía información sobre el grupo\n- /userinfo: Envía información sobre ti\n- /d | /device ``: Busca un dispositivo en GSMArena y muestra sus especificaciones.\n- /weather | /clima ``: Ve el estado del clima para una ubicación específica\n- /modarchive | /tma ``: Descarga un módulo del The Mod Archive.\n- /wiki `` (WIP): Muestra contenido de una página de Wikipedia, convirtiendo algunas cosas a un formato más familiar en Telegram.\n- /http ``: Envía detalles sobre un código HTTP específico. Ejemplo: `/http 404`", "funnyCommands": "Comandos graciosos", "funnyCommandsDesc": "*Comandos graciosos*\n\n- /gay: Verifica si eres gay\n- /furry: Verifica si eres furry\n- /random: Elige un número aleatorio entre 0-10", "interactiveEmojis": "Emojis interactivos", @@ -77,5 +77,9 @@ "catGifErr": "Lo siento, pero no pude obtener el GIF del gato que querías.", "quoteResult": "Aquí tienes una cita aleatoria para ti (en inglés):", "quoteErr": "Lo siento, pero algo salió mal al mostrar la cita.", - "dogImgErr": "Lo siento, pero no pude obtener la foto del perro que querías." + "dogImgErr": "Lo siento, pero no pude obtener la foto del perro que querías.", + "httpCodeInvalid": "Por favor, ingrese un código HTTP válido.", + "httpCodeErr": "Ocurrió un error al buscar el código HTTP.", + "httpCodeNotFound": "Código HTTP no encontrado.", + "httpCodeResult": "*Código HTTP*: {code}\n*Descripción*: {description}" } \ No newline at end of file