feat: music search filter/cont, refactored paginator

This commit is contained in:
ThetaDev 2022-10-31 23:05:27 +01:00
parent d29bbd8b25
commit dac2b17dc2
38 changed files with 65313 additions and 247 deletions

View file

@ -5,6 +5,7 @@ mod ordering;
mod paginator;
pub mod richtext;
pub(crate) use convert::FromYtItem;
pub use paginator::Paginator;
use serde_with::serde_as;
@ -1036,4 +1037,33 @@ pub struct MusicSearchResult {
/// for the corrected search term and displays it on top of the
/// search results page.
pub corrected_query: Option<String>,
pub order: Vec<MusicEntityType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum MusicItem {
Track(TrackItem),
Album(AlbumItem),
Artist(ArtistItem),
Playlist(MusicPlaylistItem),
}
#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum MusicEntityType {
Track,
Album,
Artist,
Playlist,
}
/// Filtered YouTube Music search result
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct MusicSearchFiltered<T> {
pub items: Paginator<T>,
/// Corrected search query
///
/// If the search term containes a typo, YouTube instead searches
/// for the corrected search term and displays it on top of the
/// search results page.
pub corrected_query: Option<String>,
}