Skip to content

Latest commit

 

History

History
69 lines (43 loc) · 2.79 KB

File metadata and controls

69 lines (43 loc) · 2.79 KB

mensabot

A Discord bot for Mensa-France.

Original Mensa-PLO bot Discord ID: 719154428355018813

To invite the bot in your server, go to https://discord.com/oauth2/authorize?client_id=719154428355018813&scope=bot

This is currently a test ground for playing with nodeJS and Discord.

Modules used

Here a the main npm packages used in this small application:

  1. mysql for the database
  2. Discord.js
  3. Puppeteer. (Maybe for later: How to set up a Headless Chrome Node.js server inside a docker container
  4. nodemailer : for sending emails

Liste des trucs à faire

UC001: authentifier un membre Mensa sur Discord

  1. Créer le bot sur discord
  2. Faire que le bot se connecte à Discord
  3. Lire la liste des membres d'un serveur
  4. Envoyer un MP à chaque membre pour lui demander son numéro Mensa
  5. Recevoir le numéro Mensa
  6. Aller sur l'annuaire de Mensa pour lire le nom et l'email de la personne (et sa région au passage)
  7. Généré code de confirmation aléatoire et l'envoyer par mail à la personne
  8. Recevoir le code de confirmation par MP et valider la personne comme Membre Mensa en base
  9. Donner le rôle de membre Mensa sur le serveur Discord:
    • rendre plus fiable
    • garder la trace de la promotion (add column in member table)
  10. Découvrir les nouveaux arrivants sur un serveur

Problème : les membres d'un serveur qui sont déjà admins, ne pourront pas être promus par le bot. Il faudrait les détecter et les mettre comme admins (comme on l'a fait avec le owner).

UC002: annuaire pseudo / vrais noms

Ca c'est pour facilité le fait de pouvoir retrouver les gens qu'on connait derrière les pseudos.

  1. Recevoir un MP qui est Heliode ?
  2. Répondre en MP Heliode est Stéphane Le Solliec
  3. Recevoir un MP quel est le pseudo de Stéphane Le Solliec ?
  4. Répondre en MP Stéphane Le Solliec a pour pseudo Heliode

UC003: administration

  1. Demander à l'administrateur d'un serveur le nom du rôle de membre Mensa

getting Puppetter to work on RaspBerry

The headless chrome that comes with Puppetter via npm does not work on RaspBerry.

  1. You need to install Chrome first: sudo apt-get install chromium-browser --yes
  2. Then instanciate the brower with: const browser = await puppeteer.launch({headless: true, executablePath: 'chromium-browser'});

some more links

  1. how to check a message sender has admin privileges in a guild
  2. Adding an API and database to Nuxt with Prisma