Update README.md + Translations (#6)

* Update README.md

Now we don't have config.env anymore, we now use config.json inside props folder

* Add portuguese.json

* Set portuguese language if  user's telegram app is in portuguese

* oh fudge, I forgot this one

---------

Co-authored-by: GiovaniFZ <giovanifinazzi@gmail.com>
This commit is contained in:
mthlma 2024-07-25 23:40:22 -03:00 committed by GitHub
parent c692edbc66
commit fd3196a34f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 52 additions and 14 deletions

View File

@ -14,15 +14,15 @@ First, [make a fork of this repo](https://github.com/lucmsilva651/lynx/fork), or
```
git clone https://github.com/lucmsilva651/lynx
```
Next, go to the repository directory, create a ``Config.env`` file and put the content below:
Next, inside the repository directory, go to props folder and create a config.json file with the following content:
```
TGBOT_TOKEN="0000000000:AAAaaAAaaaaAaAaaAAAaaaAaaaaAAAAAaaa"
TGBOT_ADMINS=[0000000000, 1111111111, 2222222222]
SW_KEY="aAaAAaaAAaAA_AAAAAaaAAaaAAaaAAAAAAaaAaaAaaAAaaAAaAaAAaaAAaaAAaAaA"
{
"botToken": "0000000000:AAAaaAAaaaaAaAaaAAAaaaAaaaaAAAAAaaa",
"admins": [0000000000, 1111111111, 2222222222]
}
```
- **TGBOT_TOKEN**: Put your bot token that you created at [@BotFather](https://t.me/botfather) at the variable ``TGBOT_TOKEN`` (as the example above).
- **TGBOT_ADMINS**: Put the ID of the people responsible for managing the bot (as the example above). They can use some administrative + exclusive commands on any group.
- **SW_KEY**: A API key to make a blocklist to banned SpamWatch users. You can refer to SpamWatch docs to create a API key for yourself.
- **botToken**: Put your bot token that you created at [@BotFather](https://t.me/botfather), as the example above.
- **admins**: Put the ID of the people responsible for managing the bot (as the example above). They can use some administrative + exclusive commands on any group.
After editing the file, save all changes and run the bot with ``npm start``.

11
commands/checklang.js Normal file
View File

@ -0,0 +1,11 @@
function getStrings(languageCode) {
if (languageCode === 'pt-br') {
return require('../locales/portuguese.json');
} else {
return require('../locales/english.json');
}
}
module.exports = {
getStrings
};

View File

@ -1,7 +1,8 @@
const Strings = require('../locales/english.json');
const resources = require('../props/resources.json');
const { getStrings } = require('./checklang');
function furryFunction(ctx) {
const Strings = getStrings(ctx.from.language_code);
if (Math.random() < 0.5 ? "yes" : "no" === "yes") {
ctx.replyWithAnimation(
resources.furryGif, {
@ -21,6 +22,7 @@ function furryFunction(ctx) {
}
function gayFunction(ctx) {
const Strings = getStrings(ctx.from.language_code);
if (Math.random() < 0.5 ? "yes" : "no" === "yes") {
ctx.replyWithAnimation(
resources.gayFlag, {

View File

@ -1,6 +1,6 @@
const Strings = require('../locales/english.json');
const Config = require('../props/config.json');
const os = require('os');
const { getStrings } = require('./checklang');
function formatUptime(uptime) {
const hours = Math.floor(uptime / 3600);
@ -34,6 +34,7 @@ function getSystemInfo() {
// Função para obter informações do usuário
async function getUserInfo(ctx) {
const Strings = getStrings(ctx.from.language_code);
let userInfoTemplate = Strings.userInfo;
const userName = ctx.from.first_name || Strings.unKnown;
@ -56,6 +57,7 @@ async function getUserInfo(ctx) {
// Função para obter informações do chat
async function getChatInfo(ctx) {
const Strings = getStrings(ctx.from.language_code);
if (ctx.chat.type === 'group' || ctx.chat.type === 'supergroup') {
let chatInfoTemplate = Strings.chatInfo;

View File

@ -1,8 +1,9 @@
const Strings = require('../locales/english.json');
const { getStrings } = require('./checklang');
const resources = require('../props/resources.json');
module.exports = (bot) => {
bot.help((ctx) => {
const Strings = getStrings(ctx.from.language_code);
ctx.replyWithPhoto(
resources.lynxFullPhoto, {
caption: Strings.lynxHelp,

View File

@ -1,7 +1,8 @@
const Strings = require('../locales/english.json');
const { getStrings } = require('./checklang');
module.exports = (bot) => {
bot.command('privacy', (ctx) => {
const Strings = getStrings(ctx.from.language_code);
ctx.reply(
Strings.lynxPrivacy, {
parse_mode: 'Markdown',

View File

@ -1,4 +1,4 @@
const Strings = require('../locales/english.json');
const { getStrings } = require('./checklang');
function getRandomInt(max) {
return Math.floor(Math.random() * max);
@ -6,6 +6,7 @@ function getRandomInt(max) {
module.exports = (bot) => {
bot.command('random', (ctx) => {
const Strings = getStrings(ctx.from.language_code);
const randomValue = getRandomInt(11);
const randomVStr = Strings.randomNum.replace('{number}', randomValue);

View File

@ -1,8 +1,9 @@
const Strings = require('../locales/english.json');
const resources = require('../props/resources.json');
const { getStrings } = require('./checklang');
module.exports = (bot) => {
bot.start((ctx) => {
const Strings = getStrings(ctx.from.language_code);
ctx.replyWithPhoto(
resources.lynxProfilePhoto, {
caption: Strings.lynxWelcome,

20
locales/portuguese.json Normal file
View File

@ -0,0 +1,20 @@
{
"lynxWelcome": "*Olá! Eu sou o Lynx!*\nEu fui feito com amor por Lucas Gabriel (lucmsilva)!\n\n*Antes de usar, você precisará ler a política de privacidade (/privacy) para entender para onde seus dados vão ao usar este bot.\n\n*Além disso, você pode usar /help para mostrar os comandos do bot.",
"lynxHelp": "*Olá! Eu sou o Lynx!*\n\nSou um simples bot feito inteiramente do zero em Telegraf + Node.js por Lucas Gabriel (lucmsilva).\n\n*Alguns comandos para testar:*\n• */chatinfo* - manda algumas informações sobre o grupo\n• */customize* - customiza seus pronomes (WIP)\n• */furry* - checa se você é um furry\n• */gay* - checa se você é gay\n• */help* - manda essa mensagem\n• */privacy* - lê a política de privacidade\n• */random* - escolhe um número aleatório entre 0-10\n• */start* - Inicia o bot\n• */userinfo* - manda algumas informações sobre você\n\n*Veja o código fonte em:* [GitHub Repository](https://github.com/lucmsilva651/lynx)\n\nObrigado a todos os usuários, testers, contribuidores e outros. Sem vocês, talvez esse bot não seria possível ❤️",
"lynxPrivacy": "*Cheque o link abaixo para ler a política de privacidade do bot:*\n• https://blog.eleu.me/posts/lynx-privacy-policy",
"unKnown": "Desconhecido",
"varYes": "Sim",
"varNo": "Não",
"varNone": "Nenhum",
"noPermission": "Você não tem permissões para rodar esse comando.",
"privateOnly": "Esse comando deve ser utilizado apenas em chats privados, e não em grupos.",
"groupOnly": "Esse comando deve ser utilizado apenas em grupos, e não em chats privados.",
"isGay": "Sim, você é *gay*!",
"isNtGay": "Aahhh. Você não é gay!",
"isFurry": "Sim, você é um esquisito *furry*!",
"isNtFurry": "Aahhh. Você não é um furry!",
"randomNum": "*Número gerado (0-10):* `{number}`",
"userInfo": "*Informações do usuário*\n\n*Seu nome é:* `{userName}`\n*Seu username é:* `{userHandle}`\n*Seu ID é:* `{userId}`\n*Você é um bot:* `{isBot}`\n*Seu idioma:* `{userLang}`\n*Você é um usuário premium:* `{userPremium}`",
"chatInfo": "*Informações do grupo*\n\n*Nome do chat:* `{chatName}`\n*ID do chat:* `{chatId}`\n*Identificador:* `{chatHandle}`\n*Tipo de chat* `{chatType}`\n*Número de membros:* `{chatMembersCount}`\n*É um fórum:* `{isForum}`"
}

1
package-lock.json generated
View File

@ -308,7 +308,6 @@
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz",
"integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==",
"license": "MIT",
"dependencies": {
"chokidar": "^3.5.2",
"debug": "^4",