From c41059e398f5499376e41b898aed35ed5054d50a Mon Sep 17 00:00:00 2001 From: A Farzat Date: Fri, 21 Nov 2025 13:00:21 +0300 Subject: Add file download functionality --- src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 0459161..d54d12e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,6 @@ use std::env; +use std::fs::File; +use std::path::PathBuf; use rss::Channel; /// Parse CLI arguments and return (feed_url, output_dir) @@ -35,3 +37,14 @@ pub fn get_audio_urls(channel: &Channel) -> Vec<&str> { } audio_urls } + +/// Download the given audio file to the supplied directory +pub fn download_file(url: &str, output_dir: &str) -> Result<(), Box> { + let mut response = reqwest::blocking::get(url)?; + let filename = url.split('/').next_back().unwrap_or("episode.mp3"); + let mut path = PathBuf::from(output_dir); + path.push(filename); + let mut file = File::create(path)?; + std::io::copy(&mut response, &mut file)?; + Ok(()) +} -- cgit v1.2.3-70-g09d2