Commit Graph

366 Commits

Author SHA1 Message Date
jeffvli db06e7f601 add native nd radio endpoints, support radio station images 2026-04-02 18:26:26 -07:00
jeffvli 7442f9d3ca support navidrome playlist image upload 2026-04-02 01:23:09 -07:00
jeffvli a30b1ec90b add OS transcoding extension 2026-03-31 20:45:22 -07:00
Kendall Garner 68e6e3cf65 feat(playlist): support updating playlist track order (#1875)
* feat(playlist): support updating playlist track order

* force track mode when editing

* use common confirmation for save

* remove en editPLaylist key
2026-03-27 21:36:08 -07:00
kast3t 6dc58a3ff8 fix playlist sort by id (#1867) (#1868)
* fix playlist sort by id (#1867)
2026-03-23 18:27:21 -07:00
jeffvli 615f9c3515 refactor search into individual sections by itemtype, add infinite loader 2026-03-18 00:59:04 -07:00
Lyall dfdac28f53 Fix server queue saving/restoring on Navidrome and OpenSubsonic (#1828)
* fix server queue saving

* fix error when attempting to restore empty queue

* queue items optional

* make playQueueByIndex optional

* fix incorrect error message
2026-03-12 13:41:50 +00:00
jeffvli 5b4da3bc29 use batched fetching for nd song list
- albumIds get culled from query parameters after a certain number, resulting in not all items fetched
2026-03-11 20:46:49 -07:00
jeffvli 31a201ca32 rewrite Image component
- remove react-image dependency
- use manual blob load
- abort load when exiting viewport
2026-03-09 20:49:02 -07:00
jeffvli 17deac8d65 decouple AlbumArtistInfo from AlbumArtistDetail (#1809) 2026-03-08 22:06:18 -07:00
jeffvli 9e08157517 add has_rating filter for Navidrome song list 2026-03-06 18:03:14 -08:00
Kendall Garner 30685e7252 fix(subsonic): do favorite filter processing on artist favorite 2026-03-03 06:54:59 -08:00
Kendall Garner 71360e37de fix(favorites): filter favorite artists on favorite page for Jellyfin 2026-03-02 21:02:24 -08:00
Alexander Welsing 4918b412b2 Album radio (#1759)
* added album radio feature

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-26 20:33:00 -08:00
jeffvli 50fe373f1e simplify lyrics implementation
- removes complex lyrics fetch and override logic, and instead uses a single query as a source of truth for the lyrics
- properly handles loading state, invalidation, and refetch
2026-02-18 20:25:52 -08:00
Alexander Welsing 2c546867a8 change "Fields" query parameter to array (#1733)
* change "Fields" query parameter to array

* platformToTarget.key() -> to array
2026-02-17 18:45:31 -08:00
jeffvli 91ac36c835 fix Subsonic root folder condition (#1686)
- some older subsonic servers used numeric ids which causes the rootFolderId regex to fail which resulted in the getFolder endpoint to always attempt to fetch the root
2026-02-13 23:03:24 -08:00
Jeff e6f49b9f1f Add album view for playlists (#1700)
* update client side song ordering to include album order

* add compact styling to LibraryHeader

* move search button to top right of LibraryHeader
2026-02-11 21:48:25 -08:00
Jeff f39a7f8d6f Add album detail list view (#1681) 2026-02-09 21:56:08 -08:00
jeffvli fea2966f62 refactor jellyfin field properties and include ProviderIds 2026-02-06 05:17:40 -08:00
jeffvli 2b6b0cb38b fix artist favorite songs (subsonic) 2026-02-03 23:58:44 -08:00
jeffvli f56a836ffd add personal/community toggle for artist top songs (#1372) 2026-02-03 23:58:44 -08:00
Alexander Welsing b4ecf5d257 Update instant mix to use the new items endpoint instead of songs (#1642)
songs/:itemId:/InstantMix -> items/:itemId/InstantMix
2026-02-03 22:34:34 -08:00
jeffvli ac5611fdca add favorite songs section to artist page (#1604) 2026-02-02 22:23:38 -08:00
Damien Erambert 55a6ea4fca Prevent double fetching when force refreshing paginated views (#1637)
* Prevent double fetching when force refreshing paginated views

* remove await from infinite list loader query invalidation

* add mutation and loading state to list refresh

* add non-suspense query to list genre filters to add loading state

* remove list count data set on random queries

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-02 20:25:19 -08:00
Damien Erambert 72fc5beb98 Use a re-usable Intl.Collator instance for locale compare when possible (#1638)
* Use a re-usable Intl.Collator instance for locale compare
2026-02-02 18:28:01 -08:00
jeffvli ced3b491ff add SortName client side sort option (#1612) 2026-01-28 20:45:47 -08:00
marank f016d2cdf4 Cover art support for folder view (Subsonic servers only) (#1608)
* add coverArt support for subsonic folders
2026-01-23 21:26:51 -08:00
Kendall Garner 45df497ee6 natural numeric sort for tag and disable disc/track total for nd track filter 2026-01-18 17:19:30 -08:00
Kendall Garner 5c06624f8c Initial work: support showing studios for jellyfin, allow pill to be clickable (#1566) 2026-01-18 13:53:34 -08:00
jeffvli a0e09b80cf fix missing playlistItemId for subsonic song normalization (#1564) 2026-01-18 02:28:31 -08:00
jeffvli 4155cd0963 optimize ND/JF list fetch
- no longer requires 2 separate fetches for count and data
- the list count includes the first page so we set the query data directly
2026-01-17 19:57:12 -08:00
jeffvli 27f82aef94 conditionally disable Subsonic list filters based on availability (#1567) 2026-01-17 18:20:40 -08:00
Kendall Garner 415cc71f74 fix(jellyfin): use undefined instead of -1 for limit for jellyfin 10.10, fix item-image 2026-01-09 08:11:02 -08:00
Kendall Garner f465e34ea3 fix(jellyfin): use correct filter for album/artist with small count 2026-01-08 20:32:57 -08:00
jeffvli 6aeec1e89c add filepath replacement setting (#1402) 2026-01-02 01:23:29 -08:00
jeffvli 926b77c770 fix Subsonic artist list broken pagination 2025-12-31 15:55:45 -08:00
jeffvli 37ed99d0fb optimize artist page load speed 2025-12-31 15:15:30 -08:00
jeffvli b00f9795bf add song infinite carousel (#1464) 2025-12-31 01:20:04 -08:00
jeffvli 255b9a9c2d fix lyrics fetch and clear (#1342)
- split server and remote lyrics into separate queries
- lyrics cache now always contain server lyrics, override will use separate remote query
- clear button is reverted to only clear the override query, and back to server
2025-12-31 01:07:56 -08:00
jeffvli 72d0fca28b support secondary public server URL 2025-12-30 21:05:38 -08:00
jeffvli 0a54f7c44c remove similarSongs from autodj when music folder is selected (#1451)
- Similar songs queries for both Subsonic/Jellyfin do not support querying by musicFolderId
2025-12-28 14:09:22 -08:00
jeffvli d5d995de5f fix missing musicFolderId on search (#1451) 2025-12-28 13:34:26 -08:00
jeffvli ef631d12cc support multiselect for nd album artist_id filter 2025-12-28 06:44:31 -08:00
jeffvli 1a930021b6 handle favorite/update in similarArtists 2025-12-28 03:43:59 -08:00
farfromrefuge f78a572a3c fix:music filtering subsonic (#1442)
* Add musicFolderId filtering for tracks in Subsonic API

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-12-25 14:22:23 -08:00
farfromrefuge a322717e0e feat: add artist radio and track radio (in context menu) (#1437)
* Add API support for artist radio and track radio features

* Add translation strings and settings UI for artist radio count

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-23 20:46:19 -08:00
Jeff 25bfb65b6d Add image URL generation at runtime to allow for dynamic image sizes (#1439)
* add getImageUrl to domain endpoints

* add new ItemImage component and hooks to generate image url

* add configuration for image resolution based on types
2025-12-23 20:18:52 -08:00
Tiberiu (ELECTRO) Lazăr f418bbfd2f Fix API parameter for Jellyfin 10.12 and up (#1429)
* Fix API parameter for Jellyfin 10.11 and up

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-22 19:51:06 -08:00
Benjamin 7a77b9bfe7 feat: show record label copyright at bottom of track listing (#1421)
* show record label copyright at bottom of track listing

* add recordLabels support for Jellyfin

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-22 19:08:35 -08:00