'))
+ .and_then(|(_, rest)| rest.split('<').next())
+ .map(|t| t.trim().to_string())
+ .filter(|t| !t.is_empty())
+ .or_else(|| {
+ video_segment
+ .split("alt=\"")
+ .nth(1)
+ .and_then(|s| s.split('"').next())
+ .map(|t| t.trim().to_string())
+ .filter(|t| !t.is_empty())
+ })
+ .unwrap_or_default();
title = decode(title.as_bytes())
.to_string()
@@ -671,6 +684,30 @@ mod tests {
assert_eq!(items[0].formats.as_ref().map(|f| f.len()), Some(1));
}
+ #[test]
+ fn parses_title_when_title_div_has_extra_attributes() {
+ let provider = NoodlemagazineProvider::new();
+ let options = options();
+ let html = r##"
+
+ "##;
+
+ let items = provider.get_video_items_from_html(html.to_string(), &options);
+
+ assert_eq!(items.len(), 1);
+ assert_eq!(items[0].title, "The Girl & Her Lover");
+ assert_eq!(items[0].duration, 295);
+ }
+
#[test]
fn keeps_https_cdn_thumbs_but_drops_non_images() {
let provider = NoodlemagazineProvider::new();