From c7ae2f85319c58f533a557421663d2fb6754a162 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 1 Nov 2022 00:27:06 +0100 Subject: [PATCH] fix: failing video_details_music comment test --- src/client/pagination.rs | 14 ++++++++------ ..._tests__map_video_details_20220924_newdesc.snap | 2 ++ ...ap_video_details_20221011_new_continuation.snap | 2 ++ ..._tests__map_video_details_20221011_rec_isr.snap | 2 ++ ..._details__tests__map_video_details_agegate.snap | 2 ++ ...details__tests__map_video_details_ccommons.snap | 2 ++ ...details__tests__map_video_details_chapters.snap | 2 ++ ...deo_details__tests__map_video_details_live.snap | 2 ++ ...eo_details__tests__map_video_details_music.snap | 2 ++ ...video_details__tests__map_video_details_mv.snap | 2 ++ src/client/video_details.rs | 13 +++++++++---- tests/youtube.rs | 4 +++- 12 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/client/pagination.rs b/src/client/pagination.rs index 4732079..b85df14 100644 --- a/src/client/pagination.rs +++ b/src/client/pagination.rs @@ -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( p: Paginator, + visitor_data: Option<&str>, endpoint: ContinuationEndpoint, ) -> Paginator { 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( p: Paginator, + visitor_data: Option<&str>, endpoint: ContinuationEndpoint, ) -> Paginator { 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> = items.map_response("", Language::En, None).unwrap(); let paginator: Paginator = - 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> = items.map_response("", Language::En, None).unwrap(); let paginator: Paginator = - map_ytm_paginator(map_res.c, ContinuationEndpoint::MusicBrowse); + map_ytm_paginator(map_res.c, None, ContinuationEndpoint::MusicBrowse); assert!( map_res.warnings.is_empty(), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20220924_newdesc.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20220924_newdesc.snap index cd5de92..5c7439a 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20220924_newdesc.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20220924_newdesc.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_new_continuation.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_new_continuation.snap index f7cc605..9ffafe0 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_new_continuation.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_new_continuation.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_rec_isr.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_rec_isr.snap index 64290ab..fb28d6a 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_rec_isr.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_20221011_rec_isr.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap index e347844..d02577c 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap index 4f09d28..f366df2 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap index cf0a7f7..8503def 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap index a13ff52..644b962 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap index 1063b37..5864af6 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap @@ -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"), diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap index 35853c7..dda3300 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap @@ -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"), diff --git a/src/client/video_details.rs b/src/client/video_details.rs index 9ed6249..2294bf2 100644 --- a/src/client/video_details.rs +++ b/src/client/video_details.rs @@ -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 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 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 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, }) diff --git a/tests/youtube.rs b/tests/youtube.rs index 33733ef..cd58b5e 100644 --- a/tests/youtube.rs +++ b/tests/youtube.rs @@ -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]