From 42c00a5794cd776c7c1e9a7f41532dbfe3904e1c Mon Sep 17 00:00:00 2001 From: Aaron Manning Date: Sat, 17 Feb 2024 09:00:51 +1100 Subject: [PATCH] only write spec if changed --- src/download.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/download.rs b/src/download.rs index bff2464..a7d72d9 100644 --- a/src/download.rs +++ b/src/download.rs @@ -291,28 +291,33 @@ pub (crate) fn update_podcast_from_feed( ); } } + + // Update the file as we go, but only if a change has occured + spec.write_to(&spec_file)?; }, Err(err) => { eprintln!(r#"[error] failed to request episode "{}" with error: "{}". skipping"#, title, err); continue; } } - - spec.write_to(&spec_file)?; }, } } + let mut feed_change = false; // Setting episodes which have been removed to no longer be current for (_, episodes) in &mut spec.feed { for episode in episodes { if !current_episodes.contains(episode.id.as_ref()) { episode.current = false; + feed_change = true; } } } - spec.write_to(&spec_file)?; + if feed_change { + spec.write_to(&spec_file)?; + } Ok(()) }