Fixed formatting
This commit is contained in:
parent
5443c0cc3f
commit
550e4cc83f
@ -8,7 +8,7 @@ use html5ever::{local_name, namespace_url, ns};
|
|||||||
use http::retrieve_asset;
|
use http::retrieve_asset;
|
||||||
use js::attr_is_event_handler;
|
use js::attr_is_event_handler;
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
use utils::{data_to_dataurl, is_valid_url, resolve_url, url_has_protocol, resolve_css_imports};
|
use utils::{data_to_dataurl, is_valid_url, resolve_css_imports, resolve_url, url_has_protocol};
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref EMPTY_STRING: String = String::new();
|
static ref EMPTY_STRING: String = String::new();
|
||||||
|
15
src/http.rs
15
src/http.rs
@ -45,11 +45,22 @@ pub fn retrieve_asset(
|
|||||||
};
|
};
|
||||||
|
|
||||||
Ok((
|
Ok((
|
||||||
if response.status() != 200 { "".to_string() } else { data_to_dataurl(&mimetype, &data) },
|
if response.status() != 200 {
|
||||||
|
"".to_string()
|
||||||
|
} else {
|
||||||
|
data_to_dataurl(&mimetype, &data)
|
||||||
|
},
|
||||||
response.url().to_string(),
|
response.url().to_string(),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
Ok((if response.status() != 200 { "".to_string() } else { response.text().unwrap() }, response.url().to_string()))
|
Ok((
|
||||||
|
if response.status() != 200 {
|
||||||
|
"".to_string()
|
||||||
|
} else {
|
||||||
|
response.text().unwrap()
|
||||||
|
},
|
||||||
|
response.url().to_string(),
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
32
src/utils.rs
32
src/utils.rs
@ -1,8 +1,8 @@
|
|||||||
extern crate base64;
|
extern crate base64;
|
||||||
|
|
||||||
use self::base64::encode;
|
use self::base64::encode;
|
||||||
use regex::Regex;
|
|
||||||
use http::retrieve_asset;
|
use http::retrieve_asset;
|
||||||
|
use regex::Regex;
|
||||||
use url::{ParseError, Url};
|
use url::{ParseError, Url};
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
@ -83,12 +83,23 @@ pub fn resolve_url(from: &str, to: &str) -> Result<String, ParseError> {
|
|||||||
Ok(result)
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resolve_css_imports(css_string: &str, href: &str, opt_user_agent: &str, opt_silent: bool, opt_insecure: bool) -> Result<String, String> {
|
pub fn resolve_css_imports(
|
||||||
|
css_string: &str,
|
||||||
|
href: &str,
|
||||||
|
opt_user_agent: &str,
|
||||||
|
opt_silent: bool,
|
||||||
|
opt_insecure: bool,
|
||||||
|
) -> Result<String, String> {
|
||||||
let mut resolved_css = String::from(css_string);
|
let mut resolved_css = String::from(css_string);
|
||||||
let re = Regex::new(r###"url\((?:(?:https?|ftp)://)?"?[\w/\-?=%.]+\.[\w/\-?=%.]+"?\)"###).unwrap();
|
let re =
|
||||||
|
Regex::new(r###"url\((?:(?:https?|ftp)://)?"?[\w/\-?=%.]+\.[\w/\-?=%.]+"?\)"###).unwrap();
|
||||||
|
|
||||||
for link in re.captures_iter(&css_string) {
|
for link in re.captures_iter(&css_string) {
|
||||||
let target_link = if link[0].chars().nth(4) == Some('"') { &link[0][5..link[0].len()-2] } else {&link[0][4..link[0].len()-1]};
|
let target_link = if link[0].chars().nth(4) == Some('"') {
|
||||||
|
&link[0][5..link[0].len() - 2]
|
||||||
|
} else {
|
||||||
|
&link[0][4..link[0].len() - 1]
|
||||||
|
};
|
||||||
let embedded_url = String::from([href, "/../", &target_link.to_string()].concat());
|
let embedded_url = String::from([href, "/../", &target_link.to_string()].concat());
|
||||||
|
|
||||||
let (css_dataurl, _) = retrieve_asset(
|
let (css_dataurl, _) = retrieve_asset(
|
||||||
@ -101,8 +112,17 @@ pub fn resolve_css_imports(css_string: &str, href: &str, opt_user_agent: &str, o
|
|||||||
)
|
)
|
||||||
.unwrap_or((EMPTY_STRING.clone(), EMPTY_STRING.clone()));
|
.unwrap_or((EMPTY_STRING.clone(), EMPTY_STRING.clone()));
|
||||||
|
|
||||||
let replacement = &["\"", &css_dataurl.replace("\"",&["\\", "\""].concat()).to_string(), "\""].concat();
|
let replacement = &[
|
||||||
let t = resolved_css.replace(&link[0][4..link[0].len() - 1], &replacement).to_string();
|
"\"",
|
||||||
|
&css_dataurl
|
||||||
|
.replace("\"", &["\\", "\""].concat())
|
||||||
|
.to_string(),
|
||||||
|
"\"",
|
||||||
|
]
|
||||||
|
.concat();
|
||||||
|
let t = resolved_css
|
||||||
|
.replace(&link[0][4..link[0].len() - 1], &replacement)
|
||||||
|
.to_string();
|
||||||
resolved_css = t.clone();
|
resolved_css = t.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user