This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
MatterBot/README.md
2022-01-03 18:30:42 +01:00

62 lines
2.6 KiB
Markdown

# matter_bot
## Pré-requis
`openssl` requis par [`mattermost_api`](https://github.com/Celeo/mattermost_api)
```bash
sudo apt install libssl-dev
```
`.env` placé dans la racine du projet qui contient ses différentes variables :
```
TOKEN=votre_token_ici # 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é
MOT_DE_PASSE=votre_mot-de-passe_ici # pas besoin de mot de passe si un token est renseigné
URL=url_du_site_ici, ex: https://talk.up8.edu
EQUIPE=nom_de_lequipe, ex: etudiant-es
```
*Note: Si les deux moyens de connexion sont renseignés (token et pseudo/mot-de-passe), le bot ne se lancera pas.*
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 a gauche
- Integrations
- Bot Accounts
- Add Bot Account
- Remplissez les champs
- Cochez la case `post:all` pour être sur qu'il n'y aura pas de problèmes de permission (facultatif)
- Create Bot Account
- Dans la page suivante, vous aurez votre token d'accès
---
### Tests en local
En local, j'ai utilisé Docker pour héberger mon instance de Mattermost et pouvoir faire des tests, voici le docker-compose que j'ai utilisé :
```docker
version: "2"
services:
mattermost:
image: mattermost/mattermost-preview:latest # version preview parce que c'est juste pour testé
container_name: Mattermost
ports:
- 8065:8065 # cf. documentation officielle : https://docs.mattermost.com/install/setting-up-local-machine-using-docker.html
restart: unless-stopped
```
---
### Sources
- [Documentation `mattermost_api`](https://docs.rs/mattermost_api/0.1.0/mattermost_api/) (utilisé pour communiquer avec Mattermost)
- [Documentation `tokio`](https://docs.rs/tokio/1.15.0/tokio/attr.main.html) (utilisé car `mattermost_api` est `async`)
- [Documentation `chrono`](https://rust-lang-nursery.github.io/rust-cookbook/datetime/parse.html) (utilisé pour l'analyse des timestamps)
---
### Estimation du temps de build
Sur ma machine (WSL), le temps de build est court (<30s)
`time cargo build` :
```
________________________________________________________
Executed in 24.82 secs fish external
usr time 109.54 secs 284.00 micros 109.54 secs
sys time 9.73 secs 0.00 micros 9.73 secs
```
---
*Projet ne fonctionne pas avec l'instance de la Fac, car son mattermost se connecte via Gitlab et (je crois?) aucune librairie ne supporte ceci en Rust.*