FBQOBNZ6JJQXSHYQK7MCFA4U7NBNB47FXED7Y7HPRTOQVXJFIAGAC
OWYYKTVHXMHHF6B44IN2SMYQ4MJ46LSKQT3OYPHONLQ6R7TSRMTAC
L3I4GC7R74HPQS3VCQ44UTBAKKBOW6UDVXV2EF7XSWH7H2Z3RRJQC
XIHPYOWDLQY2MVMVUQPH23O3TBALRG4G2CHSLWSCAYMY5NVJ32WQC
IFBRAMVLQ4Z6BAEMWDIXD2V5HSZK4DHRWYZNB32IBY7ZRTNZJVCQC
76TBVFPIFU3LSMXY5NAHZBH6HRJLSLK43PGOPL6QQ2YYVBJ64QAQC
FRLZDOAN7A3N623TLAPO66JVWBLBI45AG6P3DMQMDKGEZ2OBPYAAC
3YR56Y65UIAL3J7PUXWVJMOOHYZYDIX4V54OT2TJPZ25WQ6MXHCQC
O53GR2OQHGRKAVJT2RVPRHYFB54W5LM4DQYT7EYVGKU7HDK5CJJQC
USEXBPODUNF4Y7KLGC7SFQZAARXFMTAHK4OKO6HR7G3UPZY4C42QC
L7S4333LAJBFHRBEI5KB27CQJ3VVWSFZ6HOJ4FPFDDNAE4PUH6GAC
THSENT35O3PIXQ343QPPE3DJGR4YVULN6YPS5ETW5PXSVGZZQIZAC
UIMZBURR7KOWSREO4GDH5C2LZDUTEZBKQNYWBYSFGUTRYJ4GKSNQC
JYSIHNS67XTGAR4HN7ZHWFMGGYSK5IY6J6EHO4YUZOR7UMMWAORQC
ADXMUSFXOKBPCHW4XS3T4KLWMPGQPYDMZW6YFFSHZPAQKEGIKCBQC
2CKX4R6ONNXDXGRYZ5NZEBJZFX5Z6BYPGNJ7LMXUHHFB4MUFJRCAC
NE63ERXN7OUYSQ4PGPIQIIKEYD7OAOWXXSGMTORD6RJNUZHRLVJAC
ZD3G3BCXBEXELHH3KMXMDUQUJ4BXIF4ZSZKFIJJCRO7IDK4XPOWAC
JPN37V6Q35ZAW7A2DTGX2WJ3IJ66BAGHXHWXOGHQRHGFAOETFQ7AC
J64KBLKALQ3HQCY4HJU5H6WBXTATS7TKBYNNUUSNJE7JLWLYO66QC
BSPWOOHZMN3RAOHGJ2A3XKUOUCFFAOXS7YR67E3AARPPPIA5YPDAC
Y6BVNXQ747WQKVB4JO3AHYOMBWNNJNPC6SG2UUCCZRIIXDMXJYDQC
GG5VBVLAQAQFIPOQGYSCC2T5RXXQMDPKXZFLCYGTUNE5DLRQYFDQC
JJ4SMY257MAHSJSZH5PJZMLBH3GJX5VKH2ZZSBGWLL7FWP7OA7TQC
M4FCDZ745GHHL3OLH64EVYOEOEGGGVIBCVFGX5JUJDJRE5OLCXLQC
SBPKWZNQF5BWAJ7SZHWVK5BG6DTVJNDYND6UG5PDZCWZ2W4W2HXQC
5GQNHICLSFAA7ZUFXUCNACCPAIIGK4DV2QPTONDNXLS4TJJTOFHAC
ZSO6T3AM36JCKVGEZEIC6NA7WWESSW73TVM67W3BOWUPOSBHZEFQC
HSDBPX2AMUS4NRA52EHIYOR7H37ABNGJWBJKPQABFMFDU7EITSIAC
TV3GOKIHRVTPGEFYLMTNFQYZBNJRL46ZLOKSQACHVIGW4IWOMDFQC
EEJ6CBJRTXLPQP44I2RLWVLJBX565DXXAWU4JIWNA3MMNE7WB5LQC
let podcast = Podcast::from(Channel::read_from(BufReader::new(&content[..]))
.chain_err(|| UNABLE_TO_CREATE_CHANNEL_FROM_RESPONSE)?);
let podcast = Podcast::from(
Channel::read_from(BufReader::new(&content[..]))
.chain_err(|| UNABLE_TO_CREATE_CHANNEL_FROM_RESPONSE)?,
);
let podcast: Podcast = Podcast::from(Channel::read_from(content.as_slice())
.chain_err(|| UNABLE_TO_CREATE_CHANNEL_FROM_FILE)?);
let podcast: Podcast = Podcast::from(
Channel::read_from(content.as_slice())
.chain_err(|| UNABLE_TO_CREATE_CHANNEL_FROM_FILE)?,
);
.chain_err(|| "unable to retrieve episode name")?);
filename.push_str(episode
.extension()
.chain_err(|| "unable to retrieve episode extension")?);
.chain_err(|| "unable to retrieve episode name")?;
filename.push_str(
episode
.extension()
.chain_err(|| "unable to retrieve episode extension")?,
);
let resp: String = reqwest::get(
"https://raw.githubusercontent.com/njaremko/podcast/master/Cargo.toml",
).chain_err(|| UNABLE_TO_GET_HTTP_RESPONSE)?
.text()
.chain_err(|| "unable to convert response to text")?;
let resp: String =
reqwest::get("https://raw.githubusercontent.com/njaremko/podcast/master/Cargo.toml")
.chain_err(|| UNABLE_TO_GET_HTTP_RESPONSE)?
.text()
.chain_err(|| "unable to convert response to text")?;
Some(ep) => if String::from(ep).contains(|c| c == '-' || c == ',') {
download_range(&state, podcast, ep)?
} else {
download_episode(&state, podcast, ep)?
},
Some(ep) => {
if String::from(ep).contains(|c| c == '-' || c == ',') {
download_range(&state, podcast, ep)?
} else {
download_episode(&state, podcast, ep)?
}
}
let mut filename = String::from(title);
filename.push_str(self.extension()
.chain_err(|| "unable to retrieve extension")?);
let mut filename = title;
filename.push_str(
self.extension()
.chain_err(|| "unable to retrieve extension")?,
);
pub const UNABLE_TO_PARSE_REGEX: &'static str = "unable to parse regex";
pub const UNABLE_TO_OPEN_FILE: &'static str = "unable to open file";
pub const UNABLE_TO_CREATE_FILE: &'static str = "unable to create file";
pub const UNABLE_TO_WRITE_FILE: &'static str = "unable to write file";
pub const UNABLE_TO_READ_FILE_TO_STRING: &'static str = "unable to read file to string";
pub const UNABLE_TO_READ_DIRECTORY: &'static str = "unable to read directory";
pub const UNABLE_TO_READ_ENTRY: &'static str = "unable to read entry";
pub const UNABLE_TO_CREATE_DIRECTORY: &'static str = "unable to create directory";
pub const UNABLE_TO_READ_RESPONSE_TO_END: &'static str = "unable to read response to end";
pub const UNABLE_TO_GET_HTTP_RESPONSE: &'static str = "unable to get http response";
pub const UNABLE_TO_CONVERT_TO_STR: &'static str = "unable to convert to &str";
pub const UNABLE_TO_REMOVE_FILE: &'static str = "unable to remove file";
pub const UNABLE_TO_CREATE_CHANNEL_FROM_RESPONSE: &'static str =
pub const UNABLE_TO_PARSE_REGEX: &str = "unable to parse regex";
pub const UNABLE_TO_OPEN_FILE: &str = "unable to open file";
pub const UNABLE_TO_CREATE_FILE: &str = "unable to create file";
pub const UNABLE_TO_WRITE_FILE: &str = "unable to write file";
pub const UNABLE_TO_READ_FILE_TO_STRING: &str = "unable to read file to string";
pub const UNABLE_TO_READ_DIRECTORY: &str = "unable to read directory";
pub const UNABLE_TO_READ_ENTRY: &str = "unable to read entry";
pub const UNABLE_TO_CREATE_DIRECTORY: &str = "unable to create directory";
pub const UNABLE_TO_READ_RESPONSE_TO_END: &str = "unable to read response to end";
pub const UNABLE_TO_GET_HTTP_RESPONSE: &str = "unable to get http response";
pub const UNABLE_TO_CONVERT_TO_STR: &str = "unable to convert to &str";
pub const UNABLE_TO_REMOVE_FILE: &str = "unable to remove file";
pub const UNABLE_TO_CREATE_CHANNEL_FROM_RESPONSE: &str =
pub const UNABLE_TO_CREATE_CHANNEL_FROM_FILE: &'static str =
"unable to create channel from xml file";
pub const UNABLE_TO_RETRIEVE_PODCAST_BY_TITLE: &'static str = "unable to retrieve podcast by title";
pub const UNABLE_TO_CREATE_CHANNEL_FROM_FILE: &str = "unable to create channel from xml file";
pub const UNABLE_TO_RETRIEVE_PODCAST_BY_TITLE: &str = "unable to retrieve podcast by title";