Commit Graph

157 Commits

Author SHA1 Message Date
jeffvli ffe59b2c78 refactor scrobbling to use duration instead of progress (#2010)
- add scrobble status debug and indicator
- add force / reset scrobble
2026-05-12 22:04:46 -07:00
Jeff e2a1d813a9 Use proper casing for i18n locales (#1998) 2026-05-11 19:42:07 -07:00
jeffvli 323130a877 add toggle for app-suspension for powersave block (#1992) 2026-05-01 21:24:45 -07:00
jeffvli f5eb3f1488 wrap useHotkeys to disable on command palette open (#1925) 2026-04-28 19:31:41 -07:00
York b99899f128 fix MPV visualizer on macOS and handle exclusive mode UX (#1930) 2026-04-13 20:47:03 -07:00
Auzlex 895cbb4d16 fix(media-session): prevent handlers from being destroyed during playback (#1898)
Handlers were being registered and destroyed on state change/re-render,
causing media controls to vanish during rapid use or quick track skipping.
Persist handlers and add debounce for rapid track skipping.

Tested on Windows, Linux, and Android.
2026-04-05 22:27:04 -07:00
jeffvli 3f300c40cc add in-app prompt for system audio connection 2026-04-05 22:19:09 -07:00
jeffvli ef129e4638 remove video from displayMedia request 2026-04-05 07:58:01 -07:00
jeffvli 94886a2d5a add system audio loopback for webaudio 2026-04-05 00:48:38 -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
Kendall Garner 49c28299af remove package.lock, make lint happy 2026-03-06 21:04:51 -08:00
Kendall Garner 0bb6fea3db don't assume server exists in enable either 2026-03-06 20:59:13 -08:00
Kendall Garner 7027084394 fix(autosave): server isn't guaranteed to exist 2026-03-06 20:52:41 -08:00
Kendall Garner 7c4cbaad9a feat(player): add server-side autosave capability 2026-03-06 20:01:35 -08:00
jeffvli 5039012fcb catch errors on desktop scrobble notification failure (#1723) 2026-02-18 20:54:31 -08:00
jeffvli 75af57a7b3 use correct player seek event for mpris updater (#1740) 2026-02-18 20:37:18 -08:00
Jeff f39a7f8d6f Add album detail list view (#1681) 2026-02-09 21:56:08 -08:00
Mateleo d93f6e8720 feat: enable scrobbling on song repeat and fix package name typo (#1662)
- Add `handleScrobbleFromRepeat` callback to reset scrobble state and send 'start' event when player repeats a song, ensuring accurate scrobbling in repeat mode.
- Fix typo in `web.vite.config.ts` by correcting '@tanstack_react-query-persist-client' to '@tanstack/react-query-persist-client' for proper package reference.
2026-02-07 15:25:29 -08:00
Steffen Martinsen b8228844df feat: Add support for player controls in macOS dock menu (#1627)
* Added simple macOS dock menu similar to tray menu

* Enhanced and moved dock menu to darwin folder and enabled mpris on macOS to support play/pause state

* Added missing property sortName to silence TS error
2026-01-30 12:01:02 -08:00
jeffvli 81af324260 handle radio metadata for mpris / mediasession (#1586) 2026-01-22 01:30:45 -08:00
jeffvli f4072c183b refactor feature hooks to be conditionally initialized 2026-01-21 02:23:25 -08:00
jeffvli 291daa434c validate that the current song is different from server before revalidating in queue 2026-01-17 13:19:56 -08:00
jeffvli 2827b2ae01 invalidate the album query on scrobble submission 2026-01-16 04:23:57 -08:00
jeffvli fc5024be90 revalidate current song in queue during playback 2026-01-16 04:18:02 -08:00
jeffvli c2de979527 fix incorrect condition to try similar songs in autodj 2026-01-07 13:57:53 -08:00
jeffvli a66c67e86d optimize settings store 2026-01-03 01:01:54 -08:00
jeffvli aaf840d358 resend mediasession on player repeat (#1472) 2026-01-01 20:17:49 -08:00
jeffvli 91ccc71fcd fix media session using stale image reference (#1296) 2025-12-31 01:51:52 -08:00
jeffvli ffdef596ad auto follow queue when autodj is triggered 2025-12-28 14:34: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 4eac6457ea add MPRIS volume handler (#1415) 2025-12-28 01:15:38 -08:00
jeffvli dff182cbc5 use correct id for runtime images in useItemImageUrl 2025-12-26 14:04:48 -08:00
jeffvli 076d9b3083 re-add pause / unpause events to Jellyfin scrobble (#1413) 2025-12-25 01:47:04 -08:00
jeffvli ce570eddd2 improve auto dj to trigger on remaining songs change 2025-12-23 21:05:40 -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
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 32062d7c0f fix auto dj not triggering on single song queue (#1359) 2025-12-10 01:06:16 -08:00
jeffvli 65a7c3440b add player autodj (#7) 2025-12-07 15:04:39 -08:00
jeffvli 42fca271ce remove stale start event on song change for jellyfin scrobble (#1332) 2025-12-06 18:12:15 -08:00
jeffvli 7db3eab38c improve scrobble conditions 2025-12-05 11:28:41 -08:00
jeffvli 40af5fb945 enable mediasession by default on web 2025-12-05 01:10:54 -08:00
jeffvli 566d938b6c adjust jellyfin scrobble conditions, remove status change event (#1274) 2025-12-04 21:33:10 -08:00
jeffvli 4d626377ef fix mediasession controls 2025-12-04 01:31:57 -08:00
jeffvli aab19b289b reimplement playback hotkeys 2025-11-29 22:04:10 -08:00
jeffvli 0b70ed158b fix mpris 2025-11-29 21:35:09 -08:00
jeffvli 60d8d18a0f add mediasession 2025-11-29 19:33:40 -08:00
jeffvli 212d9e9f55 add mpris 2025-11-29 19:33:40 -08:00
jeffvli 2f32534cf9 add logs to scrobble events 2025-11-29 19:33:40 -08:00
jeffvli 60cdea6787 large performance refactor 2025-11-29 19:33:39 -08:00
jeffvli 16c703fe31 remove scrobble log 2025-11-29 19:33:38 -08:00