UEIFJVLTFUPT6KIABPD622UTOVTICIHMYR2IM2A6ZJQSYR5PNCDAC YGCJK7DWRW6KQVS4PKRZ2VV6HHVWGUPNSOWKVTQNPWL5C37V432AC J6VA5WOO47AAIRR56VDF232XD37QKRW5A7ROYLSYAQF7UHWC3WCQC SXRJDBMKES2M6JF5YNLV3O33555GNXUWYZGP5TUXCWFVKF44C32QC L3I4GC7R74HPQS3VCQ44UTBAKKBOW6UDVXV2EF7XSWH7H2Z3RRJQC B5ZHH5JWBCZD4MXMSV5E3M5XVGY6JWUK3GXFSZTOPNGKU62H4VCQC PUXPYN2CCYT274PU5EOCABDAJJWK7OXFB37AJKVBQHB26W4BVINQC FBQOBNZ6JJQXSHYQK7MCFA4U7NBNB47FXED7Y7HPRTOQVXJFIAGAC XIHPYOWDLQY2MVMVUQPH23O3TBALRG4G2CHSLWSCAYMY5NVJ32WQC IFBRAMVLQ4Z6BAEMWDIXD2V5HSZK4DHRWYZNB32IBY7ZRTNZJVCQC 35G7GDLMIDF24XXF7RP5FV6BPCMDC2MZMCBLWNF7DHJFTEHOQ66QC UIMZBURR7KOWSREO4GDH5C2LZDUTEZBKQNYWBYSFGUTRYJ4GKSNQC MQKD76RYJOC3SJ4EPKQRQFV7A2BRJAHAI4VMMLR4EKV4B3EV5YTQC AFGKYLKUV6QBTL7JYDNOUCO2BVUR6CUB5MAKA3V3C76XGCWJULQAC WWO4T3TSJAX5YJCVXLZEOQVI3KEBI6TVBRBSWVC44FGZCSYCVUQAC OMMEITXS6J6ADT7PFSF45G5H7AJYU6Y5JIIURN532AMR4V4KFUFQC O53GR2OQHGRKAVJT2RVPRHYFB54W5LM4DQYT7EYVGKU7HDK5CJJQC NZH7OEP2UHU7K4J5AKZDBWO67X6XRZJVDD4XM6OL4OUO2V52DUOQC JYSIHNS67XTGAR4HN7ZHWFMGGYSK5IY6J6EHO4YUZOR7UMMWAORQC MOEXIJAVCTHVLSMKDNX54QLKBWKOC6SG6N6S3B73QWLYL2NWXLWAC R7FXZ7ANRHRU3VWZOBEYSRYGEVF5YEIGLQDKFAR532DBF2I7BCBQC KHBYSOY7O3OGZLSIYZL6XRYHPNESD7WG2IAT7JT7HBTTCZVW4WJAC FVYGRIUYU4NXIDGD733YGWFT253T4V6EXMEM6HJMBXMNX5TPDM2AC 57DU4YHARHICJPWTTHSBB5O7MAW7GJVJUMVEREGVWEMHCGI7JMLQC GE7XXDPC73SUY6I6F3X6I4QFQO2BCPHD4MZALYOWG7H7SRE5XAFQC DP6ASS5FJGSZUG2B4SQOKZVHFAVZLEHFVEWBNFG3BHMC6FZAJNHQC if let Some(ep) = Download::new(state, &podcast, episode).await? {downloads.push(ep);}}}}Ok(downloads)}pub async fn download_matching(state: &State,p_search: &str,e_search: &Regex,) -> Result<Vec<Download>> {let re_pod = Regex::new(&format!("(?i){}", &p_search))?;let mut downloads = vec![];for subscription in &state.subscriptions {if re_pod.is_match(&subscription.title) {let podcast = Podcast::from_title(&subscription.title)?;let mut path = utils::get_podcast_dir()?;path.push(podcast.title());utils::create_dir_if_not_exist(&path)?;let episodes = podcast.episodes();let episodes_to_download: Vec<&Episode> = episodes.iter().filter(|ep| ep.title().map(|t| e_search.is_match(&t)).unwrap_or(false)).collect();for episode in episodes_to_download {
if String::from(ep).contains(|c| c == '-' || c == ',') {to_download.append(&mut download::download_range(&state, podcast, ep).await?);
if let Some(pattern) = matches.value_of("pattern") {let regex = Regex::new(pattern)?;to_download.append(&mut download::download_matching(&mutable_state, podcast, ®ex).await?,)} else if String::from(ep).contains(|c| c == '-' || c == ',') {to_download.append(&mut download::download_range(&mutable_state, podcast, ep).await?);
// Run CLI parser and get matcheslet app = parser::get_app(VERSION);let matches = app.get_matches();
// Run CLI parser and get matcheslet app = parser::get_app(VERSION);let matches = app.get_matches();
// Load config filelet config = Config::load()?.unwrap_or_default();if !config.quiet.unwrap_or(false) && !is_quiet {let path = utils::get_podcast_dir()?;writeln!(std::io::stdout().lock(), "Using PODCAST dir: {:?}", &path).ok();}
// Load config filelet config = Config::load()?.unwrap_or_default();if !config.quiet.unwrap_or(false) && !is_quiet {let path = utils::get_podcast_dir()?;writeln!(std::io::stdout().lock(), "Using PODCAST dir: {:?}", &path).ok();}
// Parse the state and provided arguments into a command to be runlet command = parse_command(state, matches);
// Parse the state and provided arguments into a command to be runlet command = parse_command(state, matches);