Robot Discord : Raidplanner

Le projet MMOrga / Raidplanner permet aux guildes de créer des événements où leurs membres pourront s’inscrire.

Ce projet est peu utilisé et pour relancer son intérêt, j’ai décidé d’y ajouter un robot Discord. Le robot fait le lien entre le site et le discord de la guilde, et facilite les inscriptions aux événements.

L’occasion de se lancer dans 2 projets simultanément.

1/ Api, TDD et Slim

Bien que j’aime particulièrement CakePHP, il est trop lourd et lent pour faire une API. Slim semble bien reconnu par la communauté de dev PHP qui le considère comme suffisamment rapide et sûre pour faire des API Restful.

Pour éviter tout problème dans l’avenir, mon API a été développée suivant le principe du Test Driven Development. C’est assez pénible mais voir un coverage frisant les 100% et un test d’une autre méthode qui passe au rouge pour indiquer l’effet de bord, c’est assez rassurant.

L’API est simple mais fait le nécessaire pour mon robot.

2/ Robot discord

NodeJS est très à la mode, Go aussi mais ça n’était pas pertinent pour mon travail, mes clients ou simplement mes capacités de codeur 😉

Je me suis donc orienté vers DiscordPy, une librairie pour créer des robots discord en Python.

Ce n’était pas la première fois que je faisais du Python mais le projet était un peu plus complexe qu’une connexion FTP ou une vérification de « hash ».
De plus, faire un robot discord, c’est s’exposer aux caprices des utilisateurs, et quand il s’agit de « gamers », il faut vraiment tester tous les cas tordus.

Je ne sais pas si il existe des tests unitaires en python et de toute manière ça m’aurait prit trop de temps d’apprendre comment les faire sur une librairie en asynchrone, j’ai fait impasse et tout testé manuellement, ou la méthode du « chémoisamarche » 😉

Finalement le projet voit le jour en février 2019 et j’espère qu’il sera apprécié des joueurs et chef.e.s de guildes.

Raidplanner Discord Bot

Robot Discord : Raidplanner
Notez cet article

Et on fait tourner
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Pin on Pinterest
Pinterest