Skip to content

Bot para el server de Discord de Sysarmy

License

Notifications You must be signed in to change notification settings

sysarmy/bot.ai

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BOFH - Discord community bot for Sysarmy

Version 1.2 - Sep 2024

by @Qwuor01 and @aragunde

License GPL v2 - Ver LICENSE en repositorio


SUMMARY

Este es un bot que desarrollamos para el uso diario del servidor de Discord de Sysarmy. Tiene incluidos comandos varios que venimos usando hace bastante tiempo, como tambien otros nuevos comandos de lifestyle (?).

Si tenes sugerencias para nuevos comandos, o mejorar los existentes, sentite libre de abrir un issue en el repo de ideas de Sysarmy: Disneyland, o simplemente charlando en nuestro discord

Este bot funciona con la libreria de discord.py. Este bot utiliza respuestas e interacciones en embed (si se ejecuta via slash commands) o con ctx (si se ejecuta via texto con el prefijo !). No usamos cogs porque es un quilombo. Algunos comandos funcionan de forma mas completa y linda via slash commands, pero tambien de forma mas simple via comandos con prefijo ! por la gente que se suma via IRC / slack / telegram porque reject modernity embrace tradition.

Ademas usamos SQLite para guardar todos los usuarios del server y manejar puntajes de karma, quotes, etc. Lo hicimos asi porque sino no escala. Este bot esta pensado para un server con miles y miles de usuarios, por lo que se vuelve menester manejar la data de una forma mas estable y segura.


DEPENDENCIAS Y LIBRERIAS

Check requirements.txt

pip install -r requirements.txt


FUNCIONAMIENTO DE COMANDOS

Todos los comandos funcionan tanto como Discord slash commands como con el prefijo !: esto quiere decir que cualquier comando nuevo que se agregue en main va a ser sincronizado y cargado en la lista de slash commands disponibles al iniciar el bot. Pero si tambien se tiene que ejecutar con prefijo, se tiene que crear aparte (dentro de src/ctxcommands). Esto lo hacmos asi para simplificar la vida con el distinto manejo de variables entre "ctx" e "interaction" de Discord.

Algunos comandos como los de Clima, Fulbo, Cripto, etc. usan calls de APIs gratuitas por una cuestion de presupuesto. Por ese motivo limitamos las API calls por una cuestion higienica. Esto se puede modificar y va a depender de la API que se use en cada caso.

El comando help detalla instrucciones de uso para cada uno.

Comandos incluidos:

  • De feriados --> !feriadomx !feriadoar !feriadouy !feriadocl !feriadoes
  • Lifestyle --> !underground !subte !clima !fulbo !flip !shrug
  • Economia --> !cripto !dolar !euro !pesos
  • Karma --> !rank !karma !kgiven !kgivers
  • Quote --> !q !qsearch !qadd
  • Comunidad --> !birras !nerdearla
  • Jobs --> !jobs /jobsearch /jobpost (solo para rol recruiter)

SISTEMA DE KARMA

El sistema de Karma esta concebido para que los usuarios o puedan recibir karma++ o karma--, y de esa manera tomarle el pulso (?) a la comunidad. Tambien para hacer un reconocimiento a los miembros del server, cuando un usuario da karma++, se le adjudica +1 de 'karmagiven'.

Como funciona? Facil:

Se puede dar karma al autor de un mensaje reaccionando con un emoji especifico en Dicord:

  • Karma++ lo da el emoji :karmaup:
  • Karma-- lo da el emoji :karmadown:
  • Si la reaccion se quita, el karma es quitado o devuelto segun corresponda
  • Tambien se puede dar karma via texto a una palabra o usuario con ++ o --. Por ejemplo: fedora++ o usuario--

!rank se utiliza ver el ranking de usuarios o palabras con mas Karma

!kgivers se utiliza para ver el ranking de usuarios que mas dieron Karma

!karma se utilizar para ver el karma de un usuario o palabra en particular

!kgiven se utilizar para ver el karmagiven de un usuario en particular


SISTEMA DE QUOTES

El sistema de quotes funciona de una forma similar al de Karma. Se quotea un mensaje simplemente reaccionando con el emoji de discord :quote: y dicho mensaje se guarda en la base.

  • Si la reaccion se quita, el quote se remueve de la base de datos.
  • Un mensaje solo puede ser quoteado una vez. Si un usuario vuelve a reaccionar con :quote: a un mensaje, el quote es negado.
  • Mensajes tambien pueden ser quoteados via texto usando el comando !qadd y siguiendo un formato especifico ungido por el oraculo legendario de Sysarmy.

!q se utiliza para traer un quote aleatorio del historial !qsearch se utiliza para traer un quote en base a un keyword (incluyendo usuario) !qsearch se utiliza para quotear via texto y siguiendo un formato especifico ungido por el oraculo legendario de Sysarmy.

About

Bot para el server de Discord de Sysarmy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Dockerfile 0.1%