From a4836871247da314110d1e42344e3239eadbdd3e Mon Sep 17 00:00:00 2001 From: A Farzat Date: Sat, 22 Nov 2025 07:52:55 +0300 Subject: Add optional numbering of downloaded episodes --- src/lib.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 78ddfe4..74e37b2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,19 +13,29 @@ pub fn parse_feed(xml: &str) -> Result { } /// Extract the audio URLs from the given channel -pub fn get_audio_urls(channel: &Channel) -> Vec<&str> { +pub fn get_audio_urls(channel: &Channel) -> Vec<(usize, &str)> { channel .items() .iter() .rev() - .filter_map(|item| item.enclosure().map(|e| e.url())) + .enumerate() + .filter_map(|(i, item)| item.enclosure().map(|e| (i + 1, e.url()))) .collect() } /// Download the given audio file to the supplied directory -pub fn download_file(url: &str, output_dir: &str) -> Result<(), Box> { +pub fn download_file( + url: &str, + output_dir: &str, + prefix: Option<&str>, +) -> Result<(), Box> { let mut response = reqwest::blocking::get(url)?; let filename = url.split('/').next_back().unwrap_or("episode.mp3"); + let filename = if let Some(p) = prefix { + format!("{}-{}", p, filename) + } else { + filename.to_string() + }; let mut path = PathBuf::from(output_dir); path.push(filename); let mut file = File::create(path)?; -- cgit v1.2.3-70-g09d2