Add more explaination

This commit is contained in:
Mylloon 2022-01-06 18:38:45 +01:00
parent 453604e164
commit 18f8b0207f
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -14,19 +14,22 @@ sudo apt install libssl-dev
`.env` placé dans la racine du projet qui contient ses différentes variables : `.env` placé dans la racine du projet qui contient ses différentes variables :
``` ```
TOKEN_MATTERMOST=votre_token_ici # pas besoin de token si vous mettez un combo pseudo/mot-de-passe TOKEN_MATTERMOST=votre_token_ici # OBLIGATOIRE? | Pas besoin de token si vous mettez un combo pseudo/mot-de-passe
PSEUDO=votre_pseudo_ici # pas besoin de pseudo si un token est renseigné PSEUDO=votre_pseudo_ici # OBLIGATOIRE? | Pas besoin de pseudo si un token est renseigné
MOT_DE_PASSE=votre_mot-de-passe_ici # pas besoin de mot de passe si un token est renseigné MOT_DE_PASSE=votre_mot-de-passe_ici # OBLIGATOIRE? | Pas besoin de mot de passe si un token est renseigné
URL=url_du_site_ici # ex: https://talk.up8.edu # -> Si les 2 méthode de connexion pour Mattermost sont renseignées (token et pseudo/mot-de-passe), le bot ne se lancera pas.
EQUIPE=nom_de_lequipe # ex: etudiant-es URL=url_instance_mattermost_ici # OBLIGATOIRE | Ex: https://talk.up8.edu
SALON=nom_du_salon # ex: off-topic SALON=nom_du_salon # OBLIGATOIRE | Ex: off-topic
EQUIPE=nom_de_lequipe # FACULTATIF | Ex: etudiant-es
# -> Va permettre d'afficher les informations d'une équipe à chaque démarrage du bot.
TOKEN_DISCORD=votre_token_ici # token discord TOKEN_DISCORD=votre_token_ici # OBLIGATOIRE | Token Discord
PREFIX=votre_prefix_ici # commun aux deux bots, par défaut: ç PREFIX=votre_prefix_ici # OBLIGATOIRE | Commun aux deux bots, par défaut: `ç`
``` ```
*Note: Si les deux moyens de connexion pour Mattermost sont renseignés (token et pseudo/mot-de-passe), le bot ne se lancera pas.*
---
### Intégrations
#### Mattermost #### Mattermost
Dans le cas ou vous optez pour le token, vous devez ajouter un bot, pour ce faire (d'après la [documentation officielle](https://developers.mattermost.com/integrate/admin-guide/admin-bot-accounts/)) : Dans le cas ou vous optez pour le token, vous devez ajouter un bot, pour ce faire (d'après la [documentation officielle](https://developers.mattermost.com/integrate/admin-guide/admin-bot-accounts/)) :
- Cliquez sur les 9 carrés en haut à gauche - Cliquez sur les 9 carrés en haut à gauche
@ -39,7 +42,7 @@ Dans le cas ou vous optez pour le token, vous devez ajouter un bot, pour ce fair
- Dans la page suivante, vous aurez votre token d'accès - Dans la page suivante, vous aurez votre token d'accès
#### Discord #### Discord
<!-- ici un tuto sur comment obtenir un token discord --> Pour obtenir un token pour le bot Discord, il y a ce [tuto fait pour la librairie Javascript](https://discordjs.guide/preparations/setting-up-a-bot-application.html#creating-your-bot) qui explique bien.
--- ---
### Tests en local ### Tests en local
@ -58,9 +61,9 @@ services:
--- ---
### Sources ### Sources
- [Documentation `mattermost_api`](https://docs.rs/mattermost_api/0.1.0/mattermost_api/) (utilisé pour communiquer avec Mattermost) - [Documentation `mattermost_api`](https://docs.rs/mattermost_api/0.1.0/mattermost_api/) (utilisé pour communiquer avec Mattermost)
- `serde` (utilisé pour ma structure de salon [j'ai fait comme `mattermost_api`])
- `serde_json` (utilisé pour gérer tout ce qui est `json`)
- `tokio` (utilisé car `mattermost_api` est `async`) - `tokio` (utilisé car `mattermost_api` est `async`)
- `serde` (utilisé pour ma structure de salon [j'ai fait comme `mattermost_api`])
- `serde_json` (utilisé pour gérer le format `json`)
- [Documentation `chrono`](https://rust-lang-nursery.github.io/rust-cookbook/datetime/parse.html) (utilisé pour l'analyse des timestamps) - [Documentation `chrono`](https://rust-lang-nursery.github.io/rust-cookbook/datetime/parse.html) (utilisé pour l'analyse des timestamps)
- [Documentation `serenity`](https://docs.rs/serenity/latest/serenity/client/trait.EventHandler.html) (utilisé pour communiquer avec Discord) - [Documentation `serenity`](https://docs.rs/serenity/latest/serenity/client/trait.EventHandler.html) (utilisé pour communiquer avec Discord)
- Je me suis aidé de mes [réponses aux rustlings](https://code.up8.edu/Anri/2021-rustlings/-/tree/reponses/exercises) pour me rafraîchir la mémoire sur certains points - Je me suis aidé de mes [réponses aux rustlings](https://code.up8.edu/Anri/2021-rustlings/-/tree/reponses/exercises) pour me rafraîchir la mémoire sur certains points
@ -78,6 +81,7 @@ Executed in 53.25 secs fish external
sys time 19.56 secs 149.00 micros 19.56 secs sys time 19.56 secs 149.00 micros 19.56 secs
``` ```
---
### Résumé ### Résumé
Beaucoup de blabla, au final, qu'est ce qui fonctionne ? Beaucoup de blabla, au final, qu'est ce qui fonctionne ?
@ -89,7 +93,16 @@ Beaucoup de blabla, au final, qu'est ce qui fonctionne ?
Cependant, je pense avoir fait 50% du travail pour le pont Mattermost, il manque, je pense, une implémentation du websocket de la part Cependant, je pense avoir fait 50% du travail pour le pont Mattermost, il manque, je pense, une implémentation du websocket de la part
du [responsable de `mattermost_api`](https://github.com/Celeo). J'ai essayé de le faire moi-même mais pas réussi. du [responsable de `mattermost_api`](https://github.com/Celeo). J'ai essayé de le faire moi-même mais pas réussi.
# Exécution ---
### Exécution
```
git clone git@code.up8.edu:Anri/matter_bot.git matter_bot_akennel
cd matter_bot_akennel
# Créez et complétez le .env
cargo run
```
<div align="center"> <div align="center">
<img src="assets/demonstration.gif" alt="Exemple d'utilisation de matter_bot" width="1000" /> <img src="assets/demonstration.gif" alt="Exemple d'utilisation de matter_bot" width="1000" />
</div> </div>