diff --git a/src/marks.rs b/src/marks.rs index 434e793..759c7c1 100644 --- a/src/marks.rs +++ b/src/marks.rs @@ -1,16 +1,14 @@ use scraper::{Html, Selector}; -use crate::utils::write_html; - /// Retrieves marks for a user pub async fn get_marks(username: String, password: String, user_agent: &str) { // Login let client = login(username, password, user_agent).await.unwrap(); // Marks - let page = load_marks(&client).await.unwrap(); + load_marks(&client).await.unwrap(); - write_html(page.html()); + println!("Notes *récupérés* !") } /// Login to eP8 @@ -58,15 +56,27 @@ async fn login( ]; // Login - client - .post(login_url) - .form(¶ms) - .send() - .await? - .text() - .await?; - - Ok(client) + let sel_confirmation = Selector::parse("h2").unwrap(); + if Html::parse_document( + &client + .post(login_url) + .form(¶ms) + .send() + .await? + .text() + .await?, + ) + .select(&sel_confirmation) + .next() + .unwrap() + .inner_html() + .contains("Connexion réussie") + { + println!("Connexion réussie..."); + Ok(client) + } else { + panic!("Connexion échouée : Mauvais identifiants") + } } /// Load marks from scolarite-etudiant diff --git a/src/utils.rs b/src/utils.rs index a6ed460..c422021 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -19,19 +19,12 @@ pub fn ask_password() -> std::string::String { rpassword::read_password().unwrap() } +#[allow(dead_code)] /// Write a document to a file /// /// `html_data` may be created with something like that: /// ``` -/// Html::parse_document( -/// &client -/// .get("URL") -/// .send() -/// .await? -/// .text() -/// .await?, -/// ) -/// .html(), +/// Html::parse_document(&client.get("URL").send().await?.text().await?).html() /// ``` pub fn write_html(html_data: String) { let mut f = std::fs::File::create("./target/temp.html").unwrap();