From 4d8f4109b5a946d8d2bb58b32d997ae841314bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20M=C3=B3ricz?= Date: Sat, 25 Jan 2025 18:48:40 +0100 Subject: [PATCH] fix(rust): further select fixes --- apps/api/sharedLibs/html-transformer/src/lib.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/api/sharedLibs/html-transformer/src/lib.rs b/apps/api/sharedLibs/html-transformer/src/lib.rs index f4a96c35..4b1b57cf 100644 --- a/apps/api/sharedLibs/html-transformer/src/lib.rs +++ b/apps/api/sharedLibs/html-transformer/src/lib.rs @@ -268,7 +268,8 @@ fn _transform_html_inner(opts: TranformHTMLOptions) -> Result { } } - for img in document.select("img[srcset]")? { + let srcset_images: Vec<_> = document.select("img[srcset]")?.collect(); + for img in srcset_images { let mut sizes: Vec = img.attributes.borrow().get("srcset").ok_or(())?.split(",").filter_map(|x| { let tok: Vec<&str> = x.trim().split(" ").collect(); let tok_1 = if tok.len() > 1 && !tok[1].is_empty() { @@ -306,14 +307,16 @@ fn _transform_html_inner(opts: TranformHTMLOptions) -> Result { let url = Url::parse(&opts.url).map_err(|_| ())?; - for img in document.select("img[src]")? { + let src_images: Vec<_> = document.select("img[src]")?.collect(); + for img in src_images { let old = img.attributes.borrow().get("src").map(|x| x.to_string()).ok_or(())?; if let Ok(new) = url.join(&old) { img.attributes.borrow_mut().insert("src", new.to_string()); } } - for anchor in document.select("a[href]")? { + let href_anchors: Vec<_> = document.select("a[href]")?.collect(); + for anchor in href_anchors { let old = anchor.attributes.borrow().get("href").map(|x| x.to_string()).ok_or(())?; if let Ok(new) = url.join(&old) { anchor.attributes.borrow_mut().insert("href", new.to_string());