From 1ff993d236654ef806f0a799b76a999a18982869 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Sat, 7 Jun 2025 23:04:57 +0100 Subject: [PATCH] feat: only need to keep whatever ones are in teh current season (if at all) --- src/bin/update_server-icon.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/bin/update_server-icon.rs b/src/bin/update_server-icon.rs index e3440b9..cce07f9 100644 --- a/src/bin/update_server-icon.rs +++ b/src/bin/update_server-icon.rs @@ -92,6 +92,9 @@ async fn update_icon_main(ctx: Arc) { // get a list of all the graphics files let logos = get_logos(&config_global, &config_toml); + + // filter them so only the current season (if any) are active + let logos_filtered = logos_filter(&festival_data, logos); } struct FestivalData{ @@ -262,4 +265,34 @@ fn get_logos(config: &Config, config_toml: &ConfigToml) -> Vec { } logos +} + +fn logos_filter(festival_data: &FestivalData, existing: Vec) -> Vec{ + let mut filtered: Vec = vec![]; + + for logo in existing { + let name_lowercase0 = logo.name.to_ascii_lowercase(); + let name_lowercase = name_lowercase0.to_str().unwrap_or_default(); + + // if its a current festival filter based on it + if let Some(x) = &festival_data.current { + if name_lowercase.contains(x) { + filtered.push(logo); + } + } else { + // else filter using the excluded ones + let mut excluded = false; + for festival in &festival_data.exclusions { + if name_lowercase.contains(festival) { + excluded = true; + } + } + + if !excluded { + filtered.push(logo); + } + } + } + + filtered } \ No newline at end of file