Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bugfix/enhancement]: Support Navidrome structured lyrics #484

Merged
merged 4 commits into from
Feb 14, 2024

Conversation

kgarner7
Copy link
Collaborator

@kgarner7 kgarner7 commented Feb 2, 2024

This PR provides support for OpenSubsonic structured lyrics (Navidrome >= 0.51.0), and also stores server version/features.

Changes:

  • useServerVersion(): fetches server version on open, and when changed. This is essential for OS clients to know what features are supported
  • useSongLyricsBySong(): now supports fetching from OS to retrieve all structured lyrics. If multiple lyrics are shown, a select is available

Notes:

  • offset is currently not used (of note, it has the opposite meaning to what Feishin does)
  • could probably have a better interface for language selection?
  • Older versions of Navidrome should still be supported

@kgarner7 kgarner7 added bug Something isn't working enhancement New feature or request labels Feb 2, 2024
@kgarner7 kgarner7 requested a review from jeffvli February 2, 2024 08:03
Copy link

vercel bot commented Feb 2, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
feishin ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 4, 2024 5:24am

src/renderer/api/jellyfin/jellyfin-controller.ts Outdated Show resolved Hide resolved
src/renderer/api/subsonic/subsonic-controller.ts Outdated Show resolved Hide resolved
@kgarner7
Copy link
Collaborator Author

kgarner7 commented Feb 4, 2024

Also resolves #311 with newest change

@kgarner7 kgarner7 linked an issue Feb 4, 2024 that may be closed by this pull request
@jeffvli jeffvli merged commit 83d5fee into jeffvli:development Feb 14, 2024
3 checks passed
spiceratops referenced this pull request in spiceratops/k8s-gitops Mar 16, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/jeffvli/feishin](https://github.com/jeffvli/feishin) |
minor | `0.5.3` -> `0.6.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>jeffvli/feishin (ghcr.io/jeffvli/feishin)</summary>

###
[`v0.6.1`](https://github.com/jeffvli/feishin/releases/tag/v0.6.1):
0.6.1

[Compare
Source](https://github.com/jeffvli/feishin/compare/v0.6.0...v0.6.1)

##### Fixed

- (Navidrome) Fixed application becoming stuck when Navidrome credential
session times
out ([#&#8203;538](https://github.com/jeffvli/feishin/issues/538))

##### Other

- Downgraded from Electron v27 to v26 to restore compatibility with
macOS 10.13 and 10.14
([#&#8203;534](https://github.com/jeffvli/feishin/issues/534))

###
[`v0.6.0`](https://github.com/jeffvli/feishin/releases/tag/v0.6.0):
0.6.0

[Compare
Source](https://github.com/jeffvli/feishin/compare/v0.5.3...v0.6.0)

0.6.0 is here!

Due to the large number of updates in this version, there may be
undocumented changes that are not listed here.

##### Docker

Added a way for a static server to be configured for the dockerized
version of Feishin. Check the [docker
compose](https://github.com/jeffvli/feishin/blob/development/docker-compose.yaml)
for new environment variables configuration.

#### Added

-   URLs in the `Note` column are now formatted as links
- External resource (last.fm, musicbrainz) links are now optionally
displayed on the album and artist pages
-   Album pages now show description if available
- Added dynamic image background option in fullscreen player
([#&#8203;526](https://github.com/jeffvli/feishin/issues/526)) (Thanks
[@&#8203;iiPythonx](https://github.com/iiPythonx))
-   Added additional `mpris` metadata fields
    -   audioBpm
    -   comment
    -   contentCreated
    -   lastUsed
    -   userRating
- Added options to clear the Feishin HTTP and Query cache to clear
stored lyrics
-   Added related songs to the `Related` tab on the fullscreen player
-   Added `codec` column for song lists
-   Added option to start app as minimized

#### Changed

- Playback speed control is now a slider instead of a selection
([#&#8203;437](https://github.com/jeffvli/feishin/issues/437)) (Thanks
[@&#8203;marksdestiny](https://github.com/marksdestiny))
-   Web player is now the default instead of MPV
- (Jellyfin) Adding a jellyfin server now allows for an empty password
field
-   Default hotkey for play/pause toggle set to SPACEBAR
-   Changed icon for `Play Random` on the player bar

#### Fixed

- (Jellyfin) Fixed getPlaylistSongList endpoint only returning the first
300 songs
([#&#8203;449](https://github.com/jeffvli/feishin/issues/449)) (Thanks
[@&#8203;SlyFabi](https://github.com/SlyFabi))
- Properly set native titlebar on macOS
([#&#8203;209](https://github.com/jeffvli/feishin/issues/209)) (Thanks
[@&#8203;kgarner7](https://github.com/kgarner7))
-   Fixed long artist page descriptions not being truncated
- Fixed playback when SHUFFLE and REPEAT ONE is enabled and there is
only one track in the queue
- (MPV) Fixed audio sample rate value on startup
([#&#8203;470](https://github.com/jeffvli/feishin/issues/470)) (Thanks
[@&#8203;kgarner7](https://github.com/kgarner7))
-   Player buttons are now disabled when the queue is empty
- Fixed play queue scroll position changing when app window focus
changes
-   Fixed scrobbling condition when a song is repeated
-   Fixed volume when set by MPRIS
-   Fixed player index being offset by 1 when restoring queue on startup
-   Various translation fixes

#### What's Changed

- AppImage: Set proper categories on desktop entry by
[@&#8203;mihawk90](https://github.com/mihawk90) in
[https://github.com/jeffvli/feishin/pull/430](https://github.com/jeffvli/feishin/pull/430)
- Update scrobble-settings.tsx by
[@&#8203;salguerooo](https://github.com/salguerooo) in
[https://github.com/jeffvli/feishin/pull/440](https://github.com/jeffvli/feishin/pull/440)
- Use startIndex in Jellyfin getPlaylistSongList by
[@&#8203;SlyFabi](https://github.com/SlyFabi) in
[https://github.com/jeffvli/feishin/pull/449](https://github.com/jeffvli/feishin/pull/449)
- Improve the playback speed control by
[@&#8203;marksdestiny](https://github.com/marksdestiny) in
[https://github.com/jeffvli/feishin/pull/437](https://github.com/jeffvli/feishin/pull/437)
- Bump axios from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/459](https://github.com/jeffvli/feishin/pull/459)
- Bump zod from 3.21.4 to 3.22.3 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/460](https://github.com/jeffvli/feishin/pull/460)
- Bump [@&#8203;babel/traverse](https://github.com/babel/traverse)
from 7.22.19 to 7.23.7 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/462](https://github.com/jeffvli/feishin/pull/462)
- Bump postcss from 8.4.27 to 8.4.33 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/463](https://github.com/jeffvli/feishin/pull/463)
- Bump electron from 25.3.0 to 25.8.4 in /release/app by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/464](https://github.com/jeffvli/feishin/pull/464)
- Bump follow-redirects from 1.15.2 to 1.15.5 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/461](https://github.com/jeffvli/feishin/pull/461)
- Fixed incorrect label for album sort by release date by
[@&#8203;rappo](https://github.com/rappo) in
[https://github.com/jeffvli/feishin/pull/458](https://github.com/jeffvli/feishin/pull/458)
- Add frame to macOS native window bar by
[@&#8203;jeffvli](https://github.com/jeffvli) in
[https://github.com/jeffvli/feishin/pull/209](https://github.com/jeffvli/feishin/pull/209)
- \[bugfix]: defer restore queue until mpv exists by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/435](https://github.com/jeffvli/feishin/pull/435)
- \[bugfix]: Validate audio sample range, catch AudioContext error by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/470](https://github.com/jeffvli/feishin/pull/470)
- \[bugfix]: Fix add to playlist success message by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/473](https://github.com/jeffvli/feishin/pull/473)
- \[bugfix]: Fix safari audio context by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/471](https://github.com/jeffvli/feishin/pull/471)
- \[enhancement]: support clearing query and http cache by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/475](https://github.com/jeffvli/feishin/pull/475)
- \[bugfix]: Fix repeated track scrobbling by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/480](https://github.com/jeffvli/feishin/pull/480)
- \[feature]: Show album comment, Last.fm/MusicBrainz links by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/450](https://github.com/jeffvli/feishin/pull/450)
- \[bugfix/enhancement] Order artist's Top Songs by play count by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/487](https://github.com/jeffvli/feishin/pull/487)
- \[enhancement] Add a button size setting by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/486](https://github.com/jeffvli/feishin/pull/486)
- \[bugfix] Fix global hotkeys not working on startup by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/488](https://github.com/jeffvli/feishin/pull/488)
- \[bugfix] Fixes route of most played songs on home page by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/489](https://github.com/jeffvli/feishin/pull/489)
- \[bugfix/enhancement] Fixes german translations being sentence-case by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/491](https://github.com/jeffvli/feishin/pull/491)
- \[bugfix]: default go libsecret, support changing secret store by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/493](https://github.com/jeffvli/feishin/pull/493)
- Bump the npm_and_yarn group across 2 directories with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/500](https://github.com/jeffvli/feishin/pull/500)
- \[enhancement]: Audio player enhancements by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/501](https://github.com/jeffvli/feishin/pull/501)
- \[bugfix/enhancement]: Support Navidrome structured lyrics by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/484](https://github.com/jeffvli/feishin/pull/484)
- \[enhancement]: support reordering homepage by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/494](https://github.com/jeffvli/feishin/pull/494)
- Image Resolution Setting by
[@&#8203;darkpixlz](https://github.com/darkpixlz) in
[https://github.com/jeffvli/feishin/pull/492](https://github.com/jeffvli/feishin/pull/492)
- \[bugfix]: Macos trusted accessibility by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/512](https://github.com/jeffvli/feishin/pull/512)
- Bump the npm_and_yarn group across 2 directories with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/521](https://github.com/jeffvli/feishin/pull/521)
- \[enhancement]: Start minimized by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/522](https://github.com/jeffvli/feishin/pull/522)
- Add a pre-defined server for the docker version by
[@&#8203;Kakoluz](https://github.com/Kakoluz) in
[https://github.com/jeffvli/feishin/pull/413](https://github.com/jeffvli/feishin/pull/413)
- \[enhancement]: Better version checks by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/514](https://github.com/jeffvli/feishin/pull/514)
- \[bugfix]: Check for Navidrome authentication on startup by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/510](https://github.com/jeffvli/feishin/pull/510)
- \[enhancement]: Differentiate shared and owner playlists for Navidrome
by [@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/517](https://github.com/jeffvli/feishin/pull/517)
- \[enhancement]: Make related tab on full screen player useful by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/519](https://github.com/jeffvli/feishin/pull/519)
- \[enhancements]: fix carousel, full screen metadata improvements by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/524](https://github.com/jeffvli/feishin/pull/524)
- \[feat] Add a dynamic image option to the fullscreen player by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/526](https://github.com/jeffvli/feishin/pull/526)
- \[enhancement]: better version checks for lyrics, Navidrome by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/529](https://github.com/jeffvli/feishin/pull/529)

#### New Contributors

- [@&#8203;mihawk90](https://github.com/mihawk90) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/430](https://github.com/jeffvli/feishin/pull/430)
- [@&#8203;salguerooo](https://github.com/salguerooo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/440](https://github.com/jeffvli/feishin/pull/440)
- [@&#8203;SlyFabi](https://github.com/SlyFabi) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/449](https://github.com/jeffvli/feishin/pull/449)
- [@&#8203;marksdestiny](https://github.com/marksdestiny) made their
first contribution in
[https://github.com/jeffvli/feishin/pull/437](https://github.com/jeffvli/feishin/pull/437)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/459](https://github.com/jeffvli/feishin/pull/459)
- [@&#8203;rappo](https://github.com/rappo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/458](https://github.com/jeffvli/feishin/pull/458)
- [@&#8203;lymnyx](https://github.com/lymnyx) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/487](https://github.com/jeffvli/feishin/pull/487)
- [@&#8203;darkpixlz](https://github.com/darkpixlz) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/492](https://github.com/jeffvli/feishin/pull/492)

**Full Changelog**:
jeffvli/feishin@v0.5.3...v0.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI0MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Embedded lyrics show gibberish No playlists in "Add to Playlist" dialog
2 participants