diff --git a/src/main.rs b/src/main.rs index 7600502..d096fcd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,9 @@ use dotenv::dotenv; use std::env; +mod erreur; + +mod discord; mod mattermost; #[tokio::main] @@ -9,28 +12,39 @@ async fn main() { // Vérification si fichier .env trouvé panic!( "{}", - message_erreur("Le fichier .env n'a pas été trouvé ou invalide...") + erreur::message_erreur("Le fichier .env n'a pas été trouvé ou invalide...") ) }); // Initialisation des variables token, pseudo et mot de passe - let mut token = "".to_string(); - let mut pseudo = "".to_string(); - let mut mot_de_passe = "".to_string(); + let mut token_mattermost = String::from(""); + let mut pseudo = String::from(""); + let mut mot_de_passe = String::from(""); - // Récupération du token + // Récupération du token mattermost let mut token_recuperer = false; - if let Ok(string) = env::var("TOKEN") { - token = string; + if let Ok(string) = env::var("TOKEN_MATTERMOST") { + token_mattermost = string; token_recuperer = true; } + // Récupération du token discord + let token_discord = env::var("TOKEN_DISCORD").unwrap_or_else(|_| { + panic!( + "{}", + erreur::message_erreur("Token discord non trouvé dans le fichier .env") + ) + }); // récupération du token + + // Récupération du prefix + let prefix = env::var("PREFIX").unwrap_or_else(|_| String::from("ç")); // récupération du prefix + // Récupération du pseudo let mut pseudo_ok = false; match env::var("PSEUDO") { Ok(string) => { if token_recuperer { - panic!("{}", 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éfinie un pseudo.")); } pseudo_ok = true; pseudo = string; @@ -39,7 +53,7 @@ async fn main() { if !token_recuperer { panic!( "{}", - message_erreur("Aucun token ni pseudo trouvé dans le fichier .env") + erreur::message_erreur("Aucun token ni pseudo trouvé dans le fichier .env") ); } } @@ -49,7 +63,7 @@ async fn main() { match env::var("MOT_DE_PASSE") { Ok(string) => { if token_recuperer { - panic!("{}", 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éfinie un mot de passe.")); } mot_de_passe = string; } @@ -57,7 +71,7 @@ async fn main() { if pseudo_ok { panic!( "{}", - message_erreur( + erreur::message_erreur( "Tu as renseigné un pseudo mais pas de mot de passe dans le fichier .env" ) ); @@ -65,38 +79,36 @@ async fn main() { } } let mut url = env::var("URL") - .unwrap_or_else(|_| panic!("{}", message_erreur("URL non trouvé dans le fichier .env"))); // récupération de l'url + .unwrap_or_else(|_| panic!("{}", erreur::message_erreur("URL non trouvé dans le fichier .env"))); // récupération de l'url if url.ends_with('/') { // Si l'url finit par un '/' url = url[0..url.len() - 1].to_string(); // on retire le / } - let api = mattermost::connexion(&token, &pseudo, &mot_de_passe, &url).await; // connexion à mattermost + let api = mattermost::connexion(&token_mattermost, &pseudo, &mot_de_passe, &url).await; // connexion à mattermost + // On affiche les infos d'une team let equipe = env::var("EQUIPE").unwrap_or_else(|_| { // Récupération de l'équipe panic!( "{}", - message_erreur("Équipe non trouvé dans le fichier .env") + erreur::message_erreur("Équipe non trouvé dans le fichier .env") ) }); + mattermost::team_info(&api, &equipe).await; - match mattermost::connect_websocket(&api, &token).await { - Ok(res) => { - println!("{}", res); - } - Err(e) => { - println!("Error: {}", e); - } - } -} + // Tâche en paralèlle + mattermost::start_mattermost(mattermost::ConnectionInfoWebsocket { + api, + token: token_mattermost, /* , prefix */ + }) + .await; -/// Jolie message d'erreur -fn message_erreur(message: &str) -> String { - format!( - "\n{sep}\n{msg}\n{sep}\n", - sep = "=".repeat(message.len()), - msg = message - ) + // Bloque le thread principale + discord::start_discord(discord::ConnectionInfoDiscord { + token: token_discord, + prefix, + }) + .await; }