Part of the #180 library picker fixes (API side). Broken artwork: GetLibraryBrowseItemsHandler.Artwork returned Blazor-convention values (a bare cache filename, or a RELATIVE jellyfin/emby proxy path). Blazor's GetPosterUrl prefixes those with "artwork/posters/" against <base href="/">, but the React SPA renders item.artwork raw as <img src> from under /app/, so every image 404'd. The handler now returns rooted, directly-usable URLs (/artwork/posters/... or /artwork/thumbnails/... per ArtworkKind; jellyfin/emby mapped to their proxy routes with fillHeight/maxHeight; absolute http(s) URLs passed through; empty stays empty). Seasons with no poster of their own now fall back to the parent show's poster (SeasonArtwork + the extra ShowMetadata.Artwork include). Season drill-in: GET /api/library/browse gains an optional `parentId` query param that, with mediaType=TelevisionSeason, returns that show's seasons (season-number order, bypassing Lucene) so the SPA can expand a show into its seasons. OpenAPI spec regenerated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
12 lines
312 B
C#
12 lines
312 B
C#
using ErsatzTV.Core.Api.LibraryBrowse;
|
|
|
|
namespace ErsatzTV.Application.LibraryBrowse;
|
|
|
|
public record GetLibraryBrowseItems(
|
|
string Query,
|
|
int? LibraryId,
|
|
LibraryBrowseMediaType? MediaType,
|
|
int PageNum,
|
|
int PageSize,
|
|
int? ParentId = null) : IRequest<PagedLibraryBrowseItemsResponseModel>;
|