fix: error on empty YT pagination responses

This commit is contained in:
ThetaDev 2023-04-05 19:23:08 +02:00
parent f5688f3571
commit 0164fac2e0
2 changed files with 6 additions and 10 deletions

View file

@ -1,5 +1,3 @@
use std::borrow::Cow;
use crate::error::{Error, ExtractionError};
use crate::model::{
paginator::{ContinuationEndpoint, Paginator},
@ -111,9 +109,7 @@ impl MapResponse<Paginator<YouTubeItem>> for response::Continuation {
self.continuation_contents
.map(|contents| contents.rich_grid_continuation.contents)
})
.ok_or(ExtractionError::InvalidData(Cow::Borrowed(
"no continuation items",
)))?;
.unwrap_or_default();
let mut mapper = response::YouTubeListMapper::<YouTubeItem>::new(lang);
mapper.map_response(items);

View file

@ -433,7 +433,7 @@ fn get_video_details(rp: RustyPipe) {
assert!(!details.is_ccommons);
assert!(details.recommended.visitor_data.is_some());
assert_next(details.recommended, rp.query(), 10, 2);
assert_next(details.recommended, rp.query(), 10, 1);
assert_gte(details.top_comments.count.unwrap(), 700_000, "comments");
assert!(!details.top_comments.is_exhausted());
@ -470,7 +470,7 @@ fn get_video_details_music(rp: RustyPipe) {
assert!(!details.is_ccommons);
assert!(details.recommended.visitor_data.is_some());
assert_next(details.recommended, rp.query(), 10, 2);
assert_next(details.recommended, rp.query(), 10, 1);
// Update(01.11.2022): comments are sometimes enabled
/*
@ -517,7 +517,7 @@ fn get_video_details_ccommons(rp: RustyPipe) {
assert!(details.is_ccommons);
assert!(details.recommended.visitor_data.is_some());
assert_next(details.recommended, rp.query(), 10, 2);
assert_next(details.recommended, rp.query(), 10, 1);
assert_gte(details.top_comments.count.unwrap(), 2199, "comments");
assert!(!details.top_comments.is_exhausted());
@ -640,7 +640,7 @@ fn get_video_details_chapters(rp: RustyPipe) {
}
assert!(details.recommended.visitor_data.is_some());
assert_next(details.recommended, rp.query(), 10, 2);
assert_next(details.recommended, rp.query(), 10, 1);
assert_gte(details.top_comments.count.unwrap(), 3200, "comments");
assert!(!details.top_comments.is_exhausted());
@ -683,7 +683,7 @@ fn get_video_details_live(rp: RustyPipe) {
assert!(!details.is_ccommons);
assert!(details.recommended.visitor_data.is_some());
assert_next(details.recommended, rp.query(), 10, 2);
assert_next(details.recommended, rp.query(), 10, 1);
// No comments because livestream
assert_eq!(details.top_comments.count, Some(0));