JYSIHNS67XTGAR4HN7ZHWFMGGYSK5IY6J6EHO4YUZOR7UMMWAORQC VRLKU5J6FEMVVZIK5ABNDM5KYIGJ56YFJW52CBVTW3EH35FOHU6AC L3I4GC7R74HPQS3VCQ44UTBAKKBOW6UDVXV2EF7XSWH7H2Z3RRJQC XIHPYOWDLQY2MVMVUQPH23O3TBALRG4G2CHSLWSCAYMY5NVJ32WQC UIMZBURR7KOWSREO4GDH5C2LZDUTEZBKQNYWBYSFGUTRYJ4GKSNQC ADXMUSFXOKBPCHW4XS3T4KLWMPGQPYDMZW6YFFSHZPAQKEGIKCBQC 5GQNHICLSFAA7ZUFXUCNACCPAIIGK4DV2QPTONDNXLS4TJJTOFHAC 5JMYBRF3UYX4LFH7JK6S4BEDKRVKDFIL4YKTCWKMKP4TMNNGQFKQC 476KTQSS5NXVCTVLVZQRGSYD5OAFBYG75VTSWBN26Q45RSMRT5YQC ZYS43ILR4OXI7S2AYNGYSTK3IU2UVELIWVCCWDS7RVZQDSNJMDHQC H5MQEP35FJNDLARTAB7J5GEHRNBSL6RTHFUGURG5HIVGLCG4FGUAC BSPWOOHZMN3RAOHGJ2A3XKUOUCFFAOXS7YR67E3AARPPPIA5YPDAC THSENT35O3PIXQ343QPPE3DJGR4YVULN6YPS5ETW5PXSVGZZQIZAC J64KBLKALQ3HQCY4HJU5H6WBXTATS7TKBYNNUUSNJE7JLWLYO66QC JJ4SMY257MAHSJSZH5PJZMLBH3GJX5VKH2ZZSBGWLL7FWP7OA7TQC 6FJACP6KUOZ4HWK4PSS5PFPGDYXZSCAWSKIARWBDGCZTPJWXA62AC Y6BVNXQ747WQKVB4JO3AHYOMBWNNJNPC6SG2UUCCZRIIXDMXJYDQC SBPKWZNQF5BWAJ7SZHWVK5BG6DTVJNDYND6UG5PDZCWZ2W4W2HXQC JPN37V6Q35ZAW7A2DTGX2WJ3IJ66BAGHXHWXOGHQRHGFAOETFQ7AC EZMX4SYFEBYNJVQETRVAYONU5MIMQYTTSA5DRMTQET5B7CL6CI6AC O53GR2OQHGRKAVJT2RVPRHYFB54W5LM4DQYT7EYVGKU7HDK5CJJQC M4FCDZ745GHHL3OLH64EVYOEOEGGGVIBCVFGX5JUJDJRE5OLCXLQC 76TBVFPIFU3LSMXY5NAHZBH6HRJLSLK43PGOPL6QQ2YYVBJ64QAQC 5FEMSWRS6SMVKBJAV4IYJLEJ2CML6QNZM75UGQFIIMAR5FBAACXAC FFAFJQ5QVMHTLULZTGVM5PX7XQEZQUWLPH2GAN5BGVAYZOZZYG5QC use std::collections::HashSet;use std::fs::{self, DirBuilder, File};use std::io::{self, BufReader, Read, Write};use std::process::Command;use structs::*;use utils::*;
}}}}pub fn play_latest(state: &State, p_search: &str) {let re_pod = Regex::new(&format!("(?i){}", &p_search)).expect("Failed to parse regex");let mut path = get_xml_dir();if let Err(err) = DirBuilder::new().recursive(true).create(&path) {eprintln!("Couldn't create directory: {}\nReason: {}",path.to_str().unwrap(),err);return;}for subscription in &state.subscriptions {if re_pod.is_match(&subscription.title) {let mut filename = subscription.title.clone();filename.push_str(".xml");path.push(filename);let mut file = File::open(&path).unwrap();let mut content: Vec<u8> = Vec::new();file.read_to_end(&mut content).unwrap();let podcast = Podcast::from(Channel::read_from(content.as_slice()).unwrap());let episodes = podcast.episodes();let episode = episodes[0].clone();filename = String::from(episode.title().unwrap());filename.push_str(episode.extension().unwrap());path = get_podcast_dir();path.push(podcast.title());path.push(filename);if path.exists() {launch_player(path.to_str().unwrap());} else {launch_player(episode.url().unwrap());
let episode = play_matches.value_of("EPISODE").unwrap();play_episode(&state, podcast, episode);
match play_matches.value_of("EPISODE") {Some(episode) => play_episode(&state, podcast, episode),None => play_latest(&state, podcast),}
use std::collections::BTreeSet;use std::fs::{self, remove_dir_all, remove_file, DirBuilder, File};use std::io::{self, BufReader, Read, Write};use utils::*;
println!("Downloading: {}", path.to_str().unwrap());let mut file = File::create(&path)?;let mut resp = reqwest::get(url).unwrap();let mut content: Vec<u8> = Vec::new();resp.read_to_end(&mut content)?;file.write_all(&content)?;return Ok(());
if !path.exists() {println!("Downloading: {}", path.to_str().unwrap());let mut file = File::create(&path)?;let mut resp = reqwest::get(url).unwrap();let mut content: Vec<u8> = Vec::new();resp.read_to_end(&mut content)?;file.write_all(&content)?;return Ok(());} else {println!("File already exists: {}", path.to_str().unwrap());return Ok(());}