feat: add include_disabled

This commit is contained in:
Nathan Lamy 2025-08-26 00:41:44 +02:00
parent d6dc15b4a3
commit 3841e08a9f
2 changed files with 9 additions and 3 deletions

View file

@ -229,7 +229,7 @@ async fn process_job(
if job["type"] == 4 { if job["type"] == 4 {
// Fetch already selected meals // 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 { if let Err(err) = selected_meals {
eprintln!("Failed to fetch available meals: {}", err); eprintln!("Failed to fetch available meals: {}", err);
return Err(redis::RedisError::from(( return Err(redis::RedisError::from((
@ -268,7 +268,7 @@ async fn process_job(
println!("Meal already selected, skipping addition."); 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() { if meals.is_err() {
eprintln!("Failed to fetch available meals: {}", meals.unwrap_err()); eprintln!("Failed to fetch available meals: {}", meals.unwrap_err());
return Err(redis::RedisError::from(( return Err(redis::RedisError::from((
@ -376,7 +376,7 @@ async fn process_job(
/* /*
* Fetch available meals * Fetch available meals
*/ */
match get_available_meals(&session, false).await { match get_available_meals(&session, false, false).await {
Ok(meals) => { Ok(meals) => {
if meals.is_empty() { if meals.is_empty() {
println!("No available meals found."); println!("No available meals found.");

View file

@ -9,6 +9,7 @@ use crate::{api::Meal, parser::utils::parse_french_date};
pub async fn get_available_meals( pub async fn get_available_meals(
session: &str, session: &str,
filter_selected: bool, filter_selected: bool,
include_disabled: bool,
) -> Result<Vec<Meal>, Box<dyn std::error::Error>> { ) -> Result<Vec<Meal>, Box<dyn std::error::Error>> {
let url = "https://bjcolle.fr/no_waste.php"; let url = "https://bjcolle.fr/no_waste.php";
let response = Client::new() let response = Client::new()
@ -47,6 +48,11 @@ pub async fn get_available_meals(
continue; continue;
} }
let is_enabled = input.value().attr("disabled").is_none();
if !is_enabled && !include_disabled {
continue;
}
if !meal_name.is_empty() { if !meal_name.is_empty() {
if let Some(meal) = parse_meal(&meal_name) { if let Some(meal) = parse_meal(&meal_name) {
meals.push(meal); meals.push(meal);