allow hiding by summary too

This commit is contained in:
_ 2025-08-13 05:49:32 +00:00
parent bf6e6fab0b
commit 456c502d3f

View file

@ -34,6 +34,8 @@ struct ConfigOutput {
/// Used as the OpenGraph description in meta tags /// Used as the OpenGraph description in meta tags
description: String, description: String,
hide_summaries: BTreeSet<String>,
/// Hide all these UIDs from the final output /// Hide all these UIDs from the final output
hide_uids: BTreeSet<String>, hide_uids: BTreeSet<String>,
@ -406,7 +408,7 @@ fn read_data_from_disk(config: &Config) -> Result<Data> {
fn process_data<'a>( fn process_data<'a>(
data: &'a Data, data: &'a Data,
hide_uids: &'a BTreeSet<String>, config_output: &'a ConfigOutput,
now: DateTime<chrono_tz::Tz>, now: DateTime<chrono_tz::Tz>,
) -> Result<Vec<EventWithUrl<'a>>> { ) -> Result<Vec<EventWithUrl<'a>>> {
let params = Parameters::new(now)?; let params = Parameters::new(now)?;
@ -415,7 +417,12 @@ fn process_data<'a>(
for (ical, config) in &data.icals { for (ical, config) in &data.icals {
for ei in ical.event_instances(&params)? { for ei in ical.event_instances(&params)? {
if let Some(uid) = ei.ev.get_uid() if let Some(uid) = ei.ev.get_uid()
&& hide_uids.contains(uid) && config_output.hide_uids.contains(uid)
{
continue;
}
if let Some(summary) = ei.ev.get_summary()
&& config_output.hide_summaries.contains(summary)
{ {
continue; continue;
} }
@ -639,7 +646,7 @@ async fn do_everything(cli: &CliAuto) -> Result<()> {
let tz = &config.output.timezone; let tz = &config.output.timezone;
let now = Utc::now().with_timezone(tz); let now = Utc::now().with_timezone(tz);
let instances = process_data(&data, &config.output.hide_uids, now)?; let instances = process_data(&data, &config.output, now)?;
output_html(&config.output, &instances, now)?; output_html(&config.output, &instances, now)?;
Ok(()) Ok(())
} }
@ -671,7 +678,7 @@ fn main_ics_debug(cli: CliIcsDebug) -> Result<()> {
let tz = &config.output.timezone; let tz = &config.output.timezone;
let now = Utc::now().with_timezone(tz); let now = Utc::now().with_timezone(tz);
let instances = process_data(&data, &config.output.hide_uids, now)?; let instances = process_data(&data, &config.output, now)?;
output_html(&config.output, &instances, now)?; output_html(&config.output, &instances, now)?;
Ok(()) Ok(())