From 3841e08a9fd321ceb629943e9096df7441c877a2 Mon Sep 17 00:00:00 2001 From: Nathan Lamy Date: Tue, 26 Aug 2025 00:41:44 +0200 Subject: [PATCH] feat: add include_disabled --- src/main.rs | 6 +++--- src/parser/repas.rs | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 01c3a2a..70b6e77 100644 --- a/src/main.rs +++ b/src/main.rs @@ -229,7 +229,7 @@ async fn process_job( if job["type"] == 4 { // Fetch already selected meals - let selected_meals = get_available_meals(&session_id, true).await; + let selected_meals = get_available_meals(&session_id, true, false).await; if let Err(err) = selected_meals { eprintln!("Failed to fetch available meals: {}", err); return Err(redis::RedisError::from(( @@ -268,7 +268,7 @@ async fn process_job( println!("Meal already selected, skipping addition."); } - let meals = get_available_meals(&session_id, true).await; + let meals = get_available_meals(&session_id, true, true).await; if meals.is_err() { eprintln!("Failed to fetch available meals: {}", meals.unwrap_err()); return Err(redis::RedisError::from(( @@ -376,7 +376,7 @@ async fn process_job( /* * Fetch available meals */ - match get_available_meals(&session, false).await { + match get_available_meals(&session, false, false).await { Ok(meals) => { if meals.is_empty() { println!("No available meals found."); diff --git a/src/parser/repas.rs b/src/parser/repas.rs index aa69b47..1e0ccef 100644 --- a/src/parser/repas.rs +++ b/src/parser/repas.rs @@ -9,6 +9,7 @@ use crate::{api::Meal, parser::utils::parse_french_date}; pub async fn get_available_meals( session: &str, filter_selected: bool, + include_disabled: bool, ) -> Result, Box> { let url = "https://bjcolle.fr/no_waste.php"; let response = Client::new() @@ -47,6 +48,11 @@ pub async fn get_available_meals( continue; } + let is_enabled = input.value().attr("disabled").is_none(); + if !is_enabled && !include_disabled { + continue; + } + if !meal_name.is_empty() { if let Some(meal) = parse_meal(&meal_name) { meals.push(meal);