From 4f23c4cd7f7c28b4b7abc8b3c00b85d5662567d6 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 13 Nov 2017 13:02:50 +0200 Subject: [PATCH] Improved the match of mime-types to file-extensions. --- hammond-downloader/src/downloader.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hammond-downloader/src/downloader.rs b/hammond-downloader/src/downloader.rs index 9529616..921d873 100644 --- a/hammond-downloader/src/downloader.rs +++ b/hammond-downloader/src/downloader.rs @@ -34,18 +34,24 @@ fn download_into(dir: &str, file_title: &str, url: &str) -> Result { ct_len.map(|x| info!("File Lenght: {}", x)); ct_type.map(|x| info!("Content Type: {}", x)); + // This could be prettier. let ext = if let Some(t) = ct_type { let mime = mime_guess::get_extensions(t.type_().as_ref(), t.subtype().as_ref()); if let Some(m) = mime { - m.first().unwrap() + if m.contains(&t.subtype().as_ref()) { + t.subtype().as_ref().to_string() + } else { + m.first().unwrap().to_string() + } } else { error!("Unkown mime type. {}", t); - "unkown" + "unkown".to_string() } } else { error!("Unkown mime type."); - "unkown" + "unkown".to_string() }; + info!("Extension: {}", ext); // Construct a temp file to save desired content. let tempdir = TempDir::new_in(dir, "")?;