aboutsummaryrefslogtreecommitdiffstats
path: root/src/actions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions.rs')
-rw-r--r--src/actions.rs44
1 files changed, 30 insertions, 14 deletions
diff --git a/src/actions.rs b/src/actions.rs
index 6f3cfc2..3428f79 100644
--- a/src/actions.rs
+++ b/src/actions.rs
@@ -104,12 +104,19 @@ pub fn download_range(state: &State, p_search: &str, e_search: &str) {
for subscription in &state.subs {
if re_pod.is_match(&subscription.title) {
- let podcast = Podcast::from_url(&subscription.url).unwrap();
- match parse_download_episodes(e_search) {
- Ok(episodes_to_download) => podcast.download_specific(episodes_to_download),
- Err(err) => eprintln!("{}", err),
+ match Podcast::from_title(&subscription.title) {
+ Ok(podcast) => {
+ match parse_download_episodes(e_search) {
+ Ok(episodes_to_download) => {
+ if let Err(err) = podcast.download_specific(episodes_to_download) {
+ eprintln!("Error: {}", err);
+ }
+ }
+ Err(err) => eprintln!("Error: {}", err),
+ }
+ }
+ Err(err) => eprintln!("Error: {}", err),
}
- return;
}
}
}
@@ -120,10 +127,14 @@ pub fn download_episode(state: &State, p_search: &str, e_search: &str) {
for subscription in &state.subs {
if re_pod.is_match(&subscription.title) {
- let podcast = Podcast::from_url(&subscription.url).unwrap();
- let episodes = podcast.episodes();
- if let Err(err) = episodes[episodes.len() - ep_num].download(podcast.title()) {
- eprintln!("{}", err);
+ match Podcast::from_title(&subscription.title) {
+ Ok(podcast) => {
+ let episodes = podcast.episodes();
+ if let Err(err) = episodes[episodes.len() - ep_num].download(podcast.title()) {
+ eprintln!("{}", err);
+ }
+ }
+ Err(err) => eprintln!("Error: {}", err),
}
}
}
@@ -134,8 +145,14 @@ pub fn download_all(state: &State, p_search: &str) {
for subscription in &state.subs {
if re_pod.is_match(&subscription.title) {
- let podcast = Podcast::from_url(&subscription.url).unwrap();
- podcast.download();
+ match Podcast::from_title(&subscription.title) {
+ Ok(podcast) => {
+ if let Err(err) = podcast.download() {
+ eprintln!("{}", err);
+ }
+ }
+ Err(err) => eprintln!("Error: {}", err),
+ }
}
}
}
@@ -143,8 +160,7 @@ pub fn download_all(state: &State, p_search: &str) {
pub fn play_episode(state: &State, p_search: &str, ep_num_string: &str) {
let re_pod = Regex::new(p_search).unwrap();
let ep_num = ep_num_string.parse::<usize>().unwrap();
- let mut path = get_podcast_dir();
- path.push(".rss");
+ let mut path = get_xml_dir();
if let Err(err) = DirBuilder::new().recursive(true).create(&path) {
eprintln!(
"Couldn't create directory: {}\nReason: {}",
@@ -184,7 +200,7 @@ pub fn play_episode(state: &State, p_search: &str, ep_num_string: &str) {
fn launch_player(url: &str) {
if let Err(_) = launch_mpv(&url) {
- launch_vlc(url)
+ launch_vlc(&url)
}
}