Commit graph

147 commits

Author SHA1 Message Date
Kendall Garner
14086ebc9c
improve similar items fallback, make ND album artist for song actually album artist, fix full screen race 2024-04-08 08:49:55 -07:00
iiPython
f7c6088cca
add a fallback image to the dynamic background url 2024-04-02 12:58:26 -05:00
Kendall Garner
65eca32de3
[bugfix]: do not update mpris status unnecessarily 2024-04-02 08:46:38 -07:00
Kendall Garner
ab17ba8add
[bugfix]: fix scrobble race conditions 2024-04-01 22:13:06 -07:00
Kendall Garner
65b045df03
[bugfix]: Resolve MPV next/prev race condition
Resolves #536.

With the previous implementation, next/previous would first update
the current queue and then call next/previous. However, since these were
asynchronous calls it was very likely that the second calls would fail
(and a test of adding delay showed that it actually caused a double skip).
This PR resolves this by just removing the prev/next.

Small other fixes:
- setQueue + pause -> setQueue(..., true)
- make MPV and web player have the same behavior for (pause/stop) where appropriate
2024-03-30 21:48:09 -07:00
jeffvli
e7b2f30718 Replace songId with albumId on dynamic image check 2024-03-05 00:45:45 -08:00
Benjamin
d52d9136b8
[feat] Add a dynamic image option to the fullscreen player (#526)
* Add an option for a dynamic background image in the fullscreen player

* Center the background image and fix some more bugs

* More cleaning up the background image

* Add option for customizable blur amount

* Fix missing translation key for image blur

* Fix dynamic image shifting when player is opened

* Hide image blur size config if dynamic background is disabled

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2024-03-05 00:30:37 -08:00
Kendall Garner
a45e7f24e4
[enhancements]: fix carousel, full screen metadata improvements (#524)
* fix carousel, full screen metadata improvements

* Add missing mapped keys on multiple artist

* Remove bg opacity on metadata section

* Improve visibility of currently playing song

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2024-03-04 18:53:00 -08:00
Jeff
132b0e173f
Merge branch 'development' into related-similar-songs 2024-03-04 05:04:54 -08:00
Jeff
cc6cad1d70
Merge branch 'development' into navidrome-version 2024-03-04 01:49:13 -08:00
Kendall Garner
f50d1e0a8c
support opacity 0, spellcheck 2024-03-01 19:54:30 -08:00
Kendall Garner
94b649fefe
don't transform artist/album for fullscreen player 2024-02-26 22:47:17 -08:00
Kendall Garner
12d0eca2dd
remember that current song can be an object 2024-02-19 10:27:00 -08:00
Kendall Garner
f81bea339b
don't pass song all the way down 2024-02-19 09:55:37 -08:00
Kendall Garner
025124c379
[enhancement]: Make related tab on full screen player useful
Resolves #50. Adds a new set of components for fetching similar songs
from the current playing song. For Jellyfin, use the `/items/{itemId}/similar`
endpoint (may not work well for small libraries), and for Navidrome/Subsonic
use `getSimilarSongs`. _In theory_, this component can be used to get similar
songs anywhere.
2024-02-19 08:53:50 -08:00
Kendall Garner
dae2f9bd0a
[feat]: actually include version checks 2024-02-17 00:57:10 -08:00
jeffvli
9a43ea0e4a Attempt to fix player unresponsive on first start 2024-02-16 22:12:28 -08:00
darkpixlz
6e677d7454
Image Resolution Setting (#492)
* Add customizable resolution for the fullscreen player image

---------

Co-authored-by: iiPython <ben@iipython.dev>
Co-authored-by: Benjamin <iipython@proton.me>
2024-02-13 18:00:59 -08:00
Jeff
eab11658bb
Merge pull request #501 from kgarner7/allow-no-mpv
- OOBE default to web player
- Allow mpv to run using PATH env
- Add improved mpv error logging
- Add web player fallback on mpv error
2024-02-13 16:16:01 -08:00
jeffvli
9b0c9ba3ac Fallback to web player if mpv fails to run 2024-02-13 02:05:59 -08:00
Kendall Garner
e6b01d4e2b
[bugfix]: set MPV queue when now or queue is empty 2024-02-13 00:04:28 -08:00
Kendall Garner
ae8fc6df13
[bugfix]: improve play behavior
- when adding songs to queue, only `play()` if the queue was empty
- when adding next/last to empty queue, behavior should be same as now
2024-02-10 00:38:21 -08:00
Benjamin
86a93866d0
[enhancement] Add a button size setting (#486)
* Add a button size setting

* Reduce setting size and add px suffix

* Looks like I don't need || inside of control-settings

* Update translation

* Bump settings version to 7
2024-02-03 21:22:26 +00:00
Kendall Garner
efa0d9ec35
[enhancement]: larger player buttons, clearer random icon 2024-02-01 20:59:00 -08:00
Kendall Garner
eff1cee6a3
[bugfix]: Fix repeated track scrobbling (#480)
* [bugfix]: Fix repeated track scrobbling

This commit fixes scrobbling tracks that are repeated in the queue (either due
to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:

1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback
finishes normally, so this is a sort of epoch that can be used to detect both repeat one
and track being enqueued multiple times.
2. The current index changes. The player gets set back to 1 in a variety of cases (most often
previous/next), so the check in (1) is not enough. However, the index changing will help identify
that this is a new song.

* use unique id instead
2024-02-01 04:12:39 +00:00
Kendall Garner
5cc2276781
[bugfix]: web player edge cases
Two bugs addressed in response to Safari changes:
1. Only handle `onEnded` for real streams, preventing `autoNext()` spam when the last track finishes
2. `.play()` is not necessarily a safe operation (if empty wave was started, can cause exception later). Catch this exception and discard it. This also only occurred when playing the last track
2024-01-28 01:50:51 -08:00
Kendall Garner
f467a85a86
[bugfix]: use proper language key for lyrics size 2024-01-27 10:07:10 -08:00
Kendall Garner
527e6a76b5
[bugfix]: disable play button when queue is empty 2024-01-24 21:35:58 -08:00
marksdestiny
372b96a349
Improve the playback speed control (#437)
* Change playback speed selector to slider

* Improve playback speed bar

Display BPM
Improve style
Add markers

* Improve playback speed slider style
2024-01-21 20:06:46 -08:00
jeffvli
d517afdfd3 Set fullscreen player text shadow to css var 2023-11-01 04:00:58 -07:00
jeffvli
9756ed2d27 Fix translation key 2023-10-31 22:03:48 -07:00
jeffvli
401912a70c Fix translation keys on full screen player 2023-10-31 04:17:15 -07:00
jeffvli
cd3ec158d3 Fix opacity on fullscreen player queue 2023-10-31 04:16:46 -07:00
Jeff
8430b1ec95
Add localization support (#333)
* Add updated i18n config and en locale
2023-10-30 19:22:45 -07:00
Martin Pauli
11863fd4c1
Fix clear rating hotkey (#338) 2023-10-30 18:50:48 -07:00
Kendall Garner
4ec981df83
[bugfix/feature]: Improve ratings (#332)
* [bugfix/feature]: Improve ratings

Fix: add preventDefault/stopPropagation to prevent scrolling to top in queue
Feat: instead of double click for clear, click on same value
2023-10-28 20:00:01 -07:00
Martin Pauli
7a580c2c65
Add favorite hotkey options (#326)
* Add favorite hotkey options

* Update wording

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2023-10-27 18:22:16 -07:00
Kendall Garner
2664a80851
Support changing playback rate (#275)
* initial idea for playback rate

* Add transparency to dropdown

* Move playback speed component to right controls

* Set mpv speed on startup

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2023-10-22 17:47:44 -07:00
TacoCake
c7aa5d09c9
In the fullscreen player use dynamic resolution for the main image (#290)
* In the fullscreen player use dynamic resolution for the main image

* Use ceil instead of round

* Add types and lint

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2023-10-17 06:47:50 -07:00
Kendall Garner
f6667a39a0
fix toggle replay (#292) 2023-10-17 05:49:29 -07:00
jeffvli
cca6fa21db Adjust scrobble duration to check in ms 2023-10-05 22:11:48 -07:00
Kendall Garner
6bac172bbe
fix scrobble durations (#269)
* fix scrobble durations

* Fix scrobble condition on last song in queue, normalize ms

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2023-10-05 21:45:47 -07:00
jeffvli
571ea3c653 Add rating hotkeys (#208) 2023-09-23 03:20:04 -07:00
jeffvli
1a87adb728 Fix transient props for styled-components v6 2023-09-22 02:34:57 -07:00
jeffvli
51be0153d3 Adjust fullscreen player styles
- Remove opacity on metadata section
- Add text shadow to metadata text
- Add padding under title
- Uppercase artists and album name
2023-09-21 17:35:22 -07:00
Kendall Garner
6e62448b88
fix other places of duration display (and other minor fixes) (#249)
* fix other places of duration display

* add back comma

* add max-width for image
2023-09-20 16:07:40 -07:00
jeffvli
ec457d5125 Lint files based on updated rules 2023-09-15 20:42:38 -07:00
jeffvli
2defa5cc13 Fix seek slider from duration normalizations 2023-09-15 19:31:34 -07:00
jeffvli
153d8ce6ce Fix nd/jf duration normalizations 2023-09-15 16:52:14 -07:00
Kendall Garner
1badecc20a
always call autoNext, even if not used (#241) 2023-09-10 15:08:48 -07:00