From a81c3e83366fdf72d01dd3ee00fb2e831f7aaa26 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Sun, 24 Mar 2024 02:31:17 +0100 Subject: [PATCH] fix: parsing music details with video description tab --- cliff.toml | 2 +- src/client/response/music_details.rs | 5 ++-- .../youtube__music_details_track_details.snap | 26 +++++++++++++++++++ tests/youtube.rs | 1 + 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 tests/snapshots/youtube__music_details_track_details.snap diff --git a/cliff.toml b/cliff.toml index 32b679a..6fa2cc5 100644 --- a/cliff.toml +++ b/cliff.toml @@ -73,7 +73,7 @@ commit_parsers = [ { message = "^refactor", group = "๐Ÿšœ Refactor" }, { message = "^style", group = "๐ŸŽจ Styling" }, { message = "^test", group = "๐Ÿงช Testing" }, - { message = "^chore\\(release\\): prepare for", skip = true }, + { message = "^chore\\(release\\): release", skip = true }, { message = "^chore\\(pr\\)", skip = true }, { message = "^chore\\(pull\\)", skip = true }, { message = "^chore", group = "โš™๏ธ Miscellaneous Tasks" }, diff --git a/src/client/response/music_details.rs b/src/client/response/music_details.rs index 0d7e6d2..387f041 100644 --- a/src/client/response/music_details.rs +++ b/src/client/response/music_details.rs @@ -1,6 +1,5 @@ use serde::Deserialize; -use serde_with::serde_as; -use serde_with::DefaultOnError; +use serde_with::{serde_as, DefaultOnError, VecSkipError}; use crate::serializer::text::Text; @@ -36,9 +35,11 @@ pub(crate) struct TabbedRenderer { pub watch_next_tabbed_results_renderer: TabbedRendererInner, } +#[serde_as] #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct TabbedRendererInner { + #[serde_as(as = "VecSkipError<_>")] pub tabs: Vec, } diff --git a/tests/snapshots/youtube__music_details_track_details.snap b/tests/snapshots/youtube__music_details_track_details.snap new file mode 100644 index 0000000..f3c8f30 --- /dev/null +++ b/tests/snapshots/youtube__music_details_track_details.snap @@ -0,0 +1,26 @@ +--- +source: tests/youtube.rs +expression: track +--- +TrackDetails( + track: TrackItem( + id: "1eekOcpx_iQ", + name: "NCT 127 \'Highway to Heaven\' NEO CITY Tour Film ver.", + duration: Some(202), + cover: "[cover]", + artists: [ + ArtistId( + id: Some("UCk2E0dbAyEJWnrN2bbQOcbg"), + name: "NCT 127", + ), + ], + artist_id: Some("UCk2E0dbAyEJWnrN2bbQOcbg"), + album: None, + view_count: "[view_count]", + is_video: true, + track_nr: None, + by_va: false, + ), + lyrics_id: None, + related_id: None, +) diff --git a/tests/youtube.rs b/tests/youtube.rs index a7a4391..84c6b08 100644 --- a/tests/youtube.rs +++ b/tests/youtube.rs @@ -2218,6 +2218,7 @@ async fn music_search_suggestion( #[rstest] #[case::mv("mv", "ZeerrnuLi5E")] #[case::track("track", "qIZ-vvg-wiU")] +#[case::track_details("track_details", "1eekOcpx_iQ")] #[tokio::test] async fn music_details(#[case] name: &str, #[case] id: &str, rp: RustyPipe) { let track = rp.query().music_details(id).await.unwrap();