diff --git a/src/renderer/api/jellyfin/jellyfin-controller.ts b/src/renderer/api/jellyfin/jellyfin-controller.ts index 4ce9b381..96a21cb8 100644 --- a/src/renderer/api/jellyfin/jellyfin-controller.ts +++ b/src/renderer/api/jellyfin/jellyfin-controller.ts @@ -56,6 +56,7 @@ import { MoveItemArgs, DownloadArgs, TranscodingArgs, + Played, } from '/@/renderer/api/types'; import { jfApiClient } from '/@/renderer/api/jellyfin/jellyfin-api'; import { jfNormalize } from './jellyfin-normalize'; @@ -892,6 +893,12 @@ const getRandomSongList = async (args: RandomSongListArgs): Promise()( maxYear: 2020, minYear: 2000, musicFolder: '', + played: Played.All, songCount: 100, })), { @@ -55,6 +57,12 @@ const useShuffleAllStore = create()( ), ); +const PLAYED_DATA: SelectItem[] = [ + { label: 'all tracks', value: Played.All }, + { label: 'only unplayed tracks', value: Played.Never }, + { label: 'only played tracks', value: Played.Played }, +]; + export const useShuffleAllStoreActions = () => useShuffleAllStore((state) => state.actions); interface ShuffleAllModalProps { @@ -72,7 +80,7 @@ export const ShuffleAllModal = ({ genres, musicFolders, }: ShuffleAllModalProps) => { - const { genre, limit, maxYear, minYear, enableMaxYear, enableMinYear, musicFolderId } = + const { genre, limit, maxYear, minYear, enableMaxYear, enableMinYear, musicFolderId, played } = useShuffleAllStore(); const { setStore } = useShuffleAllStoreActions(); @@ -91,6 +99,7 @@ export const ShuffleAllModal = ({ maxYear: enableMaxYear ? maxYear || undefined : undefined, minYear: enableMinYear ? minYear || undefined : undefined, musicFolderId: musicFolderId || undefined, + played, }, }), queryKey: queryKeys.songs.randomSongList(server?.id), @@ -185,6 +194,17 @@ export const ShuffleAllModal = ({ setStore({ musicFolderId: e ? String(e) : '' }); }} /> + {server?.type === ServerType.JELLYFIN && ( +