Commit graph

890 commits

Author SHA1 Message Date
Kendall Garner
4cbbb4035d
feat: add filtering for now playing view and sidebar 2025-10-26 11:51:55 -07:00
Lyall
4dd52b0cef
feat: Add explicit status for Navidrome and OpenSubsonic (#1220)
* add navidrome explicit status

* add ExplicitStatus enum and support opensubsonic

* add explicit status to cards
2025-10-26 13:48:45 +00:00
Kendall Garner
58ccd0cfd0
bugfix: remove duplicate scrobbling when there is only one item in the queue (#1222) 2025-10-25 20:25:07 +00:00
Tarulia
a9af1e91d4
Disable Media Keys with MediaSession on Windows (#1207)
In f07393c8 we enabled the MediaSession API, which from Chromium's side
brings its own native way of handling Global Media Keys. However, it
turns out having this enabled seemingly conflicts with Windows 11's SMTC
implementation when we also bind the Media Keys using Electron's Global
Hotkeys API (Windows 10 is apparently fine, but now EOL).

Globally passing `HardwareMediaKeyHandling` to `disable-features` was
considered, however using the MediaSession API requires
`HardwareMediaKeyHandling` to be enabled, so this is not an option.

Instead, with MediaSession enabled we need to let Chromium handle the
Media Keys, while without MediaSession we bind our own Global Hot Keys
for users that have them enabled in the settings.

Co-authored-by: Xudong Zhou <godzmichael@outlook.com>
2025-10-21 21:48:09 -07:00
Lyall
848b3f58b3
Fix short album/artist name breaking Discord presence (#1191)
* Fix short album/artist name breaking Discord presence

* fix lint rule that isn't firing, cleanup types

---------

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2025-10-14 02:17:09 +00:00
jeffvli
b16e57710b hide mediasession setting for non-desktop 2025-10-13 12:06:03 -07:00
jeffvli
931e96b9d1 fix media session setting toggle for web 2025-10-13 12:00:42 -07:00
jeffvli
c27b86d2b2 fix media session settings error on web 2025-10-13 11:49:34 -07:00
jeffvli
1b15c73db0 fix scrobble time race condition
- revert playerbar slider refactor
- re-implement mediasession handler
2025-10-13 11:44:42 -07:00
jeffvli
4e53030e8d Revert "refactor playerbar slider to separate component"
This reverts commit 309b49b46e.
2025-10-13 11:38:26 -07:00
jeffvli
22b798812e Revert "fix playback controls being called multiple times on media key input"
This reverts commit 1b8661d566.
2025-10-13 11:38:19 -07:00
jeffvli
1b8661d566 fix playback controls being called multiple times on media key input 2025-10-13 04:33:11 -07:00
Kendall Garner
68476deb98
fix album song count 2025-10-12 16:44:05 -07:00
jeffvli
c88c6cf55e add mediasession playback controls 2025-10-12 16:37:24 -07:00
jeffvli
58becc5c8e add useMediaSession hook to set metadata and status 2025-10-12 16:07:59 -07:00
jeffvli
309b49b46e refactor playerbar slider to separate component 2025-10-12 16:07:00 -07:00
jeffvli
40e7eda882 hide mediasession setting on desktop non-windows 2025-10-12 15:53:16 -07:00
Mike Benz
f07393c82a
enable mediaSession api (#1040)
* enable mediaSession api
2025-10-12 14:59:30 -07:00
Lyall
3636384508
show time remaining instead of duration on click (#1179)
* show time remaining on duration click
2025-10-12 14:22:58 -07:00
jeffvli
9f8d9a5b28 move update settings to advanced tab 2025-10-12 02:33:35 -07:00
jeffvli
4d12a4d6cb add release channel setting and implementation 2025-10-11 15:05:29 -07:00
Kendall Garner
fccbf83c12
bugfix: handle playlist with no tracks 2025-10-11 12:39:59 -07:00
Kendall Garner
6733047942
improve jellyfin participants 2025-10-10 19:32:11 -07:00
Kendall Garner
452803fc72
support artist art as artist background 2025-10-10 18:26:28 -07:00
Kendall Garner
4ff317eac9
fix nonexistent filter 2025-10-05 21:25:19 -07:00
Kendall Garner
306167fee3
playlist sort and refactoring 2025-10-05 19:13:35 -07:00
Kendall Garner
1cbb3e56bc
add recently released to home page, refactor home route 2025-10-05 07:51:36 -07:00
Kendall Garner
7c24f7cba4
use margin bottom for notifications component to not disable center controls 2025-10-04 07:34:48 -07:00
Evelyn Gravett
1b278cb33a
Feature: Add song and artist links to discord RPC (#1160)
* Add song and artist links to discord RPC

* use first artist name for artist link, full artist name for song link

* use first album artist for song link

* add discord rpc links setting

* simplify discord link settings

* fix setting description

* add musicbrainz links

* fix callback missing dependency

* use encodeURIComponent for lastfm links

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>

* split musicbrainz ids

* combine link settings

---------

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2025-10-04 03:27:59 +00:00
Kendall Garner
4a48598260
add multiple genre support for nd albums/tracks 2025-09-28 19:59:20 -07:00
Kendall Garner
6df270ba34
server add/edit refactor, allow jellyfin prefer instant mix 2025-09-28 19:19:24 -07:00
Kendall Garner
eb0ccec0bc
Remove cached queries on editing server 2025-09-28 19:10:47 -07:00
Kendall Garner
8caf898172
have default background for artist top songs 2025-09-28 17:12:34 -07:00
Kendall Garner
c448352ec8
fix linter error 2025-09-26 17:30:20 -07:00
Henry
e344adfeed
Add autodiscovery for Jellyfin servers (#1146)
* Add autodiscovery for Jellyfin servers

* Remove debugging aids

you didn't see anything

* Fix linter errors

* Send a discovery packet to localhost too
2025-09-26 22:53:19 +00:00
Gabriele Mancini
4f38e16857
Feature: added playlist duration badge (#1130) 2025-09-23 12:45:08 -07:00
Malachi Soord
8a3edb71df
feat: add semantic selectors for now-playing media (#1138)
* feat: add semantic selectors for now-playing media

This change adds unique class names to the elements that display the currently playing media information. This makes it easier for extension developers to parse the DOM and understand what media is playing.

The following classes have been added:
- `media-player`: The main player container.
- `player-cover-art`: The cover art of the playing track.
- `song-title`: The title of the playing track.
- `song-artist`: The artist of the playing track.
- `song-album`: The album of the playing track.
- `player-state-playing`/`player-state-paused`: The state of the player.
- `elapsed-time`: The elapsed time of the playing track.
- `total-duration`: The total duration of the playing track.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-09-23 12:44:22 -07:00
Gabriele Mancini
6abdbd2f3e
Feature: added silent song notification setting (#1129)
* feat: added silent song notification
2025-09-17 21:06:59 -07:00
Kendall Garner
1d46cd5ff9
client-side only sort for all playlists (#1125)
* initial client-side only sort for all playlists

* allow reordering jellyfin (assume it works properly) and navidrome

* on playlist page, add to queue by sort order
2025-09-17 21:06:30 -07:00
jeffvli
ff6dda7b06 prevent width overflow on lyrics container (#1106) 2025-09-10 20:49:15 -07:00
jeffvli
ab8c3ad0ec handle initial rating for multiple items in context menu 2025-09-10 20:32:34 -07:00
Kendall Garner
dc03a432fe
add initial rating when a single item is provided in context menu 2025-09-10 20:20:56 -07:00
Kendall Garner
751ad55d02
remove all node selectors in useClickOutside 2025-09-10 17:49:13 -07:00
Kendall Garner
78dc89303d
show right control rating for subsonic servers 2025-09-10 17:27:07 -07:00
Jeff
618e5d8da8
Merge pull request #1114 from maximelafarie/feature/one-click-context-menu
feat: add context menu on left controls and sidebar image
2025-09-09 19:19:09 -07:00
Jeff
be6ec49cfa
Merge pull request #1107 from mihawk90/now-playing-reformat
cleanup notification text
2025-09-09 19:00:19 -07:00
Maxime LAFARIE
65ecdc7666 feat: add context menu on left controls and sidebar image 2025-09-09 23:38:39 +02:00
Tarulia
da42fd78d2 cleanup notification text 2025-09-08 17:20:03 +02:00
jeffvli
854222d2fa use consistent height calculation for sidebar scrollarea 2025-09-06 18:34:13 -07:00
jeffvli
cd0a8d0fec revert min-height of library header
- causes issues with the positioning of the image at minimum size
2025-09-06 18:25:34 -07:00