Skip to content

INSAlgo/maurice

Repository files navigation

Maurice, le bot Discord d'INSAlgo, écrit par Maxence Younsi

Maurice

Challenge, Compétition, Algorithmie

C'est quoi cette bestiole

Pour stimuler et faire vivre l'association aprÚs les crises majeures de 2020, notre génial bureau a pensé à créer un robot Discord offrant un nouveau moyen en temps réel de se mesurer aux autres, et d'aller toujours plus loin pour progresser dans la discipline.

Commandes du bot

Commandes ne nécéssitant pas d'autorisation

  • !ping Pour savoir si le bot est en marche
  • !dep [dĂ©partement] Pour avoir des infos fiables et vĂ©rifĂ©es sur un dĂ©partement insalien (9 dispos, nique le FIMI)
  • !registerme <pseudo_Hackerrank S'inscrire dans le scoreboard
  • !help Afficher l'aide du bot

Commandes nécessitant le rÎle admin-bot

  • !register @<utilisateur_discord> <pseudo_Hackerrank> Inscrire un utilisateur dans le scoreboard INSAlgo
  • !mult <slug-challenge> <multiplicateur> Changer le multiplicateur de points d'un challenge
  • !multcat <categorie> <multiplicateur> Changer les multiplicateurs de points des challenges d'une catĂ©gorie :
  • !refreshlb Forcer le rafraichissement automatique du scoreboard Ă  s'effectuer (cooldown=10s)
  • !shutup @<user_discord Effacer les derniers messages d'une personne (censure !)

Configuration

TODO

Comment ça marche ?

  • On remplit les fichiers de config, puis on fait node server.js
  • L'appli se connecte Ă  notre base de donnĂ©es
  • Un client discord.js se crĂ©e et se connecte Ă  l'API Discord
  • Un serveur web est aussi créé. Il servira de web API au bot pour communiquer avec Hackerrank
  • Le client Discord rĂ©agit aux commandes faites dans les 3 channels donnĂ©s dans la config et parle Ă  l'API qui va s'occuper de :
    • communiquer avec Hackerrank
    • recalculer les scores pĂ©riodiquement (pĂ©riode configurable : dans web_api_config.json) et mettre Ă  jour la db
    • executer les requĂȘtes effectuĂ©es par Maurice et lui renvoyer les rĂ©sultats
    • d'autres choses (voir les diffĂ©rents endpoints)
  • Le serveur web rĂ©agit aux requĂȘtes faites sur les endpoints prĂ©vus puis rĂ©pond
  • PĂ©riodiquement, l'API recalcule les points des utilisateurs et Maurice met Ă  jour les messages contenant les scoreboard sur discord

Déploiement du bot

(Une fois docker installé)

git clone https://github.com/INSAlgo/maurice
cd maurice
nano config/maurice_config.json # Mettre le token Discord
docker-compose up -d --build
docker exec -i maurice-db psql -U maurice < sql/make_schema.sql # Charger le schéma postgres
docker-compose down # Relance du serveur
docker-compose up -d

Pour arrĂȘter le serveur : docker-compose down

Conseil pour le dev : utiliser nodemon en décommentant la ligne dans le Dockerfile pour avoir accÚs au live-reload

About

Le bot Discord d'INSAlgo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors