Commit Graph

114 Commits

Author SHA1 Message Date
ChrisScott9456 56f05ddafc Replace startScan (full library refresh) with refreshItem (individual item refresh) for jellyfin metadata editing 2026-06-28 20:19:12 -04:00
ChrisScott9456 aa12585b20 lint fixes 2026-06-15 10:48:18 -04:00
ChrisScott9456 7e82ab146e feat(tag-editor): add batch metadata editor with artwork support
New metadata editor accessible via "Edit Metadata" in the song, album,
and playlist song context menus. Supports editing one or more files at once.

Tags:
- Displays all metadata fields for the selected files
- Fields differing across files are shown as "(Multiple Values)"
- Fields can be added from a dropdown or removed individually
- Only modified fields are written back to disk

Artwork:
- Displays shared cover art across all selected files
- Supports setting new artwork via file picker or drag-and-drop
- Supports clearing existing artwork
- Shows a placeholder when selected files have different covers

Reading and writing:
- Tags are read via music-metadata, preserving full ISO date strings
- Writes use taglib-wasm WASI in-place editing via setProperty,
  only touching fields that were explicitly changed
- Writability of all files is checked before any writes begin
- Partial read failures show a warning but still allow editing

Other:
- Per-file batch progress is reported during reads and writes
- In-flight reads are cancelled when the modal is closed
- An optional server library rescan can be triggered after saving
2026-06-14 22:59:59 -04:00
jeffvli 46b94a83f1 fix reportPlayback event chain (#2131)
- properly send stopped event on song change
- properly send both starting and playing evento n song change instead of only starting
2026-06-06 18:41:59 -07:00
jeffvli c4da44a443 add playlist/artist image upload for jellyfin (#2105) 2026-06-03 00:07:31 -07:00
jeffvli d9da588c7c add workaround for identical Jellyfin release name bug (#2041) 2026-05-26 22:06:40 -07:00
jeffvli 650ae0b320 add reportPlayback as default Jellyfin feature 2026-05-25 13:26:11 -07:00
Maximilian Leith e3a0879301 fix: only show Jellyfin audio playlist (#2000) 2026-05-07 20:48:43 -07:00
jeffvli f190626c8c fix playcounts on jellyfin album detail songs (#2005) 2026-05-07 20:42:51 -07:00
jeffvli cc4e933c07 fix missing path replacement transformations 2026-04-16 00:29:13 -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
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
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
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
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 f56a836ffd add personal/community toggle for artist top songs (#1372) 2026-02-03 23:58:44 -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
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
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 37ed99d0fb optimize artist page load speed 2025-12-31 15:15:30 -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
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
Jeff 7ed847fecb Add internet radio (#1384) 2025-12-13 21:26:33 -08:00
Kendall Garner ed5d590a6b feat: sync play queue for navidrome/subsonic (#1335)
---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-12 21:05:00 -08:00
jeffvli e147a78ee0 replace Jellyfin raw streamUrl with /download endpoint 2025-12-12 00:43:39 -08:00
jeffvli c82762a3fc check authentication for all servers on initialization and update permission roles 2025-12-07 18:28:12 -08:00
jeffvli 4ddada1fe3 add isAdmin to auth state 2025-12-07 17:21:46 -08:00
jeffvli 84621474c0 use CommunityRating for jellyfin top songs (#1268) 2025-12-06 18:22:31 -08:00
jeffvli 0a7029f7bc add support for full playlist re-order (#1327) 2025-12-06 17:41:13 -08:00
jeffvli 9004485aa9 fix music folder selection for jellyfin (#1319) 2025-12-04 18:45:58 -08:00
jeffvli 917bf91583 add folder browsing support (#315) 2025-12-03 14:55:16 -08:00
jeffvli f84506ce01 use tags list for Navidrome genres to support counts 2025-12-02 18:38:08 -08:00
jeffvli aff7a61bca fix list filters 2025-12-02 00:11:42 -08:00
jeffvli bdc52ece9d more jellyfin api fixes 2025-11-29 19:33:42 -08:00
jeffvli 224fcf94b8 handle limit -1 for jellyfin genres 2025-11-29 19:33:42 -08:00
jeffvli d3132ad570 reimplement genre detail route 2025-11-29 19:33:38 -08:00
Kendall Garner 80419a1edf Remove stream url, cleanup old audio player (#1269)
* Remove stream url, cleanup old audio player

* remove unused api in playerbar waveform

* make jellyfin transcoding work?
2025-11-29 19:33:38 -08:00
jeffvli f6a7af2b12 remove typed _custom query 2025-11-29 19:30:51 -08:00