fix: failing video_details_music comment test
This commit is contained in:
parent
9707a6eb0b
commit
c7ae2f8531
12 changed files with 38 additions and 11 deletions
|
|
@ -35,7 +35,7 @@ impl RustyPipeQuery {
|
|||
)
|
||||
.await?;
|
||||
|
||||
Ok(map_ytm_paginator(p, endpoint))
|
||||
Ok(map_ytm_paginator(p, visitor_data, endpoint))
|
||||
} else {
|
||||
let context = self
|
||||
.get_context(ClientType::Desktop, true, visitor_data)
|
||||
|
|
@ -55,33 +55,35 @@ impl RustyPipeQuery {
|
|||
)
|
||||
.await?;
|
||||
|
||||
Ok(map_yt_paginator(p, endpoint))
|
||||
Ok(map_yt_paginator(p, visitor_data, endpoint))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn map_yt_paginator<T: FromYtItem>(
|
||||
p: Paginator<YouTubeItem>,
|
||||
visitor_data: Option<&str>,
|
||||
endpoint: ContinuationEndpoint,
|
||||
) -> Paginator<T> {
|
||||
Paginator {
|
||||
count: p.count,
|
||||
items: p.items.into_iter().filter_map(T::from_yt_item).collect(),
|
||||
ctoken: p.ctoken,
|
||||
visitor_data: p.visitor_data,
|
||||
visitor_data: visitor_data.map(str::to_owned),
|
||||
endpoint,
|
||||
}
|
||||
}
|
||||
|
||||
fn map_ytm_paginator<T: FromYtItem>(
|
||||
p: Paginator<MusicItem>,
|
||||
visitor_data: Option<&str>,
|
||||
endpoint: ContinuationEndpoint,
|
||||
) -> Paginator<T> {
|
||||
Paginator {
|
||||
count: p.count,
|
||||
items: p.items.into_iter().filter_map(T::from_ytm_item).collect(),
|
||||
ctoken: p.ctoken,
|
||||
visitor_data: p.visitor_data,
|
||||
visitor_data: visitor_data.map(str::to_owned),
|
||||
endpoint,
|
||||
}
|
||||
}
|
||||
|
|
@ -318,7 +320,7 @@ mod tests {
|
|||
let map_res: MapResult<Paginator<YouTubeItem>> =
|
||||
items.map_response("", Language::En, None).unwrap();
|
||||
let paginator: Paginator<PlaylistItem> =
|
||||
map_yt_paginator(map_res.c, ContinuationEndpoint::Browse);
|
||||
map_yt_paginator(map_res.c, None, ContinuationEndpoint::Browse);
|
||||
|
||||
assert!(
|
||||
map_res.warnings.is_empty(),
|
||||
|
|
@ -340,7 +342,7 @@ mod tests {
|
|||
let map_res: MapResult<Paginator<MusicItem>> =
|
||||
items.map_response("", Language::En, None).unwrap();
|
||||
let paginator: Paginator<TrackItem> =
|
||||
map_ytm_paginator(map_res.c, ContinuationEndpoint::MusicBrowse);
|
||||
map_ytm_paginator(map_res.c, None, ContinuationEndpoint::MusicBrowse);
|
||||
|
||||
assert!(
|
||||
map_res.warnings.is_empty(),
|
||||
|
|
|
|||
|
|
@ -742,12 +742,14 @@ VideoDetails(
|
|||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("CgtCeURHR09uNlJ5TSjOiLqZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("CgtCeURHR09uNlJ5TSjOiLqZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtCeURHR09uNlJ5TSjOiLqZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -816,12 +816,14 @@ VideoDetails(
|
|||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("Cgs2V0p6ZW5ab1ozTSjkrpaaBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("Cgs2V0p6ZW5ab1ozTSjkrpaaBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("Cgs2V0p6ZW5ab1ozTSjkrpaaBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -1274,12 +1274,14 @@ VideoDetails(
|
|||
count: Some(3200),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyJSIRIgtuRkRCeEJVZkU3NDAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("Cgtidzg4MlRTb3FKSSiqipeaBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(3200),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyOCIRIgtuRkRCeEJVZkU3NDABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("Cgtidzg4MlRTb3FKSSiqipeaBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("Cgtidzg4MlRTb3FKSSiqipeaBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -46,12 +46,14 @@ VideoDetails(
|
|||
count: None,
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC0hSS3UwY3Zycl9vGAYyJSIRIgtIUkt1MGN2cnJfbzABeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("CgtxUUdrc1VSVE54Zyja1KiZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: None,
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC0hSS3UwY3Zycl9vGAYyOCIRIgtIUkt1MGN2cnJfbzABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("CgtxUUdrc1VSVE54Zyja1KiZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtxUUdrc1VSVE54Zyja1KiZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -763,12 +763,14 @@ VideoDetails(
|
|||
count: Some(2200),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SCzByYjlDZk92b2prGAYyJSIRIgswcmI5Q2ZPdm9qazAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("CgtoY1pQUF8wNW1qayjSjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(2200),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SCzByYjlDZk92b2prGAYyOCIRIgswcmI5Q2ZPdm9qazABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("CgtoY1pQUF8wNW1qayjSjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtoY1pQUF8wNW1qayjSjpSZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -1231,12 +1231,14 @@ VideoDetails(
|
|||
count: Some(2900),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyJSIRIgtuRkRCeEJVZkU3NDAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("CgtIV0JjSUtDQm9LQSjUjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(2900),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyOCIRIgtuRkRCeEJVZkU3NDABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("CgtIV0JjSUtDQm9LQSjUjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtIV0JjSUtDQm9LQSjUjpSZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -822,12 +822,14 @@ VideoDetails(
|
|||
count: Some(0),
|
||||
items: [],
|
||||
ctoken: None,
|
||||
visitor_data: Some("CgtnQS1WdzlNNkNCSSiSmKiZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(0),
|
||||
items: [],
|
||||
ctoken: None,
|
||||
visitor_data: Some("CgtnQS1WdzlNNkNCSSiSmKiZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtnQS1WdzlNNkNCSSiSmKiZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -568,12 +568,14 @@ VideoDetails(
|
|||
count: Some(0),
|
||||
items: [],
|
||||
ctoken: None,
|
||||
visitor_data: Some("CgtzclhqZVpoajVhVSi76qeZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(0),
|
||||
items: [],
|
||||
ctoken: None,
|
||||
visitor_data: Some("CgtzclhqZVpoajVhVSi76qeZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("CgtzclhqZVpoajVhVSi76qeZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -779,12 +779,14 @@ VideoDetails(
|
|||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
|
||||
visitor_data: Some("Cgtjemd0bDVxU1N1QSjRjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
latest_comments: Paginator(
|
||||
count: Some(705000),
|
||||
items: [],
|
||||
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
|
||||
visitor_data: Some("Cgtjemd0bDVxU1N1QSjRjpSZBg%3D%3D"),
|
||||
endpoint: next,
|
||||
),
|
||||
visitor_data: Some("Cgtjemd0bDVxU1N1QSjRjpSZBg%3D%3D"),
|
||||
|
|
|
|||
|
|
@ -68,6 +68,10 @@ impl RustyPipeQuery {
|
|||
&request_body,
|
||||
)
|
||||
.await
|
||||
.map(|p| Paginator {
|
||||
visitor_data: visitor_data.map(str::to_owned),
|
||||
..p
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -244,6 +248,7 @@ impl MapResponse<VideoDetails> for response::VideoDetails {
|
|||
_ => return Err(ExtractionError::InvalidData("invalid channel link".into())),
|
||||
};
|
||||
|
||||
let visitor_data = self.response_context.visitor_data;
|
||||
let recommended = contents
|
||||
.two_column_watch_next_results
|
||||
.secondary_results
|
||||
|
|
@ -252,7 +257,7 @@ impl MapResponse<VideoDetails> for response::VideoDetails {
|
|||
let mut res = map_recommendations(
|
||||
r,
|
||||
sr.secondary_results.continuations,
|
||||
self.response_context.visitor_data.clone(),
|
||||
visitor_data.clone(),
|
||||
lang,
|
||||
);
|
||||
warnings.append(&mut res.warnings);
|
||||
|
|
@ -333,17 +338,17 @@ impl MapResponse<VideoDetails> for response::VideoDetails {
|
|||
comment_count,
|
||||
Vec::new(),
|
||||
comment_ctoken,
|
||||
None,
|
||||
visitor_data.clone(),
|
||||
crate::param::ContinuationEndpoint::Next,
|
||||
),
|
||||
latest_comments: Paginator::new_ext(
|
||||
comment_count,
|
||||
Vec::new(),
|
||||
latest_comments_ctoken,
|
||||
None,
|
||||
visitor_data.clone(),
|
||||
crate::param::ContinuationEndpoint::Next,
|
||||
),
|
||||
visitor_data: self.response_context.visitor_data,
|
||||
visitor_data,
|
||||
},
|
||||
warnings,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -502,11 +502,13 @@ async fn get_video_details_music() {
|
|||
assert!(!details.recommended.items.is_empty());
|
||||
assert!(!details.recommended.is_exhausted());
|
||||
|
||||
// Comments are disabled for this video
|
||||
// Update(01.11.2022): comments are sometimes enabled
|
||||
/*
|
||||
assert_eq!(details.top_comments.count, Some(0));
|
||||
assert_eq!(details.latest_comments.count, Some(0));
|
||||
assert!(details.top_comments.is_empty());
|
||||
assert!(details.latest_comments.is_empty());
|
||||
*/
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
|
|
|||
Reference in a new issue