mirror of
https://github.com/abocn/TelegramBot.git
synced 2025-03-10 12:49:57 +00:00
/cat command + spanish support + better language handling
This commit is contained in:
parent
0ba6f50d6f
commit
b4ed01e01f
43
commands/cat.js
Normal file
43
commands/cat.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
const { isOnSpamWatch } = require('../plugins/lib-spamwatch/spamwatch.js');
|
||||||
|
const spamwatchMiddleware = require('../plugins/lib-spamwatch/Middleware.js')(isOnSpamWatch);
|
||||||
|
|
||||||
|
module.exports = (bot) => {
|
||||||
|
bot.command("cat", spamwatchMiddleware, async (ctx) => {
|
||||||
|
const userInput = ctx.message.text.split(' ').slice(1).join(' ').replace(/\s+/g, '');
|
||||||
|
let request = "";
|
||||||
|
|
||||||
|
if (userInput && userInput.includes("gif")) {
|
||||||
|
request = `/gif${userInput.replace("gif", "")}`;
|
||||||
|
const apiUrl = `https://cataas.com/cat${request}`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
await ctx.replyWithAnimation(apiUrl, {
|
||||||
|
caption: apiUrl,
|
||||||
|
parse_mode: 'Markdown',
|
||||||
|
reply_to_message_id: ctx.message.message_id
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
ctx.reply(Strings.catGifErr, {
|
||||||
|
parse_mode: 'Markdown',
|
||||||
|
reply_to_message_id: ctx.message.message_id
|
||||||
|
});
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
request = userInput ? `/${userInput}` : '';
|
||||||
|
const apiUrl = `https://cataas.com/cat${request}`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
await ctx.replyWithPhoto(apiUrl, {
|
||||||
|
caption: apiUrl,
|
||||||
|
parse_mode: 'Markdown',
|
||||||
|
reply_to_message_id: ctx.message.message_id
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
ctx.reply(Strings.catImgErr, {
|
||||||
|
parse_mode: 'Markdown',
|
||||||
|
reply_to_message_id: ctx.message.message_id
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
@ -52,7 +52,7 @@
|
|||||||
"usefulCommands": "Useful commands",
|
"usefulCommands": "Useful commands",
|
||||||
"usefulCommandsDesc": "*Useful commands*\n\n- /chatinfo: Send information about the group\n- /userinfo: Send information about yourself\n- /d | /device `<model>`: Search for a device on GSMArena and show its specs.\n- /weather | /clima `<city>`: See weather status for a specific location.\n- /modarchive | /tma `<module id>`: Download a module from The Mod Archive.",
|
"usefulCommandsDesc": "*Useful commands*\n\n- /chatinfo: Send information about the group\n- /userinfo: Send information about yourself\n- /d | /device `<model>`: Search for a device on GSMArena and show its specs.\n- /weather | /clima `<city>`: See weather status for a specific location.\n- /modarchive | /tma `<module id>`: Download a module from The Mod Archive.",
|
||||||
"funnyCommands": "Funny commands",
|
"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\n- /soggy `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Sends the [Soggy cat meme](https://knowyourmeme.com/memes/soggy-cat)",
|
"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\n- /soggy `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Sends the [Soggy cat meme](https://knowyourmeme.com/memes/soggy-cat)\n - /cat `<tags>` - Sends a random picture of a cat. You can specify some tags, separating each by a comma. Example: `/cat orange, cute`",
|
||||||
"interactiveEmojis": "Interactive emojis",
|
"interactiveEmojis": "Interactive emojis",
|
||||||
"interactiveEmojisDesc": "*Interactive emojis*\n\n- /dice: Roll a dice\n- /idice: Infinitely roll a colored dice\n- /slot: Try to combine the figures!\n- /ball: Try to kick the ball into the goal!\n- /bowling: Try to hit the pins!\n- /dart: Try to hit the target!",
|
"interactiveEmojisDesc": "*Interactive emojis*\n\n- /dice: Roll a dice\n- /idice: Infinitely roll a colored dice\n- /slot: Try to combine the figures!\n- /ball: Try to kick the ball into the goal!\n- /bowling: Try to hit the pins!\n- /dart: Try to hit the target!",
|
||||||
"ytDlp": "yt-dlp (YouTube)",
|
"ytDlp": "yt-dlp (YouTube)",
|
||||||
@ -70,5 +70,7 @@
|
|||||||
"ytUploadLimit2": "*This video had its quality reduced because it exceeded the 50MB limit for uploads imposed by Telegram.*",
|
"ytUploadLimit2": "*This video had its quality reduced because it exceeded the 50MB limit for uploads imposed by Telegram.*",
|
||||||
"fileError": "Error uploading file",
|
"fileError": "Error uploading file",
|
||||||
"botUpdated": "Bot updated with success.\n\n```{result}```",
|
"botUpdated": "Bot updated with success.\n\n```{result}```",
|
||||||
"errorUpdatingBot": "Error updating bot\n\n{error}"
|
"errorUpdatingBot": "Error updating bot\n\n{error}",
|
||||||
|
"catImgErr": "Sorry, but I couldn't get the cat GIF you wanted.",
|
||||||
|
"catGifErr": "Sorry, but I couldn't get the cat photo you wanted."
|
||||||
}
|
}
|
@ -52,7 +52,7 @@
|
|||||||
"usefulCommands": "Comandos úteis",
|
"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 `<modelo>`: Pesquisa um dispositivo no GSMArena e mostra suas especificações.\n- /weather | /clima `<cidade>`: Veja o status do clima para uma localização específica\n- /modarchive | /tma `<id do módulo>`: Baixa um módulo do The Mod Archive.",
|
"usefulCommandsDesc": "*Comandos úteis*\n\n- /chatinfo: Envia informações sobre o grupo\n- /userinfo: Envia informações sobre você\n- /d | /device `<modelo>`: Pesquisa um dispositivo no GSMArena e mostra suas especificações.\n- /weather | /clima `<cidade>`: Veja o status do clima para uma localização específica\n- /modarchive | /tma `<id do módulo>`: Baixa um módulo do The Mod Archive.",
|
||||||
"funnyCommands": "Comandos engraçados",
|
"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\n- /soggy `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Envia o meme [Soggy cat](https://knowyourmeme.com/memes/soggy-cat)",
|
"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\n- /soggy `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Envia o meme [Soggy cat](https://knowyourmeme.com/memes/soggy-cat)\n- /cat `<tags>` - Envia uma foto aleatória de um gato. Você pode especificar algumas tags em inglês, separando cada uma por uma vírgula. Exemplo: `/cat orange, cute`",
|
||||||
"interactiveEmojis": "Emojis interativos",
|
"interactiveEmojis": "Emojis interativos",
|
||||||
"interactiveEmojisDesc": "*Emojis interativos*\n\n- /dice: Jogue um dado\n- /idice: Role infinitamente um dado colorido\n- /slot: Tente combinar as figuras!\n- /ball: Tente chutar a bola no gol!\n- /bowling: Tente derrubar os pinos!\n- /dart: Tente acertar o alvo!",
|
"interactiveEmojisDesc": "*Emojis interativos*\n\n- /dice: Jogue um dado\n- /idice: Role infinitamente um dado colorido\n- /slot: Tente combinar as figuras!\n- /ball: Tente chutar a bola no gol!\n- /bowling: Tente derrubar os pinos!\n- /dart: Tente acertar o alvo!",
|
||||||
"ytDlp": "yt-dlp (YouTube)",
|
"ytDlp": "yt-dlp (YouTube)",
|
||||||
@ -70,5 +70,7 @@
|
|||||||
"ytUploadLimit2": "*Esse vídeo teve a qualidade reduzida por estar excedendo o limite de 50MB para uploads imposto pelo Telegram.*",
|
"ytUploadLimit2": "*Esse vídeo teve a qualidade reduzida por estar excedendo o limite de 50MB para uploads imposto pelo Telegram.*",
|
||||||
"fileError": "Erro ao enviar o arquivo",
|
"fileError": "Erro ao enviar o arquivo",
|
||||||
"botUpdated": "Bot atualizado com sucesso.\n\n```{result}```",
|
"botUpdated": "Bot atualizado com sucesso.\n\n```{result}```",
|
||||||
"errorUpdatingBot": "Erro ao atualizar o bot\n\n{error}"
|
"errorUpdatingBot": "Erro ao atualizar o bot\n\n{error}",
|
||||||
|
"catImgErr": "Desculpe, mas não consegui obter o GIF do gato que você queria.",
|
||||||
|
"catGifErr": "Desculpe, mas não consegui obter a foto do gato que você queria."
|
||||||
}
|
}
|
76
locales/spanish.json
Normal file
76
locales/spanish.json
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"lynxWelcome": "*¡Hola! Soy Lynx!*\n¡Fui creado con cariño por Lucas Gabriel (@lukig1)! \n\n*Antes de usar, necesitas leer la política de privacidad (/privacy) para entender a dónde van tus datos al usar este bot.*\n\nAdemás, puedes usar /help para ver los comandos del bot!\n\n*¡Agradecimiento especial a @givfnz2 por sus diversas contribuciones al bot!*",
|
||||||
|
"lynxHelp": "*Hola, soy Lynx, un bot simple hecho desde cero en Telegraf y Node.js por Lucas Gabriel (lucmsilva).* \n\n¡Haz clic en los botones de abajo para ver qué comandos puedes usar!",
|
||||||
|
"lynxPrivacy": "Accede [a este enlace](https://blog.eleu.me/posts/lynx-privacy-policy) para leer la política de privacidad del bot.",
|
||||||
|
"unKnown": "Desconocido",
|
||||||
|
"varYes": "Sí",
|
||||||
|
"varNo": "No",
|
||||||
|
"varNone": "Ninguno",
|
||||||
|
"invalidOption": "¡Ups! ¡Opción inválida!",
|
||||||
|
"kickingMyself": "*Como no me necesitas, me iré de aquí.*",
|
||||||
|
"kickingMyselfErr": "Error al salir del chat.",
|
||||||
|
"noPermission": "No tienes permiso para ejecutar este comando.",
|
||||||
|
"botAdminOnly": "Este comando es exclusivo para los administradores generales del bot. No puedo revelar quiénes son ni lo que hace este comando.",
|
||||||
|
"privateOnly": "Este comando solo debe usarse en chats privados, no en grupos.",
|
||||||
|
"groupOnly": "Este comando solo debe usarse en grupos, no en chats privados.",
|
||||||
|
"botNameChanged": "*Nombre del bot cambiado a* `{botName}`.",
|
||||||
|
"botNameErr": "*Error al cambiar el nombre del bot:*\n`{tgErr}`",
|
||||||
|
"botDescChanged": "*Descripción del bot cambiada a* `{botDesc}`.",
|
||||||
|
"botDescErr": "*Error al cambiar la descripción del bot:*\n`{tgErr}`",
|
||||||
|
"invalidId": "Por favor, introduce un ID de usuario válido.",
|
||||||
|
"banSuccess": "Usuario con ID `{userId}` ha sido baneado.",
|
||||||
|
"banErr": "No se pudo banear al usuario. Verifica que el ID sea correcto y que el bot tenga permisos de administrador.\n\n`{tgErr}`",
|
||||||
|
"unBanSuccess": "Usuario con ID `{userId}` ha sido desbaneado.",
|
||||||
|
"unBanErr": "No se pudo desbanear al usuario. Verifica que el ID sea correcto y que el bot tenga permisos de administrador.\n\n`{tgErr}`",
|
||||||
|
"isGay": "¡Sí, eres *gay*!",
|
||||||
|
"isNtGay": "Ah, ¡no eres gay!",
|
||||||
|
"isFurry": "¡Sí, eres *furry*!",
|
||||||
|
"isNtFurry": "Ah, ¡no eres furry!",
|
||||||
|
"randomNum": "*Número generado (0-10):* `{number}`.",
|
||||||
|
"userInfo": "*Información del usuario*\n\n*Nombre:* `{userName}`\n*Usuario:* `{userHandle}`\n*ID:* `{userId}`\n*Idioma:* `{userLang}`\n*Usuario Premium:* `{userPremium}`",
|
||||||
|
"chatInfo": "*Información del chat*\n\n*Nombre:* `{chatName}`\n*ID del chat:* `{chatId}`\n*Identificador:* `{chatHandle}`\n*Tipo:* `{chatType}`\n*Membros:* `{chatMembersCount}`\n*Es un foro:* `{isForum}`",
|
||||||
|
"funEmojiResult": "*Lanzaste {emoji} y obtuviste *`{value}`*!*\n¿No sabes lo que significa? ¡Yo tampoco!",
|
||||||
|
"gifErr": "*Algo salió mal al enviar el GIF. Inténtalo de nuevo más tarde.*\n\n{err}",
|
||||||
|
"lastFm": "Last.fm",
|
||||||
|
"lastFmDesc": "*Last.fm*\n\n- /lt | /lmu | /last | /lfm: Muestra la última canción de tu perfil en Last.fm + el número de reproducciones.\n- /setuser `<usuario>`: Define el usuario para el comando anterior.",
|
||||||
|
"lastFmNoUser": "*Por favor, proporciona un nombre de usuario de Last.fm.*\nEjemplo: `/setuser <username>`",
|
||||||
|
"lastFmNoSet": "*Aún no has definido tu nombre de usuario de Last.fm.*\nUsa el comando /setuser para definirlo.\n\nEjemplo: `/setuser <username>`",
|
||||||
|
"lastFmNoRecent": "*No se encontró ninguna pista reciente para el usuario de Last.fm* `{lastfmUser}`*.*",
|
||||||
|
"lastFmListeningNow": "Escuchando ahora",
|
||||||
|
"lastFmUserSet": "*Tu nombre de usuario de Last.fm ha sido establecido como:* `{lastUser}`.",
|
||||||
|
"lastFmLastPlayed": "Última reproducción",
|
||||||
|
"lastFmStatusFor": "*Estado de Last.fm para el usuario* {lastfmUser}*:*\n\n*{nowPlaying}*: {trackName} de {artistName}\n\n*Número de reproducciones*: {plays}",
|
||||||
|
"lastFmErr": "*Error al recuperar datos para el usuario de Last.fm* {lastfmUser}.\n\n`{err}`",
|
||||||
|
"currentCommit": "*Commit actual:* `{commitHash}`",
|
||||||
|
"errorRetrievingCommit": "*Error al obtener el commit:*\n\n`{error}`",
|
||||||
|
"provideLocation": "*Por favor, proporciona una ubicación.*",
|
||||||
|
"invalidLocation": "*Ubicación inválida. Inténtalo de nuevo.*",
|
||||||
|
"weatherStatus": "*Clima en {addressFirst}:*\n\n*Estado:* `{getStatusEmoji(iconCode)} {wxPhraseLong}`\n*Temperatura:* `{temperature} °{temperatureUnit}`\n*Sensación térmica:* `{temperatureFeelsLike} °{temperatureUnit2}`\n*Humedad:* `{relativeHumidity}%`\n*Velocidad del viento:* `{windSpeed} {speedUnit}`",
|
||||||
|
"weatherErr": "*Ocurrió un error al obtener el clima. Inténtalo de nuevo más tarde.*\n\n`{error}`",
|
||||||
|
"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 `<modelo>`: Busca un dispositivo en GSMArena y muestra sus especificaciones.\n- /weather | /clima `<ciudad>`: Ve el estado del clima para una ubicación específica\n- /modarchive | /tma `<id del módulo>`: Descarga un módulo del The Mod Archive.",
|
||||||
|
"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\n- /soggy `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Envía el meme [Soggy cat](https://knowyourmeme.com/memes/soggy-cat)\n- /cat `<tags>` - Envía una foto aleatoria de un gato. Puedes especificar algunas etiquetas en inglés, separando cada una por una coma. Ejemplo: `/cat orange, cute`",
|
||||||
|
"interactiveEmojis": "Emojis interactivos",
|
||||||
|
"interactiveEmojisDesc": "*Emojis interactivos*\n\n- /dice: Tira un dado\n- /idice: Lanza infinitamente un dado de colores\n- /slot: ¡Intenta combinar las figuras!\n- /ball: ¡Intenta chutar la bola al gol!\n- /bowling: ¡Intenta derribar los bolos!\n- /dart: ¡Intenta acertar en el blanco!",
|
||||||
|
"ytDlp": "yt-dlp (YouTube)",
|
||||||
|
"ytDlpDesc": "*yt-dlp (YouTube)*\n\n- /yt | /ytdl `<enlace del video>`: Descarga un video de YouTube.\n\n¡Este comando también funciona con otras plataformas de video! Consulta [este enlace](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md) para obtener más información y saber qué servicios son compatibles.\n\n*Nota: Telegram actualmente limita las cargas de bots a 50 MB, lo que significa que si el video que deseas descargar es mayor de 50 MB, la calidad se reducirá para intentar cargarlo de todos modos. Estamos haciendo todo lo posible para sortear o corregir este problema.*",
|
||||||
|
"goBack": "Volver",
|
||||||
|
"maInvalidModule": "Por favor, proporciona un ID de módulo válido del The Mod Archive.\nEjemplo: `/modarchive 81574`",
|
||||||
|
"maDownloadError": "Error al descargar el archivo. Verifica el ID del módulo e inténtalo de nuevo.",
|
||||||
|
"ytDownloading": "*Descargando video...*",
|
||||||
|
"ytCheckingSize": "Verificando si el video excede el límite de 50 MB...",
|
||||||
|
"ytFileErr": "*Parece que el ejecutable de yt-dlp no existe en nuestro servidor...\n\nEn este caso, el problema está de nuestro lado. ¡Espera hasta que lo hayamos notado y resuelto!",
|
||||||
|
"ytUploading": "*Subiendo video...*",
|
||||||
|
"ytUploadDesc": "*[{userName}](tg://user?id={userId}), aquí está tu video descargado.*",
|
||||||
|
"ytDownloadErr": "*Error durante la descarga del video de YT:*\n\n`{err}`",
|
||||||
|
"ytUploadLimit": "*Este video excede el límite de carga de 50 MB impuesto por Telegram a nuestro bot. Por favor, intenta con otro video. Estamos haciendo lo posible para aumentar este límite.*",
|
||||||
|
"ytUploadLimit2": "*Este video tuvo la calidad reducida por exceder el límite de 50 MB para cargas impuesto por Telegram.*",
|
||||||
|
"fileError": "Error al enviar el archivo",
|
||||||
|
"botUpdated": "Bot actualizado con éxito.\n\n```{result}```",
|
||||||
|
"errorUpdatingBot": "Error al actualizar el bot\n\n{error}",
|
||||||
|
"catImgErr": "Lo siento, pero no pude obtener el GIF del gato que querías.",
|
||||||
|
"catGifErr": "Lo siento, pero no pude obtener la foto del gato que querías."
|
||||||
|
}
|
@ -1,7 +1,17 @@
|
|||||||
const languageFiles = {
|
const languageFiles = {
|
||||||
'pt': '../locales/portuguese.json',
|
'pt': '../locales/portuguese.json',
|
||||||
'pt-br': '../locales/portuguese.json',
|
'pt-br': '../locales/portuguese.json',
|
||||||
'en': '../locales/english.json'
|
'pt-pt': '../locales/portuguese.json',
|
||||||
|
'en': '../locales/english.json',
|
||||||
|
'en-us': '../locales/english.json',
|
||||||
|
'en-gb': '../locales/english.json',
|
||||||
|
'es': '../locales/spanish.json',
|
||||||
|
'es-es': '../locales/spanish.json',
|
||||||
|
'es-mx': '../locales/spanish.json',
|
||||||
|
'es-ar': '../locales/spanish.json',
|
||||||
|
'es-co': '../locales/spanish.json',
|
||||||
|
'es-cl': '../locales/spanish.json',
|
||||||
|
'es-pe': '../locales/spanish.json',
|
||||||
};
|
};
|
||||||
|
|
||||||
function getStrings(languageCode) {
|
function getStrings(languageCode) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user