From 9707a6eb0b782ae10a2e43ca2da8f6d41185cfd3 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Mon, 31 Oct 2022 23:48:41 +0100 Subject: [PATCH 1/2] feat: add album track numbers fix: small fix for music item parser --- README.md | 4 +- src/client/response/music_item.rs | 38 +++---- ...st__tests__map_music_album_one_artist.snap | 18 ++++ ...aylist__tests__map_music_album_single.snap | 1 + ...ests__map_music_album_various_artists.snap | 6 ++ ...ylist__tests__map_music_playlist_long.snap | 100 ++++++++++++++++++ ...st__tests__map_music_playlist_nomusic.snap | 66 ++++++++++++ ...list__tests__map_music_playlist_short.snap | 87 +++++++++++++++ ...arch__tests__map_music_search_default.snap | 7 ++ ...ests__map_music_search_tracks_default.snap | 20 ++++ ...__tests__map_music_search_tracks_typo.snap | 20 ++++ ...tests__map_music_search_tracks_videos.snap | 20 ++++ ..._search__tests__map_music_search_typo.snap | 6 ++ ...agination__tests__map_playlist_tracks.snap | 100 ++++++++++++++++++ src/model/mod.rs | 4 + src/serializer/text.rs | 11 ++ 16 files changed, 487 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index d0b5eca..d1e2eee 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ inspired by [NewPipe](https://github.com/TeamNewPipe/NewPipeExtractor). ### YouTube Music - [X] **Playlist** -- [ ] **Album** +- [X] **Album** - [ ] **Artist** -- [ ] **Search** +- [X] **Search** - [ ] **Search suggestions** - [ ] **Moods** - [ ] **Charts** diff --git a/src/client/response/music_item.rs b/src/client/response/music_item.rs index a63d929..4561ce9 100644 --- a/src/client/response/music_item.rs +++ b/src/client/response/music_item.rs @@ -83,6 +83,8 @@ pub(crate) struct ListMusicItem { pub navigation_endpoint: Option, #[serde(default)] pub flex_column_display_style: FlexColumnDisplayStyle, + #[serde_as(as = "Option")] + pub index: Option, } #[derive(Default, Debug, Deserialize)] @@ -262,7 +264,7 @@ impl MusicListMapper { match page_type { PageType::Artist => { let subscriber_count = subtitle_p2.and_then(|p| { - util::parse_large_numstr(&p.to_string(), self.lang) + util::parse_large_numstr(p.first_str(), self.lang) }); self.items.push(MusicItem::Artist(ArtistItem { @@ -275,13 +277,13 @@ impl MusicListMapper { } PageType::Album => { let album_type = subtitle_p1 - .map(|st| map_album_type(&st.to_string())) + .map(|st| map_album_type(st.first_str())) .unwrap_or_default(); let (artists, artists_txt) = map_artists(subtitle_p2); let year = subtitle_p3 - .and_then(|st| util::parse_numeric(&st.to_string()).ok()); + .and_then(|st| util::parse_numeric(st.first_str()).ok()); self.items.push(MusicItem::Album(AlbumItem { id, @@ -303,15 +305,13 @@ impl MusicListMapper { let from_ytm = channel_p .as_ref() - .and_then(|p| { - p.0.first().map(|txt| txt.as_str() == util::YT_MUSIC_NAME) - }) + .map(|p| p.first_str() == util::YT_MUSIC_NAME) .unwrap_or_default(); let channel = channel_p.and_then(|p| { p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) }); let track_count = - tcount_p.and_then(|p| util::parse_numeric(&p.to_string()).ok()); + tcount_p.and_then(|p| util::parse_numeric(p.first_str()).ok()); self.items.push(MusicItem::Playlist(MusicPlaylistItem { id, @@ -381,7 +381,7 @@ impl MusicListMapper { }; let duration = duration_p - .and_then(|p| util::parse_video_length(&p.to_string())) + .and_then(|p| util::parse_video_length(p.first_str())) .ok_or_else(|| format!("track {}: could not parse duration", id))?; // The album field contains the track count for search videos @@ -389,7 +389,7 @@ impl MusicListMapper { (FlexColumnDisplayStyle::TwoLines, true) => ( None, album_p.and_then(|p| { - util::parse_large_numstr(&p.to_string(), self.lang) + util::parse_large_numstr(p.first_str(), self.lang) }), ), (_, false) => ( @@ -419,6 +419,8 @@ impl MusicListMapper { } } + let track_nr = item.index.and_then(|txt| util::parse_numeric(&txt).ok()); + self.items.push(MusicItem::Track(TrackItem { id, title, @@ -429,6 +431,7 @@ impl MusicListMapper { album, view_count, is_video, + track_nr, })); Ok(MusicEntityType::Track) } @@ -454,7 +457,7 @@ impl MusicListMapper { match (subtitle_p1, subtitle_p2, &self.o_artists, self.artist_page) { // "2022" (Artist singles) (Some(year_txt), None, Some((artists, artists_txt)), true) => { - year = util::parse_numeric(&year_txt.to_string()).ok(); + year = util::parse_numeric(year_txt.first_str()).ok(); (artists.clone(), artists_txt.clone()) } // "Album", "2022" (Artist albums) @@ -464,13 +467,13 @@ impl MusicListMapper { Some((artists, artists_txt)), true, ) => { - year = util::parse_numeric(&year_txt.to_string()).ok(); - album_type = map_album_type(&atype_txt.to_string()); + year = util::parse_numeric(year_txt.first_str()).ok(); + album_type = map_album_type(atype_txt.first_str()); (artists.clone(), artists_txt.clone()) } // "Album", <"Oonagh"> (Album variants, new releases) (Some(atype_txt), Some(p2), _, false) => { - album_type = map_album_type(&atype_txt.to_string()); + album_type = map_album_type(atype_txt.first_str()); map_artists(Some(p2)) } _ => { @@ -493,18 +496,15 @@ impl MusicListMapper { Ok(MusicEntityType::Album) } PageType::Playlist => { - // TODO: make component to string zero-copy if len=1 let from_ytm = subtitle_p2 .as_ref() - .and_then(|p| { - p.0.first().map(|txt| txt.as_str() == util::YT_MUSIC_NAME) - }) + .map(|p| p.first_str() == util::YT_MUSIC_NAME) .unwrap_or_default(); let channel = subtitle_p2.and_then(|p| { p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) }); let track_count = - subtitle_p3.and_then(|p| util::parse_numeric(&p.to_string()).ok()); + subtitle_p3.and_then(|p| util::parse_numeric(p.first_str()).ok()); self.items.push(MusicItem::Playlist(MusicPlaylistItem { id, @@ -518,7 +518,7 @@ impl MusicListMapper { } PageType::Artist => { let subscriber_count = subtitle_p1 - .and_then(|p| util::parse_large_numstr(&p.to_string(), self.lang)); + .and_then(|p| util::parse_large_numstr(p.first_str(), self.lang)); self.items.push(MusicItem::Artist(ArtistItem { id, diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_one_artist.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_one_artist.snap index 1266f51..a886186 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_one_artist.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_one_artist.snap @@ -54,6 +54,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(1), ), TrackItem( id: "rREEBXp0y9s", @@ -70,6 +71,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(2), ), TrackItem( id: "zvU5Y8Q19hU", @@ -86,6 +88,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(3), ), TrackItem( id: "ARKLrzzTQA0", @@ -102,6 +105,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(4), ), TrackItem( id: "tstLgN8A_Ng", @@ -118,6 +122,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(5), ), TrackItem( id: "k2DjgQOY3Ts", @@ -134,6 +139,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(6), ), TrackItem( id: "azHwhecxEsI", @@ -150,6 +156,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(7), ), TrackItem( id: "_FcsdYIQ2co", @@ -166,6 +173,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(8), ), TrackItem( id: "27bOWEbshyE", @@ -182,6 +190,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(9), ), TrackItem( id: "riD_3oZwt8w", @@ -198,6 +207,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(10), ), TrackItem( id: "8GNvjF3no9s", @@ -214,6 +224,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(11), ), TrackItem( id: "YHMFzf1uN2U", @@ -230,6 +241,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(12), ), TrackItem( id: "jvV-z5F3oAo", @@ -246,6 +258,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(13), ), TrackItem( id: "u8_9cxlrh8k", @@ -262,6 +275,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(14), ), TrackItem( id: "gSvKcvM1Wk0", @@ -278,6 +292,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(15), ), TrackItem( id: "wQHgKRJ0pDQ", @@ -294,6 +309,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(16), ), TrackItem( id: "Ckz5i6-hzf0", @@ -310,6 +326,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(17), ), TrackItem( id: "y5zuUgyFqrc", @@ -326,6 +343,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(18), ), ], variants: [ diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_single.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_single.snap index b79b023..3d21a91 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_single.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_single.snap @@ -62,6 +62,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(1), ), ], variants: [], diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_various_artists.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_various_artists.snap index 4e94524..19db543 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_various_artists.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_album_various_artists.snap @@ -44,6 +44,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(1), ), TrackItem( id: "9WYpLYAEub0", @@ -55,6 +56,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(2), ), TrackItem( id: "R48tE237bW4", @@ -71,6 +73,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(3), ), TrackItem( id: "-UzsoR6z-vg", @@ -82,6 +85,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(4), ), TrackItem( id: "kbNVyn8Ex28", @@ -93,6 +97,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(5), ), TrackItem( id: "NJrQZUzWP5Y", @@ -104,6 +109,7 @@ MusicAlbum( album: None, view_count: None, is_video: true, + track_nr: Some(6), ), ], variants: [], diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_long.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_long.snap index c98a052..c9597e6 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_long.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_long.snap @@ -57,6 +57,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "8rRj5ZXRNko", @@ -79,6 +80,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "lHZtcC67yrY", @@ -101,6 +103,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "TSkVVVBS9k8", @@ -123,6 +126,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "lc-cnCRhE7c", @@ -145,6 +149,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "3ryohiCVq3M", @@ -167,6 +172,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BNHamTwxJ6Q", @@ -193,6 +199,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5mqelmYUcI0", @@ -215,6 +222,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "k9EYjn5f_nE", @@ -237,6 +245,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "fkMg_X9lHMc", @@ -259,6 +268,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "4wOoLLDXbDY", @@ -281,6 +291,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Z_mf9aCHag8", @@ -303,6 +314,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cZ58odQo87A", @@ -325,6 +337,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1il3RFk5Okw", @@ -347,6 +360,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "8WQMBv2deYQ", @@ -369,6 +383,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "vGrfFzagzHs", @@ -391,6 +406,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1gDbpWC_9pE", @@ -413,6 +429,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "p-AWcCCbBHw", @@ -435,6 +452,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RPN88D_HjMU", @@ -461,6 +479,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5PST7Ld4wWU", @@ -483,6 +502,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "opoDBF_b-fg", @@ -505,6 +525,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "AMT9IOyXmBM", @@ -527,6 +548,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "VP5B1UmgHfc", @@ -549,6 +571,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "vcuQpbs0yT0", @@ -571,6 +594,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "LeMLVEJLruQ", @@ -593,6 +617,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "MtDPKJSsBgc", @@ -615,6 +640,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "4tDpYxNYqPg", @@ -637,6 +663,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "EkWjaoH7k6w", @@ -659,6 +686,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "tERRFWuYG48", @@ -681,6 +709,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "wCcJuN47UcY", @@ -703,6 +732,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qdtLCfEcPL4", @@ -725,6 +755,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "wjXUBG15eZ8", @@ -747,6 +778,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "HBjDZMJUduo", @@ -769,6 +801,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "xkXQQ0IAbk0", @@ -791,6 +824,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "DraA3PUuoQc", @@ -813,6 +847,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "wMIGQp4YhuU", @@ -835,6 +870,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "38lrK74voaI", @@ -857,6 +893,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2qW9rOSFF1M", @@ -883,6 +920,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "tMILH6UEfPA", @@ -905,6 +943,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "izHB2EdMngg", @@ -927,6 +966,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "haECT-SerHk", @@ -949,6 +989,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cVikZ8Oe_XA", @@ -971,6 +1012,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "drFsXLChrWc", @@ -993,6 +1035,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1EMFt7m_8yE", @@ -1015,6 +1058,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_yWU0lFghxU", @@ -1037,6 +1081,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XlD-LO3ogFM", @@ -1059,6 +1104,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "nAzjWqNfgvc", @@ -1085,6 +1131,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "PySC3RGhZJU", @@ -1107,6 +1154,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "G-iwLoyH6ZE", @@ -1129,6 +1177,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "fgCOUO-s8nY", @@ -1151,6 +1200,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "m-Ik3yy728Y", @@ -1173,6 +1223,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "U0_UYW5Y4cM", @@ -1195,6 +1246,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "rsrDYTEicq8", @@ -1217,6 +1269,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2aU4wRgl_0E", @@ -1239,6 +1292,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "FzcJxJAxFtw", @@ -1265,6 +1319,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2hyibXdOp5w", @@ -1287,6 +1342,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "YaKG5cUVB30", @@ -1309,6 +1365,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Ahwc-ouFeTQ", @@ -1331,6 +1388,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "SoImFhORKpg", @@ -1353,6 +1411,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "jP4-XrbGt3M", @@ -1375,6 +1434,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Yy2RsG4lnm4", @@ -1397,6 +1457,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "388e_8mu1t4", @@ -1419,6 +1480,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "dHHtPi-j7dQ", @@ -1441,6 +1503,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "d8ERTCVXIUE", @@ -1463,6 +1526,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "vQXn3EzzYY4", @@ -1485,6 +1549,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "zA-BTpC-yvI", @@ -1507,6 +1572,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "rnzIN9H_G10", @@ -1529,6 +1595,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "fcBbT1GTxqM", @@ -1551,6 +1618,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "wCDsm_dt1cI", @@ -1573,6 +1641,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "4j3AOJV1J8I", @@ -1595,6 +1664,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RtuW08ZIgvg", @@ -1617,6 +1687,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cbTXqKBIQ40", @@ -1639,6 +1710,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "oSd0Lph4luY", @@ -1661,6 +1733,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "oq0rrYrufYU", @@ -1683,6 +1756,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "0-P_YkS0z8s", @@ -1705,6 +1779,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "4BAKb2p450Q", @@ -1727,6 +1802,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "yqObMM_QzVQ", @@ -1749,6 +1825,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "dlvStoOyEzE", @@ -1771,6 +1848,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "VNttGAaek2U", @@ -1793,6 +1871,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "TxZMfufRJfo", @@ -1815,6 +1894,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "6agT2asF4as", @@ -1837,6 +1917,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "EcW0n83La5A", @@ -1859,6 +1940,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_b61hg8UlZM", @@ -1881,6 +1963,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "kDMFranvFuQ", @@ -1903,6 +1986,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1apku0pVDeE", @@ -1925,6 +2009,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "g6JYzOjglBs", @@ -1947,6 +2032,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "GYK-NfOo7b4", @@ -1969,6 +2055,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "omUuR45iU0g", @@ -1991,6 +2078,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "w7BE3inS-NM", @@ -2013,6 +2101,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "FM-5BPMnhm0", @@ -2035,6 +2124,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "MnNZNfixTOw", @@ -2057,6 +2147,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qe80EeU8cT8", @@ -2079,6 +2170,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-s2-6KYgqpQ", @@ -2101,6 +2193,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RSlp874hESE", @@ -2127,6 +2220,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "oTI3tRQ_-3k", @@ -2149,6 +2243,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_okA84gaEJw", @@ -2171,6 +2266,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "pLHnnJRaP7Q", @@ -2193,6 +2289,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "H2hGrsExuyc", @@ -2215,6 +2312,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RsZvjqG2lec", @@ -2237,6 +2335,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qYRCiQ6d35w", @@ -2263,6 +2362,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), ], ctoken: Some("4qmFsgI-EiRWTFBMNWREeDY4MVQ0YlI3WkYxSXVXek92MW9tbFJiRTdQaUoaFmVnWlFWRHBEUjFtU0FRTUl1Z1ElM0Q%3D"), diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_nomusic.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_nomusic.snap index 4001cf8..c786be2 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_nomusic.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_nomusic.snap @@ -48,6 +48,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RPGLMuxkLCs", @@ -65,6 +66,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "z-ALpnnQLrk", @@ -82,6 +84,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_rrbTTv8zcQ", @@ -99,6 +102,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "JE16OKTawLw", @@ -116,6 +120,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RQNY0Wzm7DQ", @@ -133,6 +138,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "uhy24PKBkd0", @@ -150,6 +156,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "OL1hQadBHfs", @@ -167,6 +174,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Zge_SUfk0r8", @@ -184,6 +192,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "yFGIeU_IDE4", @@ -201,6 +210,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "P6MVqfQzPIg", @@ -218,6 +228,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "9n0pLDn8Z_I", @@ -235,6 +246,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "oXbx2YtIkeQ", @@ -252,6 +264,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "pfBBTTwxo8Q", @@ -269,6 +282,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "WxtRqzxSAh0", @@ -286,6 +300,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ianUckvxtLw", @@ -303,6 +318,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "eb2Ghj1g1ic", @@ -320,6 +336,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "8TpEsyVtCog", @@ -337,6 +354,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "KD_WAei4LMg", @@ -354,6 +372,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qfpOCrtweKk", @@ -371,6 +390,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "6gv3nrOA_bQ", @@ -388,6 +408,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "waaic6UnkU8", @@ -405,6 +426,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "lSy4MLC_uV4", @@ -422,6 +444,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BuN8-U_quok", @@ -439,6 +462,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "g_UTG10nzaQ", @@ -456,6 +480,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "kNykFWaDbGw", @@ -473,6 +498,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "gJF7vxCYTgY", @@ -490,6 +516,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "CodZMQ_Anc0", @@ -507,6 +534,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "oKHMTKJdZ_M", @@ -524,6 +552,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "--O_Eyok_eE", @@ -541,6 +570,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2bT3ljKMSo8", @@ -558,6 +588,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "YRAX_slrbsI", @@ -575,6 +606,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "aRRbCEwUSuw", @@ -592,6 +624,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5sV8SzTbJS8", @@ -609,6 +642,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ZxxZlU2o1TE", @@ -626,6 +660,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "gIjo5at4AxE", @@ -643,6 +678,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "NSGk7-kyeEU", @@ -660,6 +696,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cgJtZ7Otc4Y", @@ -677,6 +714,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "l5LQu3Q0nWY", @@ -694,6 +732,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "YX4Z3ZlWUFc", @@ -711,6 +750,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "LoyvqR41lKw", @@ -728,6 +768,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "HbQtMZbtx_Q", @@ -745,6 +786,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "0DHRbP9ecgw", @@ -762,6 +804,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "rFOFkvk-xus", @@ -779,6 +822,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "P8zxnSihJ_8", @@ -796,6 +840,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RWgeHl9XkCY", @@ -813,6 +858,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "I1n539enNNY", @@ -830,6 +876,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "70VKekyZz5g", @@ -847,6 +894,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2OWJ1bwFu6Y", @@ -864,6 +912,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "zLiSA2i-niw", @@ -881,6 +930,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "wyXlw7nMpko", @@ -898,6 +948,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "NrU4fhzvFpA", @@ -915,6 +966,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1xhKegaA1hQ", @@ -932,6 +984,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "9F4lZ8psBtg", @@ -949,6 +1002,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "G3uUtejX9to", @@ -966,6 +1020,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-0Xn5pViCss", @@ -983,6 +1038,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "a7u71Fco99I", @@ -1000,6 +1056,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "H6uUbvcgKdk", @@ -1017,6 +1074,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "tPRTCauHtkw", @@ -1034,6 +1092,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "pMKAQExcarM", @@ -1051,6 +1110,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7E-z-7KCdBI", @@ -1068,6 +1128,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "EPtbC0ZVddo", @@ -1085,6 +1146,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "TpPHng0eGJs", @@ -1102,6 +1164,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "rt2QFQwJYcs", @@ -1119,6 +1182,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "WPyfaztFDQ4", @@ -1136,6 +1200,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5lmumP0DaUw", @@ -1153,6 +1218,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), ], ctoken: None, diff --git a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_short.snap b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_short.snap index 0ae3e85..25100f3 100644 --- a/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_short.snap +++ b/src/client/snapshots/rustypipe__client__music_playlist__tests__map_music_playlist_short.snap @@ -55,6 +55,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "nBZlrbrBO1I", @@ -77,6 +78,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "AcTDlsUej2w", @@ -99,6 +101,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "k6ZoE4RrcDs", @@ -121,6 +124,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2n5GKLdrTfk", @@ -143,6 +147,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "psuRGfAaju4", @@ -165,6 +170,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_JGGLJMpVks", @@ -187,6 +193,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1YUBbF24H44", @@ -209,6 +216,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "E0WRQpjckYg", @@ -231,6 +239,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "mqiH0ZSkM9I", @@ -253,6 +262,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "UAWcs5H-qgQ", @@ -275,6 +285,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "bqO3Y5e4Dow", @@ -297,6 +308,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ouEezpuPc3A", @@ -319,6 +331,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "i-qT5n_5Mys", @@ -341,6 +354,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "PMGY8fLwess", @@ -363,6 +377,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2ebfSItB0oM", @@ -385,6 +400,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "c4BLVznuWnU", @@ -407,6 +423,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "c0wUKCekI34", @@ -429,6 +446,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "vNfgVjZF8_4", @@ -451,6 +469,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XPpTgCho5ZA", @@ -473,6 +492,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-oqAU5VxFWs", @@ -495,6 +515,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "CA1VHbdq5hY", @@ -517,6 +538,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "aNzCDt2eidg", @@ -539,6 +561,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "A48hOToMuRE", @@ -561,6 +584,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qHm9MG9xw1o", @@ -583,6 +607,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "74NhLkjIeMs", @@ -605,6 +630,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "EptPhiK_q0E", @@ -627,6 +653,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "44u7_wQ1s0g", @@ -649,6 +676,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "toOyxylnNkI", @@ -671,6 +699,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ljXSjIph5ZM", @@ -693,6 +722,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "DJFMRLIe-0o", @@ -719,6 +749,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "goqqohUitmw", @@ -741,6 +772,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "_LwX7GCE5rI", @@ -763,6 +795,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7KHPC-kEQOA", @@ -789,6 +822,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "26PAgklYYvo", @@ -811,6 +845,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "bO3S8CKafbE", @@ -833,6 +868,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "tMsbeyeTtpk", @@ -855,6 +891,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "fvXn3rmhdc4", @@ -877,6 +914,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2p4n7JgdCsc", @@ -899,6 +937,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "HtNS1afUOnE", @@ -921,6 +960,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ufbDvPaVrzs", @@ -943,6 +983,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "H1_icnjg6MY", @@ -965,6 +1006,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7Lna4Hu4-AQ", @@ -991,6 +1033,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "K9qu2QMBguw", @@ -1021,6 +1064,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "uWeqeQkjLto", @@ -1043,6 +1087,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "X_ZOGHUWwqE", @@ -1065,6 +1110,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "mHeK0Cwr9sg", @@ -1087,6 +1133,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "0Bf3CJZ4hvg", @@ -1109,6 +1156,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7TCncxWNcPU", @@ -1131,6 +1179,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "PxNYvk_0Onw", @@ -1153,6 +1202,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "WLoWBe9BRP4", @@ -1175,6 +1225,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1XYLKoEETVA", @@ -1197,6 +1248,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Ghl_vkEV3tc", @@ -1219,6 +1271,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5qHRMFQ0pLg", @@ -1241,6 +1294,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "X-vispdELDo", @@ -1263,6 +1317,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "il_L6c_fOvs", @@ -1285,6 +1340,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "hCjcgoubkPM", @@ -1307,6 +1363,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "nwXlRq_QyTI", @@ -1329,6 +1386,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ZdsER1S3t8k", @@ -1355,6 +1413,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "fyrsExw_LUg", @@ -1377,6 +1436,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BS4t017LSoA", @@ -1407,6 +1467,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "0AYzzzBaPBI", @@ -1429,6 +1490,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "zM0K3LC7Aak", @@ -1451,6 +1513,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1le0xDbrVj8", @@ -1473,6 +1536,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "RdFaKz71-5M", @@ -1495,6 +1559,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "d6hUByfuhM4", @@ -1517,6 +1582,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-uxeu0MbNR0", @@ -1539,6 +1605,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "35VK8yonvsc", @@ -1561,6 +1628,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ELD3aRzbVQg", @@ -1583,6 +1651,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BD7HwXv18aU", @@ -1605,6 +1674,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "WJJLfUwIVR4", @@ -1627,6 +1697,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "NjW1S0WIiJw", @@ -1649,6 +1720,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-4szr0EMrgk", @@ -1671,6 +1743,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "88NWeOGrxys", @@ -1701,6 +1774,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "BxqtS-7GxFM", @@ -1723,6 +1797,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "KUKt_LbaBnM", @@ -1745,6 +1820,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "bhL7A8k6kU8", @@ -1767,6 +1843,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "mUN36hFtazE", @@ -1789,6 +1866,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "dcBZP_pt0uY", @@ -1811,6 +1889,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "m342B1Vv3tM", @@ -1833,6 +1912,7 @@ MusicPlaylist( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "N_5RiRBvPSk", @@ -1863,6 +1943,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "Q5kH0wg_sKo", @@ -1893,6 +1974,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "j9zlc5zufl8", @@ -1923,6 +2005,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "ufxjiU7BgR4", @@ -1953,6 +2036,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "7OfB_8rrtug", @@ -1983,6 +2067,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "UqmvAc81XuM", @@ -2013,6 +2098,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "QDULTFB8gSY", @@ -2043,6 +2129,7 @@ MusicPlaylist( )), view_count: None, is_video: false, + track_nr: None, ), ], ctoken: None, diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap index 6c3424c..7051978 100644 --- a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap @@ -25,6 +25,7 @@ MusicSearchResult( album: None, view_count: Some(235000000), is_video: true, + track_nr: None, ), TrackItem( id: "BL-aIpCLWnU", @@ -55,6 +56,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "cATe8Toht70", @@ -89,6 +91,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "WwNKyoizf8k", @@ -119,6 +122,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "yQUU29NwNF4", @@ -141,6 +145,7 @@ MusicSearchResult( album: None, view_count: Some(10000000), is_video: true, + track_nr: None, ), TrackItem( id: "Ky5RT5oGg0w", @@ -163,6 +168,7 @@ MusicSearchResult( album: None, view_count: Some(18000000), is_video: true, + track_nr: None, ), TrackItem( id: "dz9bieeSVRw", @@ -185,6 +191,7 @@ MusicSearchResult( album: None, view_count: Some(3200000), is_video: true, + track_nr: None, ), ], albums: [ diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_default.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_default.snap index b28be02..c9454f0 100644 --- a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_default.snap +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_default.snap @@ -35,6 +35,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "cATe8Toht70", @@ -69,6 +70,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "0I1UpXSYdOQ", @@ -99,6 +101,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "9G2tG8V5_PY", @@ -129,6 +132,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "WwNKyoizf8k", @@ -159,6 +163,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "kS1o36LXQkc", @@ -189,6 +194,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "UQQ6L1j6mXE", @@ -219,6 +225,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "9l9dCro-7l8", @@ -249,6 +256,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "S_PRpDtgUfI", @@ -279,6 +287,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "Xt_ReZc0gnw", @@ -309,6 +318,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "diN3WCxpqis", @@ -339,6 +349,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "9q3FfH_57Rc", @@ -364,6 +375,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "U29V08A9yBs", @@ -398,6 +410,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "HHEKbGlLoEM", @@ -428,6 +441,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "qE_dGvQG1rU", @@ -458,6 +472,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "1tyPs3ccT7E", @@ -492,6 +507,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "6pSmQ-MHKbg", @@ -522,6 +538,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "rNsISA-kWzM", @@ -552,6 +569,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "AdvPpJVvyEg", @@ -582,6 +600,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "7q7o-kjIKpo", @@ -612,6 +631,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), ], ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlJQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVF0Q1RDMWhTWEJEVEZkdVZZSUJDMk5CVkdVNFZHOW9kRGN3Z2dFTE1Fa3hWWEJZVTFsa1QxR0NBUXM1UnpKMFJ6aFdOVjlRV1lJQkMxZDNUa3Q1YjJsNlpqaHJnZ0VMYTFNeGJ6TTJURmhSYTJPQ0FRdFZVVkUyVERGcU5tMVlSWUlCQ3psc09XUkRjbTh0TjJ3NGdnRUxVMTlRVW5CRWRHZFZaa21DQVF0WWRGOVNaVnBqTUdkdWQ0SUJDMlJwVGpOWFEzaHdjV2x6Z2dFTE9YRXpSbVpJWHpVM1VtT0NBUXRWTWpsV01EaEJPWGxDYzRJQkMwaElSVXRpUjJ4TWIwVk5nZ0VMY1VWZlpFZDJVVWN4Y2xXQ0FRdEVXak14Y0hoNVdXaFNhNElCQ3pad1UyMVJMVTFJUzJKbmdnRUxjazV6U1ZOQkxXdFhlazJDQVF0QlpIWlFjRXBXZG5sRlo0SUJDemR4TjI4dGEycEpTM0J2GPHq0C4%3D"), diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_typo.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_typo.snap index 1bc7b4d..ff666e6 100644 --- a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_typo.snap +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_typo.snap @@ -35,6 +35,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "pt0YvfnhGgI", @@ -65,6 +66,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "VinJmH-uidY", @@ -95,6 +97,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "YmSmymHRnEE", @@ -125,6 +128,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "TgfIbiHCOLo", @@ -155,6 +159,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "lCi6N_uq3vE", @@ -185,6 +190,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "QIjqe2B3RdQ", @@ -215,6 +221,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "q2pUotlXPeM", @@ -245,6 +252,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "0yPnvetCm-U", @@ -275,6 +283,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "EU5Vly60VGU", @@ -305,6 +314,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "UnxQ0TI4IMs", @@ -335,6 +345,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "ufpny1KxwcU", @@ -365,6 +376,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "duzWgZFJNwA", @@ -395,6 +407,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "rnXq-1n0lt0", @@ -425,6 +438,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "vHkqdC6-rOI", @@ -455,6 +469,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "nTlceSET_b8", @@ -480,6 +495,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "D8GhmRiIfxI", @@ -510,6 +526,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "01CS-jTaY1U", @@ -540,6 +557,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "2sKkKKKXO28", @@ -565,6 +583,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "czlgl6n9voM", @@ -595,6 +614,7 @@ MusicSearchFiltered( )), view_count: None, is_video: false, + track_nr: None, ), ], ctoken: Some("EqcDEg5saWJsaW5nc21lbnNjaBqUA0VnV0tBUUlJQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVFzMk5EZzFVR2hQZEVoNldZSUJDM0IwTUZsMlptNW9SMmRKZ2dFTFZtbHVTbTFJTFhWcFpGbUNBUXRaYlZOdGVXMUlVbTVGUllJQkMxUm5aa2xpYVVoRFQweHZnZ0VMYkVOcE5rNWZkWEV6ZGtXQ0FRdFJTV3B4WlRKQ00xSmtVWUlCQzNFeWNGVnZkR3hZVUdWTmdnRUxNSGxRYm5abGRFTnRMVldDQVF0RlZUVldiSGsyTUZaSFZZSUJDMVZ1ZUZFd1ZFazBTVTF6Z2dFTGRXWndibmt4UzNoM1kxV0NBUXRrZFhwWFoxcEdTazUzUVlJQkMzSnVXSEV0TVc0d2JIUXdnZ0VMZGtocmNXUkROaTF5VDBtQ0FRdHVWR3hqWlZORlZGOWlPSUlCQzBRNFIyaHRVbWxKWm5oSmdnRUxNREZEVXkxcVZHRlpNVldDQVFzeWMwdHJTMHRMV0U4eU9JSUJDMk42Ykdkc05tNDVkbTlOGPHq0C4%3D"), diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_videos.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_videos.snap index c23bd59..e42c429 100644 --- a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_videos.snap +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_tracks_videos.snap @@ -27,6 +27,7 @@ MusicSearchFiltered( album: None, view_count: Some(235000000), is_video: true, + track_nr: None, ), TrackItem( id: "vbl9KrZxOF8", @@ -49,6 +50,7 @@ MusicSearchFiltered( album: None, view_count: Some(6400), is_video: true, + track_nr: None, ), TrackItem( id: "eMfROJt0a7Q", @@ -71,6 +73,7 @@ MusicSearchFiltered( album: None, view_count: Some(701), is_video: true, + track_nr: None, ), TrackItem( id: "1ktLEhfkBCI", @@ -93,6 +96,7 @@ MusicSearchFiltered( album: None, view_count: Some(80000), is_video: true, + track_nr: None, ), TrackItem( id: "2hAlp3Khsnk", @@ -115,6 +119,7 @@ MusicSearchFiltered( album: None, view_count: Some(1100000), is_video: true, + track_nr: None, ), TrackItem( id: "CHixjhwY0ek", @@ -137,6 +142,7 @@ MusicSearchFiltered( album: None, view_count: Some(269000), is_video: true, + track_nr: None, ), TrackItem( id: "8YXKgZ393Ec", @@ -159,6 +165,7 @@ MusicSearchFiltered( album: None, view_count: Some(32000), is_video: true, + track_nr: None, ), TrackItem( id: "KFNznAXnjXc", @@ -181,6 +188,7 @@ MusicSearchFiltered( album: None, view_count: Some(179000), is_video: true, + track_nr: None, ), TrackItem( id: "hDhJeJZmTDA", @@ -203,6 +211,7 @@ MusicSearchFiltered( album: None, view_count: Some(69000), is_video: true, + track_nr: None, ), TrackItem( id: "6kKSDXiip_8", @@ -225,6 +234,7 @@ MusicSearchFiltered( album: None, view_count: Some(28000), is_video: true, + track_nr: None, ), TrackItem( id: "vfzlr70ogaI", @@ -247,6 +257,7 @@ MusicSearchFiltered( album: None, view_count: Some(1300000), is_video: true, + track_nr: None, ), TrackItem( id: "Fjth6cKGI88", @@ -269,6 +280,7 @@ MusicSearchFiltered( album: None, view_count: Some(3000000), is_video: true, + track_nr: None, ), TrackItem( id: "fznwvW9Kn4s", @@ -291,6 +303,7 @@ MusicSearchFiltered( album: None, view_count: Some(49000), is_video: true, + track_nr: None, ), TrackItem( id: "Jore0zZW-_M", @@ -313,6 +326,7 @@ MusicSearchFiltered( album: None, view_count: Some(29000), is_video: true, + track_nr: None, ), TrackItem( id: "_THM-2Ph-6I", @@ -335,6 +349,7 @@ MusicSearchFiltered( album: None, view_count: Some(823), is_video: true, + track_nr: None, ), TrackItem( id: "koJAGIUlnD0", @@ -357,6 +372,7 @@ MusicSearchFiltered( album: None, view_count: Some(1800000), is_video: true, + track_nr: None, ), TrackItem( id: "4tvQPrHcR4w", @@ -379,6 +395,7 @@ MusicSearchFiltered( album: None, view_count: Some(4400000), is_video: true, + track_nr: None, ), TrackItem( id: "CUh6MTvB_4E", @@ -401,6 +418,7 @@ MusicSearchFiltered( album: None, view_count: Some(1300), is_video: true, + track_nr: None, ), TrackItem( id: "4TWR90KJl84", @@ -423,6 +441,7 @@ MusicSearchFiltered( album: None, view_count: Some(249000000), is_video: true, + track_nr: None, ), TrackItem( id: "Cw7eMibV-Xk", @@ -445,6 +464,7 @@ MusicSearchFiltered( album: None, view_count: Some(15000), is_video: true, + track_nr: None, ), ], ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlRQVVnVWFnd1FBeEFFRUFrUURoQUtFQVdDQVF0YVpXVnljbTUxVEdrMVJZSUJDM1ppYkRsTGNscDRUMFk0Z2dFTFpVMW1VazlLZERCaE4xR0NBUXN4YTNSTVJXaG1hMEpEU1lJQkN6Sm9RV3h3TTB0b2MyNXJnZ0VMUTBocGVHcG9kMWt3Wld1Q0FRczRXVmhMWjFvek9UTkZZNElCQzB0R1RucHVRVmh1YWxoamdnRUxhRVJvU21WS1dtMVVSRUdDQVFzMmEwdFRSRmhwYVhCZk9JSUJDM1ptZW14eU56QnZaMkZKZ2dFTFJtcDBhRFpqUzBkSk9EaUNBUXRtZW01M2RsYzVTMjQwYzRJQkMwcHZjbVV3ZWxwWExWOU5nZ0VMWDFSSVRTMHlVR2d0TmttQ0FRdHJiMHBCUjBsVmJHNUVNSUlCQ3pSMGRsRlFja2hqVWpSM2dnRUxRMVZvTmsxVWRrSmZORVdDQVFzMFZGZFNPVEJMU213NE5JSUJDME4zTjJWTmFXSldMVmhyGPHq0C4%3D"), diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap index 54db1c0..2fb52a5 100644 --- a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap @@ -33,6 +33,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "pt0YvfnhGgI", @@ -63,6 +64,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "0yPnvetCm-U", @@ -93,6 +95,7 @@ MusicSearchResult( )), view_count: None, is_video: false, + track_nr: None, ), TrackItem( id: "3ryohiCVq3M", @@ -115,6 +118,7 @@ MusicSearchResult( album: None, view_count: Some(108000000), is_video: true, + track_nr: None, ), TrackItem( id: "6Bt1KeMNqvc", @@ -137,6 +141,7 @@ MusicSearchResult( album: None, view_count: Some(10000000), is_video: true, + track_nr: None, ), TrackItem( id: "5YQRHUItXTI", @@ -159,6 +164,7 @@ MusicSearchResult( album: None, view_count: Some(56000), is_video: true, + track_nr: None, ), ], albums: [ diff --git a/src/client/snapshots/rustypipe__client__pagination__tests__map_playlist_tracks.snap b/src/client/snapshots/rustypipe__client__pagination__tests__map_playlist_tracks.snap index 906ff25..248e824 100644 --- a/src/client/snapshots/rustypipe__client__pagination__tests__map_playlist_tracks.snap +++ b/src/client/snapshots/rustypipe__client__pagination__tests__map_playlist_tracks.snap @@ -26,6 +26,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "f9g6NCHQrcE", @@ -52,6 +53,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "CAVfEwrwT_o", @@ -78,6 +80,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "VUr9JZQ8F2g", @@ -100,6 +103,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XQat6rNNbdQ", @@ -122,6 +126,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "EQyU6fGDn0c", @@ -144,6 +149,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "g4poKgQZX6w", @@ -166,6 +172,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "YTHr7gxwYUQ", @@ -188,6 +195,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "MfCSDn6q6j4", @@ -210,6 +218,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "gx9KFXb5x_o", @@ -232,6 +241,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "d7R7DQ5tlQo", @@ -254,6 +264,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cZPjgcqHSa8", @@ -276,6 +287,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ogDLdREonWY", @@ -298,6 +310,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "pRQpKprUUPY", @@ -320,6 +333,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "qZoQw9b4uCo", @@ -342,6 +356,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "q23qghoF6Nk", @@ -364,6 +379,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "yU0aKa7PFBg", @@ -386,6 +402,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "DVCAqvypaCc", @@ -408,6 +425,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XdnI7sm6LeQ", @@ -430,6 +448,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "KcOXNSJtFLg", @@ -452,6 +471,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "K0UxHXZwgsg", @@ -474,6 +494,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "eyyNwOSQ3Yg", @@ -496,6 +517,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1yskotqNuXI", @@ -518,6 +540,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "C03n4AAiL9w", @@ -540,6 +563,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "a2wNRTKRusM", @@ -562,6 +586,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "AIf61iHwWMQ", @@ -584,6 +609,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BixqbSRjY2Y", @@ -606,6 +632,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Acgy-3d4P6o", @@ -628,6 +655,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5M_yA9M7yNc", @@ -650,6 +678,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "PjJuezhos3U", @@ -672,6 +701,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XMutaJI2-kc", @@ -694,6 +724,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Xac6Q7hcZkQ", @@ -716,6 +747,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "JfwjsjBcDoU", @@ -738,6 +770,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "zshiQUV3ohw", @@ -760,6 +793,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "g1eTAt1_VAM", @@ -786,6 +820,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "c3rLrFC8igY", @@ -803,6 +838,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1im4DNEYzEM", @@ -829,6 +865,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "8BUxw9ocM2s", @@ -851,6 +888,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "g4cSpnGbHPE", @@ -877,6 +915,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1Sdj9MiCowQ", @@ -903,6 +942,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2DbR35g-0ZY", @@ -925,6 +965,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "j09hpp3AxIE", @@ -947,6 +988,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "J3GN6JXjV3g", @@ -969,6 +1011,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "pULl-p02upM", @@ -991,6 +1034,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "O6By8JeCtQQ", @@ -1013,6 +1057,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "NGn3IYQ7M7E", @@ -1035,6 +1080,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "o43oI5x86dI", @@ -1057,6 +1103,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7TNqUrINxzs", @@ -1079,6 +1126,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "f3BD5Zm3cp0", @@ -1105,6 +1153,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "sF4yTDp95Eo", @@ -1127,6 +1176,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "1EwLNHg6ejY", @@ -1149,6 +1199,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-l75qaSDWe8", @@ -1171,6 +1222,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7h7ntYLLrfQ", @@ -1193,6 +1245,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ApUl3Ops69M", @@ -1215,6 +1268,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "2YcJ8Wightw", @@ -1237,6 +1291,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "W3q8Od5qJio", @@ -1259,6 +1314,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "WPFLAjmWCtk", @@ -1281,6 +1337,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "tC76tIp0kBk", @@ -1303,6 +1360,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "kiMG_JV2gbo", @@ -1325,6 +1383,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "CrYYg_atdtk", @@ -1347,6 +1406,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XTPGpBBwt1w", @@ -1369,6 +1429,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "uC08L4xxjNM", @@ -1391,6 +1452,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5fAoV_AAMf0", @@ -1413,6 +1475,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "u5Vz7obL460", @@ -1435,6 +1498,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ZPJlyRv_IGI", @@ -1457,6 +1521,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "s2SLbln-JwE", @@ -1479,6 +1544,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "28xHtRw6pG8", @@ -1501,6 +1567,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "joWoKqUTRvc", @@ -1523,6 +1590,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "XNMFTqhcNrE", @@ -1545,6 +1613,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "v3vPLgJ9FX8", @@ -1571,6 +1640,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "UFXOd179kOA", @@ -1593,6 +1663,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "4xRsDnKgHZc", @@ -1615,6 +1686,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "mE3IjoEqMqY", @@ -1637,6 +1709,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "E7e5vxKerqA", @@ -1659,6 +1732,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "axmZ_5Rx4Go", @@ -1681,6 +1755,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "44Ig6BsOCYA", @@ -1703,6 +1778,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "3iLBFEJjdN0", @@ -1725,6 +1801,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "M-ncq2eHF_k", @@ -1747,6 +1824,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "-AJoJ-ggiKI", @@ -1769,6 +1847,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "cgb-zp9DDHg", @@ -1795,6 +1874,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "Q7ZXg3KQLt0", @@ -1817,6 +1897,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "ysAEZOwp5rM", @@ -1839,6 +1920,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "m5vfng33SVE", @@ -1861,6 +1943,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "yMfgjVlGbUE", @@ -1883,6 +1966,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "OQIYEPe6DWY", @@ -1905,6 +1989,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "5FS8RIH7BpI", @@ -1927,6 +2012,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "zSRKgFB9piY", @@ -1949,6 +2035,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "e4eHhgwHCME", @@ -1975,6 +2062,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "q3hZvho7jNk", @@ -1997,6 +2085,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "0nWysyj_Z4Y", @@ -2019,6 +2108,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "aGCcLWU0OVo", @@ -2041,6 +2131,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "OQsXLK4MeEA", @@ -2063,6 +2154,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "xm7dxIqOO2M", @@ -2085,6 +2177,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "jlaaByab4Zk", @@ -2111,6 +2204,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "KG9-jSqXz4U", @@ -2133,6 +2227,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "7dISZnwsBSA", @@ -2155,6 +2250,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "F_PPdS-PB14", @@ -2177,6 +2273,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "DMg9idvVY8M", @@ -2199,6 +2296,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "DGEmoSFI94Y", @@ -2221,6 +2319,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), TrackItem( id: "BtZufymxHvE", @@ -2247,6 +2346,7 @@ Paginator( album: None, view_count: None, is_video: true, + track_nr: None, ), ], ctoken: Some("4qmFsgI8EiRWTFBMNWREeDY4MVQ0YlI3WkYxSXVXek92MW9tbFJiRTdQaUoaFGVnZFFWRHBEVGtGQ2tnRURDTG9F"), diff --git a/src/model/mod.rs b/src/model/mod.rs index 93cdec7..49bc156 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -890,6 +890,10 @@ pub struct TrackItem { pub view_count: Option, /// True if the track is a music video pub is_video: bool, + /// Album track number + /// + /// [`None`] if the track is not fetched from an album. + pub track_nr: Option, } /// YouTube Music artist list item diff --git a/src/serializer/text.rs b/src/serializer/text.rs index 03195c9..c50d3d5 100644 --- a/src/serializer/text.rs +++ b/src/serializer/text.rs @@ -374,6 +374,8 @@ impl TextComponent { } impl TextComponents { + /// Return the string representation of all text components + /// or [`None`] if there aren't any. pub fn to_opt_string(&self) -> Option { if self.0.is_empty() { None @@ -382,6 +384,15 @@ impl TextComponents { } } + /// Return the string representation of the first text component + pub fn first_str(&self) -> &str { + self.0.first().map(|t| t.as_str()).unwrap_or_default() + } + + /// Split the text components using the given separation string. + /// + /// Example: `["Abc", "-", "Hello", "World", "-", "Xyz"]` -> + /// `["Abc"], ["Hello", "World"], ["Xyz"]` pub fn split(self, separator: &str) -> Vec { let mut buf = Vec::new(); let mut inner = Vec::new(); From c7ae2f85319c58f533a557421663d2fb6754a162 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 1 Nov 2022 00:27:06 +0100 Subject: [PATCH 2/2] 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]