From 41ecfea68dc50d668c792b6a0b587aa20986ab4e Mon Sep 17 00:00:00 2001 From: sssionek <85118387+sssionek@users.noreply.github.com> Date: Sun, 19 Nov 2023 09:18:47 -0500 Subject: [PATCH] Include artist names in song/album search results (#241) --- src/models/search/AlbumSearchHint.ts | 6 +++++- src/models/search/SearchHint.ts | 13 +++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/models/search/AlbumSearchHint.ts b/src/models/search/AlbumSearchHint.ts index 6465185..a4c01cb 100644 --- a/src/models/search/AlbumSearchHint.ts +++ b/src/models/search/AlbumSearchHint.ts @@ -17,10 +17,14 @@ export class AlbumSearchHint extends SearchHint { 'Unable to construct playlist search hint, required properties were undefined', ); } + var artist = "" + if(hint.AlbumArtist) { + artist = hint.AlbumArtist + " - " + } return new AlbumSearchHint( hint.Id, - trimStringToFixedLength(hint.Name, 50), + trimStringToFixedLength(artist + hint.Name, 70), hint.RunTimeTicks / 10000, ); } diff --git a/src/models/search/SearchHint.ts b/src/models/search/SearchHint.ts index 9c89ca9..2f46a5d 100644 --- a/src/models/search/SearchHint.ts +++ b/src/models/search/SearchHint.ts @@ -31,6 +31,7 @@ export class SearchHint { static constructFromHint(hint: JellyfinSearchHint) { const schema = z.object({ Id: z.string(), + Artists: z.array(z.string()), Name: z.string(), RunTimeTicks: z.number(), }); @@ -44,10 +45,18 @@ export class SearchHint { )}`, ); } - + var artist = ""; + if (result.data.Artists !== null) { + artist = result.data.Artists[0] + if (result.data.Artists.length > 1) { + artist += ",... - " + } else { + artist += " - " + } + } return new SearchHint( result.data.Id, - trimStringToFixedLength(result.data.Name, 50), + trimStringToFixedLength(artist + result.data.Name, 70), result.data.RunTimeTicks / 10000, ); }