use scraper::{Html, Selector};
pub(super) fn extract_image_from_document(document: &Html) -> Option<String> {
if let Ok(selector) = Selector::parse("link[rel='image_src']") {
if let Some(link) = document.select(&selector).next() {
if let Some(href) = link.value().attr("href") {
let trimmed = href.trim();
if !trimmed.is_empty() {
return Some(trimmed.to_string());
}
}
}
}
if let Ok(selector) = Selector::parse("[itemprop='image']") {
for elem in document.select(&selector) {
if let Some(content) = elem.value().attr("content") {
let trimmed = content.trim();
if !trimmed.is_empty() {
return Some(trimmed.to_string());
}
}
if let Some(src) = elem.value().attr("src") {
let trimmed = src.trim();
if !trimmed.is_empty() {
return Some(trimmed.to_string());
}
}
if let Some(href) = elem.value().attr("href") {
let trimmed = href.trim();
if !trimmed.is_empty() {
return Some(trimmed.to_string());
}
}
}
}
None
}