fix: missing image covers for emby

This commit is contained in:
Lei Nelissen
2024-07-26 12:01:21 +02:00
parent 399340127d
commit 01e25a89b1
16 changed files with 73 additions and 33 deletions

View File

@@ -1,7 +1,7 @@
import { createAsyncThunk, createEntityAdapter } from '@reduxjs/toolkit';
import { Album, AlbumTrack, Playlist } from './types';
import { AsyncThunkAPI } from '..';
import { retrieveAllAlbums, retrieveRecentAlbums, retrieveAlbumTracks, retrieveAlbum } from '@/utility/JellyfinApi/album';
import { retrieveAllAlbums, retrieveRecentAlbums, retrieveAlbumTracks, retrieveAlbum, retrieveSimilarAlbums } from '@/utility/JellyfinApi/album';
import { retrieveAllPlaylists, retrievePlaylistTracks } from '@/utility/JellyfinApi/playlist';
import { searchItem } from '@/utility/JellyfinApi/search';
@@ -44,6 +44,11 @@ export const fetchAlbum = createAsyncThunk<Album, string, AsyncThunkAPI>(
retrieveAlbum,
);
export const fetchSimilarAlbums = createAsyncThunk<Album[], string, AsyncThunkAPI>(
'/albums/similar',
retrieveSimilarAlbums,
);
type SearchAndFetchResults = {
albums: Album[];
results: (Album | AlbumTrack)[];

View File

@@ -8,7 +8,8 @@ import {
playlistAdapter,
fetchAllPlaylists,
fetchTracksByPlaylist,
fetchAlbum
fetchAlbum,
fetchSimilarAlbums
} from './actions';
import { createSlice } from '@reduxjs/toolkit';
import { Album, AlbumTrack, Playlist } from './types';
@@ -79,7 +80,15 @@ const music = createSlice({
});
builder.addCase(fetchAlbum.pending, (state) => { state.albums.isLoading = true; });
builder.addCase(fetchAlbum.rejected, (state) => { state.albums.isLoading = false; });
/**
* Fetch similar albums
*/
builder.addCase(fetchSimilarAlbums.fulfilled, (state, { payload, meta }) => {
albumAdapter.upsertMany(state.albums, payload);
state.albums.entities[meta.arg].Similar = payload.map((a) => a.Id);
});
/**
* Fetch most recent albums
*/

View File

@@ -68,6 +68,8 @@ export interface Album {
DateCreated: string;
Overview?: string;
Similar?: string[];
/** Emby potentially carries different ids for primary images */
PrimaryImageItemId?: string;
}
export interface AlbumTrack {
@@ -124,7 +126,3 @@ export interface Playlist {
Tracks?: string[];
lastRefreshed?: number;
}
export interface SimilarAlbum {
Id: string;
}