diff --git a/README.md b/README.md index 8456880..75a8207 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # matter_bot Au début, `matter_bot` devait être un bot qui fait le pont entre Discord et Mattermost. -Malheureusement, je n'ai pas réussi a recevoir les messages depuis Mattermost... -MAIS, tout ce qui est du côté de Discord devrait fonctionné proprement. +Malheureusement, je n'ai pas réussi à recevoir les messages depuis Mattermost... +MAIS, tout ce qui est du côté de Discord devrait fonctionner proprement. J'ai laissé tout ce que j'ai commencé pour Mattermost, il faut donc quand-même renseigner les variables demandés ci-dessous pour pouvoir lancer le bot. @@ -29,7 +29,7 @@ PREFIX=votre_prefix_ici # commun aux deux bots, par défaut: ç #### 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/)) : -- Cliquez sur les 9 carrés en haut a gauche +- Cliquez sur les 9 carrés en haut à gauche - Integrations - Bot Accounts - Add Bot Account @@ -68,7 +68,7 @@ services: --- ### Estimation du temps de build -Sur ma machine (WSL), le temps de build d'environ une minute. +Sur ma machine (WSL), le temps de build est d'environ une minute. `time cargo build` : ``` @@ -87,7 +87,7 @@ Beaucoup de blabla, au final, qu'est ce qui fonctionne ? - [ ] Commandes Mattermost 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 [repsonsable de `mattermost_api`](https://github.com/Celeo). J'ai essayer 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
diff --git a/src/discord.rs b/src/discord.rs index f036afd..63151cc 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -42,7 +42,7 @@ struct InformationsBot { /// Implémentation pour utiliser facilement les valeurs de la structure /// Normalement, rien ne panique car si `start_discord` -/// n'as pas encore été appellé on panique avant d'arriver ici. +/// n'as pas encore été appelé, on panique avant d'arriver ici. /// /// On fait quand même le match pour être sûr. impl InformationsBot { @@ -80,7 +80,7 @@ impl InformationsBot { /// Récupère API, sinon panique /// /// Question importante, je créer l'API dans `main.rs`, alors pourquoi je - /// n'ai pas utilisé cette api pour ce fichier ? Tout simplement parce que + /// n'ai pas utilisé cet api pour ce fichier ? Tout simplement parce que /// `mattermost_api::client::Mattermost` n'implémente pas le trait de Clone /// impossible donc (pas de succès avec Mutex)... pub async fn recuperation_api(&self) -> mattermost_api::client::Mattermost { @@ -102,9 +102,9 @@ impl InformationsBot { static mut _INFO: Option = None; /// Récupère les informations qui sont nécessaire à la communication avec Mattermost -/// Attention, on fait paniqué le programme si l valeur est vide, pour éviter -/// ça, il faut appeller cette fonction seulement quand `start_discord` -/// a été appellé car c'est elle qui ajoute le préfixe à `_INFO` +/// Attention, on fait paniqué le programme si la valeur est vide, pour éviter +/// ça, il faut appeler cette fonction seulement quand `start_discord` +/// a été appelé car c'est elle qui ajoute le préfixe à `_INFO` /// /// Je sais que c'est vraiment naze de faire ça (variable static + blocs unsafe) /// mais c'est la seul solution que j'ai trouvé en évitant de trop étoffé avec du @@ -140,7 +140,7 @@ impl EventHandler for Handler { // Gestion erreur lors de l'envoie de la réponse erreur::affiche_message_erreur(&format!("Erreur d'envoie de message : {:?}", err)); } - // Ici on peut rajouter des `if` pour rajouter des commandes... + // Ici on peut rajouter des `if` pour ajouter des commandes... } else { /* Dans ce cas là, ce n'est pas une commande, alors c'est un message. * Il faut l'envoyer à Mattermost. */ @@ -148,9 +148,9 @@ impl EventHandler for Handler { } } - // Fonction appellé quand le bot est lancé et connecté + // Fonction appelé quand le bot est lancé et connecté async fn ready(&self, _: Context, _: Ready) { - println!("Écoute les évènements Discord..."); + println!("Écoute les événements Discord..."); } } diff --git a/src/main.rs b/src/main.rs index 21c3dbb..9c5b298 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,7 +44,7 @@ async fn main() { match env::var("PSEUDO") { Ok(string) => { if token_recuperer { - panic!("{}", erreur::message_erreur("Tu as déjà choisie un token, vous ne pouvez pas aussi avoir définie un pseudo.")); + panic!("{}", erreur::message_erreur("Tu as déjà choisie un token, vous ne pouvez pas aussi avoir définit un pseudo.")); } pseudo_ok = true; pseudo = string; @@ -63,7 +63,7 @@ async fn main() { match env::var("MOT_DE_PASSE") { Ok(string) => { if token_recuperer { - panic!("{}", erreur::message_erreur("Tu as déjà choisie un token, vous ne pouvez pas aussi avoir définie un mot de passe.")); + panic!("{}", erreur::message_erreur("Tu as déjà choisie un token, vous ne pouvez pas aussi avoir définit un mot de passe.")); } mot_de_passe = string; } @@ -72,7 +72,7 @@ async fn main() { panic!( "{}", erreur::message_erreur( - "Tu as renseigné un pseudo mais pas de mot de passe dans le fichier .env" + "Tu as renseigner un pseudo mais pas de mot de passe dans le fichier .env" ) ); } @@ -106,7 +106,7 @@ async fn main() { // On affiche les infos d'une team mattermost::team_info(&api, &equipe).await; - // Tâche en paralèlle + // Tâche en parallèle mattermost::start_mattermost(mattermost::ConnectionInfoWebsocket { api, token: token_mattermost.clone(), /* , prefix */ diff --git a/src/mattermost.rs b/src/mattermost.rs index 2781817..2c1dfe9 100644 --- a/src/mattermost.rs +++ b/src/mattermost.rs @@ -146,7 +146,7 @@ pub async fn get_channel_info( } /// Récupère l'ID du salon renseigné grâce à son nom en faisant une requête à l'API de Mattermost -#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilises le code en dessous... +#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilise le code en dessous... pub async fn channel_id_by_name(api: &mattermost_api::client::Mattermost, salon: String) -> String { println!("\nRécupération de l'ID du salon {}...", salon); match get_channel_info(api).await { @@ -175,7 +175,7 @@ pub async fn channel_id_by_name(api: &mattermost_api::client::Mattermost, salon: } /// Affiche les informations complète sur une équipe -#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilises le code en dessous... +#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilise le code en dessous... pub async fn team_info(api: &mattermost_api::client::Mattermost, equipe: &str) { println!("\nTentative de récupération de l'équipe {}...", equipe); match api.get_team_info(equipe).await { @@ -214,13 +214,13 @@ pub async fn connect_websocket( } /// Lance le bot Mattermost -#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilises le code en dessous... +#[allow(dead_code)] // je comprends pas pourquoi j'ai besoin de mettre ça, parce que j'utilise le code en dessous... pub async fn start_mattermost(connection: ConnectionInfoWebsocket) { match connect_websocket(&connection.api, &connection.token).await { Ok(res) => { /* Pour l'instant ici on a reçois un string donc on l'affiche (Result) mais * à l'avenir normalement ici on bloque le thread principale (ou on laisse - * le bot discord le bloqué et ici ça s'execute en parallèle au bot discord) + * le bot discord le bloqué et ici ça s'éxécute en parallèle au bot discord) * et on récupère toutes les informations dont on a besoin, c'est à dire les * messages envoyés. */ println!("{}", res); @@ -237,7 +237,7 @@ pub async fn start_mattermost(connection: ConnectionInfoWebsocket) { dans la librarie que j'utilises (mon issue : https://github.com/Celeo/mattermost_api/issues/1) Cependant je pense que c'est quand même prévu à l'avenir : https://github.com/Celeo/mattermost_api/blob/master/src/client.rs#L185 - En attendant, utiliser un websocket rend tout plus simple, on récupère tout les evenements qu'on reçois, on traite les messages + En attendant, utiliser un websocket rend tout plus simple, on récupère tout les événements qu'on reçoit, on traite les messages et si un utilisateur demande une commande on envoie un message en réponse (en théorie). -> Appel de la connexion au websocket donne une erreur HTTP400 malheureusement @@ -254,5 +254,5 @@ pub async fn start_mattermost(connection: ConnectionInfoWebsocket) { -> S'il y en a une qui n'est plus présente, on la retire -> https://api.mattermost.com/#operation/DeleteCommand - - Les commandes font une requête, doit on faire tourner un serveur web en local ? + - Les commandes font une requête, doit-on faire tourner un serveur web en local ? */