From 5f82872d1fe362f51d8d710802c38278e47c514e Mon Sep 17 00:00:00 2001 From: Jan Lukas Gernert Date: Thu, 26 Sep 2019 21:48:24 +0200 Subject: [PATCH] don't attempt to redownload embeded images --- src/images/mod.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/images/mod.rs b/src/images/mod.rs index 69dcc64..65a5734 100644 --- a/src/images/mod.rs +++ b/src/images/mod.rs @@ -66,20 +66,22 @@ impl ImageDownloader { evaluate_xpath!(context, xpath, node_vec); for mut node in node_vec { if let Some(url) = node.get_property("src") { - if let Ok(url) = url::Url::parse(&url) { - let parent_url = match self.check_image_parent(&node, &url) { - Ok(url) => Some(url), - Err(_) => None, - }; + if !url.starts_with("data:") { + if let Ok(url) = url::Url::parse(&url) { + let parent_url = match self.check_image_parent(&node, &url) { + Ok(url) => Some(url), + Err(_) => None, + }; - if let Ok((small_image, big_image)) = self.save_image(&url, &parent_url) { - if let Err(_) = node.set_property("src", &small_image) { - return Err(ImageDownloadErrorKind::HtmlParse)?; - } - if let Some(big_image) = big_image { - if let Err(_) = node.set_property("big-src", &big_image) { + if let Ok((small_image, big_image)) = self.save_image(&url, &parent_url) { + if let Err(_) = node.set_property("src", &small_image) { return Err(ImageDownloadErrorKind::HtmlParse)?; } + if let Some(big_image) = big_image { + if let Err(_) = node.set_property("big-src", &big_image) { + return Err(ImageDownloadErrorKind::HtmlParse)?; + } + } } } }