fix: error on empty YT pagination responses
This commit is contained in:
parent
f5688f3571
commit
0164fac2e0
2 changed files with 6 additions and 10 deletions
|
|
@ -1,5 +1,3 @@
|
||||||
use std::borrow::Cow;
|
|
||||||
|
|
||||||
use crate::error::{Error, ExtractionError};
|
use crate::error::{Error, ExtractionError};
|
||||||
use crate::model::{
|
use crate::model::{
|
||||||
paginator::{ContinuationEndpoint, Paginator},
|
paginator::{ContinuationEndpoint, Paginator},
|
||||||
|
|
@ -111,9 +109,7 @@ impl MapResponse<Paginator<YouTubeItem>> for response::Continuation {
|
||||||
self.continuation_contents
|
self.continuation_contents
|
||||||
.map(|contents| contents.rich_grid_continuation.contents)
|
.map(|contents| contents.rich_grid_continuation.contents)
|
||||||
})
|
})
|
||||||
.ok_or(ExtractionError::InvalidData(Cow::Borrowed(
|
.unwrap_or_default();
|
||||||
"no continuation items",
|
|
||||||
)))?;
|
|
||||||
|
|
||||||
let mut mapper = response::YouTubeListMapper::<YouTubeItem>::new(lang);
|
let mut mapper = response::YouTubeListMapper::<YouTubeItem>::new(lang);
|
||||||
mapper.map_response(items);
|
mapper.map_response(items);
|
||||||
|
|
|
||||||
|
|
@ -433,7 +433,7 @@ fn get_video_details(rp: RustyPipe) {
|
||||||
assert!(!details.is_ccommons);
|
assert!(!details.is_ccommons);
|
||||||
|
|
||||||
assert!(details.recommended.visitor_data.is_some());
|
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_gte(details.top_comments.count.unwrap(), 700_000, "comments");
|
||||||
assert!(!details.top_comments.is_exhausted());
|
assert!(!details.top_comments.is_exhausted());
|
||||||
|
|
@ -470,7 +470,7 @@ fn get_video_details_music(rp: RustyPipe) {
|
||||||
assert!(!details.is_ccommons);
|
assert!(!details.is_ccommons);
|
||||||
|
|
||||||
assert!(details.recommended.visitor_data.is_some());
|
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
|
// 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.is_ccommons);
|
||||||
|
|
||||||
assert!(details.recommended.visitor_data.is_some());
|
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_gte(details.top_comments.count.unwrap(), 2199, "comments");
|
||||||
assert!(!details.top_comments.is_exhausted());
|
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!(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_gte(details.top_comments.count.unwrap(), 3200, "comments");
|
||||||
assert!(!details.top_comments.is_exhausted());
|
assert!(!details.top_comments.is_exhausted());
|
||||||
|
|
@ -683,7 +683,7 @@ fn get_video_details_live(rp: RustyPipe) {
|
||||||
assert!(!details.is_ccommons);
|
assert!(!details.is_ccommons);
|
||||||
|
|
||||||
assert!(details.recommended.visitor_data.is_some());
|
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
|
// No comments because livestream
|
||||||
assert_eq!(details.top_comments.count, Some(0));
|
assert_eq!(details.top_comments.count, Some(0));
|
||||||
|
|
|
||||||
Reference in a new issue