Add internet radio (#1384)

This commit is contained in:
Jeff
2025-12-13 21:26:33 -08:00
committed by GitHub
parent f61d34c340
commit 7ed847fecb
46 changed files with 2229 additions and 118 deletions
@@ -12,6 +12,7 @@ import {
GenreListSort,
LibraryItem,
PlaylistListSort,
RadioListSort,
ServerType,
SongListSort,
SortOrder,
@@ -802,6 +803,47 @@ const PLAYLIST_LIST_FILTERS: Partial<
],
};
const RADIO_LIST_FILTERS: Partial<
Record<ServerType, Array<{ defaultOrder: SortOrder; name: string; value: string }>>
> = {
[ServerType.JELLYFIN]: [
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.id', { postProcess: 'titleCase' }),
value: RadioListSort.ID,
},
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.name', { postProcess: 'titleCase' }),
value: RadioListSort.NAME,
},
],
[ServerType.NAVIDROME]: [
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.id', { postProcess: 'titleCase' }),
value: RadioListSort.ID,
},
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.name', { postProcess: 'titleCase' }),
value: RadioListSort.NAME,
},
],
[ServerType.SUBSONIC]: [
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.id', { postProcess: 'titleCase' }),
value: RadioListSort.ID,
},
{
defaultOrder: SortOrder.ASC,
name: i18n.t('filter.name', { postProcess: 'titleCase' }),
value: RadioListSort.NAME,
},
],
};
const FILTERS: Partial<Record<LibraryItem, any>> = {
[LibraryItem.ALBUM]: ALBUM_LIST_FILTERS,
[LibraryItem.ALBUM_ARTIST]: ALBUM_ARTIST_LIST_FILTERS,
@@ -810,5 +852,6 @@ const FILTERS: Partial<Record<LibraryItem, any>> = {
[LibraryItem.GENRE]: GENRE_LIST_FILTERS,
[LibraryItem.PLAYLIST]: PLAYLIST_LIST_FILTERS,
[LibraryItem.PLAYLIST_SONG]: PLAYLIST_SONG_LIST_FILTERS,
[LibraryItem.RADIO_STATION]: RADIO_LIST_FILTERS,
[LibraryItem.SONG]: SONG_LIST_FILTERS,
};
+11 -1
View File
@@ -7,6 +7,7 @@ import {
AlbumArtist,
Artist,
Genre,
InternetRadioStation,
LibraryItem,
Playlist,
QueueSong,
@@ -97,7 +98,15 @@ interface CreateFuseOptions {
threshold?: number;
}
type FuseSearchableItem = Album | AlbumArtist | Artist | Genre | Playlist | QueueSong | Song;
type FuseSearchableItem =
| Album
| AlbumArtist
| Artist
| Genre
| InternetRadioStation
| Playlist
| QueueSong
| Song;
export const createFuseForLibraryItem = <T extends FuseSearchableItem>(
items: T[],
@@ -171,6 +180,7 @@ export const createFuseForLibraryItem = <T extends FuseSearchableItem>(
case LibraryItem.ARTIST:
case LibraryItem.GENRE:
case LibraryItem.RADIO_STATION:
break;
case LibraryItem.PLAYLIST: {