Releases: jeffvli/feishin
0.7.1
0.7.1 released to fix missing Windows binary.
Full Changelog: v0.7.0...v0.7.1
0.7.0
0.7.0 is here!
Moving forwards, release notes will be simplified as so. Thanks to all the contributors as always!
Highlights
- (UI) Added
Get Info
button on dropdowns to show extended details for the selected item - (UI) Changed titlebar on light theme to use a lighter color
- (UI) Error page now shows server menu in case to handle cases where application can become stuck
- (UI) Fixed synchronized lyrics not repeating when track is repeated on fullscreen player
- (UI) Added toggle to switch between tracks and albums when double clicking an item in the genres list
- (UI) (Jellyfin) Fixed lyrics parsing for Jellyfin v10.9.0
- (UI) (Navidrome) Adds
Share item
to item context menus - (UI) (Navidrome) Added
inPlaylist
andnotInPlaylist
operators for Navidrome smart playlists - (UI) (Navidrome) Added JSON preview for smart playlist builder output
- (UI) Added Farsi and Chinese (Traditional) languages (thanks to translators!)
- (Desktop) The positioning state of the application is now persisted (maximize, fullscreen, window position)
- (Player) Various fixes/improvements with player implementation including mpris and scrobbling
- ...and more: view commits
What's Changed
- Bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot in #542
- Bump the npm_and_yarn group across 1 directory with 1 update by @dependabot in #551
- Bump the npm_and_yarn group across 1 directory with 1 update by @dependabot in #557
- Bump the npm_and_yarn group across 1 directory with 1 update by @dependabot in #561
- [bugfix]: Resolve MPV next/prev race condition by @kgarner7 in #566
- [bugfix]: Add a fallback image to the dynamic background url by @iiPythonx in #571
- [enhancement]: Show item details by @kgarner7 in #573
- Fix portrait mode detection by @Kaydax in #582
- [enhancement]: Support react-router links in Modal by @kgarner7 in #586
- [enhancement]: Support toggling Album/Track view for gneres by @kgarner7 in #591
- Implement Navidrome sharing by @iiPythonx in #575
- [bugfix]: Handle top-level songs for Jellyfin by @kgarner7 in #553
- Bump ejs from 3.1.9 to 3.1.10 in the npm_and_yarn group across 1 directory by @dependabot in #602
- Fix LrcLib fetcher by @vukanovics in #603
- Allow smaller album covers in card/poster display by @Dylancyclone in #598
- Add new Navidrome smart playlist operators (up to v0.52.0) by @jeffvli in #604
New Contributors
- @Kaydax made their first contribution in #582
- @vukanovics made their first contribution in #603
- @Dylancyclone made their first contribution in #598
Full Changelog: v0.6.1...v0.7.0
0.6.1
0.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 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 (#526) (Thanks @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 (#437) (Thanks @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 (#449) (Thanks @SlyFabi)
- Properly set native titlebar on macOS (#209) (Thanks @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 (#470) (Thanks @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 @mihawk90 in #430
- Update scrobble-settings.tsx by @salguerooo in #440
- Use startIndex in Jellyfin getPlaylistSongList by @SlyFabi in #449
- Improve the playback speed control by @marksdestiny in #437
- Bump axios from 1.5.1 to 1.6.0 by @dependabot in #459
- Bump zod from 3.21.4 to 3.22.3 by @dependabot in #460
- Bump @babel/traverse from 7.22.19 to 7.23.7 by @dependabot in #462
- Bump postcss from 8.4.27 to 8.4.33 by @dependabot in #463
- Bump electron from 25.3.0 to 25.8.4 in /release/app by @dependabot in #464
- Bump follow-redirects from 1.15.2 to 1.15.5 by @dependabot in #461
- Fixed incorrect label for album sort by release date by @rappo in #458
- Add frame to macOS native window bar by @jeffvli in #209
- [bugfix]: defer restore queue until mpv exists by @kgarner7 in #435
- [bugfix]: Validate audio sample range, catch AudioContext error by @kgarner7 in #470
- [bugfix]: Fix add to playlist success message by @kgarner7 in #473
- [bugfix]: Fix safari audio context by @kgarner7 in #471
- [enhancement]: support clearing query and http cache by @kgarner7 in #475
- [bugfix]: Fix repeated track scrobbling by @kgarner7 in #480
- [feature]: Show album comment, Last.fm/MusicBrainz links by @kgarner7 in #450
- [bugfix/enhancement] Order artist's Top Songs by play count by @lymnyx in #487
- [enhancement] Add a button size setting by @iiPythonx in #486
- [bugfix] Fix global hotkeys not working on startup by @iiPythonx in #488
- [bugfix] Fixes route of most played songs on home page by @lymnyx in #489
- [bugfix/enhancement] Fixes german translations being sentence-case by @lymnyx in #491
- [bugfix]: default go libsecret, support changing secret store by @kgarner7 in #493
- Bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot in #500
- [enhancement]: Audio player enhancements by @kgarner7 in #501
- [bugfix/enhancement]: Support Navidrome structured lyrics by @kgarner7 in #484
- [enhancement]: support reordering homepage by @kgarner7 in #494
- Image Resolution Setting by @darkpixlz in #492
- [bugfix]: Macos trusted accessibility by @kgarner7 in #512
- Bump the npm_and_yarn group across 2 directories with 1 update by @dependabot in #521
- [enhancement]: Start minimized by @kgarner7 in #522
- Add a pre-defined server for the docker version by @Kakoluz in #413
- [enhancement]: Better version checks by @kgarner7 in #514
- [bugfix]: Check for Navidrome authentication on startup by @kgarner7 in #510
- [enhancement]: Differentiate shared and owner playlists for Navidrome by @kgarner7 in #517
- [enhancement]: Make related tab on full screen player useful by @kgarner7 in #519
- [enhancements]: fix carousel, full screen metadata improvements by @kgarner7 in #524
- [feat] Add a dynamic image option to the fullscreen player by @iiPythonx in #526
- [enhancement]: better version checks for lyrics, Navidrome by @kgarner7 in #529
New Contributors
- @mihawk90 made their first contribution in #430
- @salguerooo made their first contribution in #440
- @SlyFabi made their first contribution in #449
- @marksdestiny made their first contribution in #437
- @dependabot made their first contribution in #459
- @rappo made their first contribution in #458
- @lymnyx made their first contribution in #487
- @darkpixlz made their first contribution in #492
Full Changelog: v0.5.3...v0.6.0
0.5.3
Small release to fix a few things. Also added arm64 AppImage.
What's Changed
- Fix setting of replaygain fallback by @kgarner7 in #390
- Fix 'undefined' in window title when song has no artist name by @mcneb10 in #402
- [bugfix]: fix playDate parsing for navidrome unstable by @kgarner7 in #408
New Contributors
Full Changelog: v0.5.2...v0.5.3
0.5.2
Just pushing a few fixes.
Added
- Translations (status)
Fixed
- Fixed app potentially opening multiple instances (#385)
- Fixed discord rich presence not displaying if song does not have an artist (#359) (Thanks @Trapigtrogen)
- Fixed incorrect translation text in album page (#376) (Thanks @kgarner7)
Other
- Bumped electron from v25 -> v27
0.5.1
Fixing a few things, and thanks to everyone who contributed to translations!
Added
- Translations (status)
- Spanish
- German
- Italian
- Russian
- Portugese
- French
- Japanese
- Polish
- Chinese (simplified)
Changed
- Increased sidebar image resolution from 300x300 to 500x500
- (Jellyfin) "Most Played" on home page now displays songs instead of albums
Fixed
- Fixed translation keys:
- Player pause button
- Fullscreen player tabs
- Fullscreen player configuration
- List filters
- Fixed opacity in full screen player right section
- Fixed custom font path triggering error in settings page when set in macOS (#343) (Thanks @kgarner7)
- Fixed text shadow styles on full screen player when using light themes
What's Changed
Full Changelog: v0.5.0...v0.5.1
0.5.0
0.5.0 is here!
This release introduces localization (multi-language) support which is now hosted on weblate. Visit the link if you would like to contribute a translation.
Known issues: There's a couple bugs on the full screen player in 0.5.0 regarding opacity and the translation keys. They're already fixed, but going to wait a bit to see if there are any other bugs that need fixing before pushing 0.5.1.
Added
- Added localization support via weblate (#74)
- Added discord rich presence (#72)
- Added
amd64
,arm64
, andarmv7
Docker images (#336) (Thanks @bubylou) - Added animated play indicator to currently playing track (#237) (Thanks @kgarner7)
- Added
PUBLIC_PATH
Docker environment variable to allow customizing the path Feishin is served from (#307) (Thanks @kgarner7) - Added system and custom font support (#270, #288) (Thanks @kgarner7)
- Added customizable primary accent color (#282) (Thanks @kgarner7)
- Added customizable playback speed (#94) (Thanks @kgarner7)
- Added additional hotkeys (#326) (Thanks @GermanDarknes)
- Favorite/unfavorite current song
- Favorite/unfavorite previous song
Changed
- Changed
Rating
component functionality from [double click to clear] -> [click on the same rating to clear] (#332) (Thanks @kgarner7) - (Jellyfin) Change hardcoded Jellyfin DeviceID values to include hostname and username (#312) (Thanks @LilyRose2798)
- Fullscreen player now uses dynamic image resolution based on window size (#290) (Thanks @TacoCake)
- Poster carousel now resets to initial position on data refresh (#285) (Thanks @kgarner7)
- (Navidrome) Artist images are now always attmepted to be fetched even when it is potentially unvailable (#317) (Thanks @kgarner7)
- Window title now displays
SONG_NAME — ARTIST_NAME
instead ofSONG_NAME
Fixed
- (MPV player) Fixed MPV playing the same track twice after toggling repeat (#292) (Thanks @kgarner7)
- (WEB player) Fixed queue not pausing on the last track when repeat is disabled (#291)
- (Navidrome) Fixed artist year filter becoming stuck (#299) (Thanks @kgarner7)
- (Navidrome) Fixed smart playlist query editor unable to scroll (#322)
- (Jellyfin) Fixed playing songs from global search menu (#294) (Thanks @kgarner7)
- (Jellyfin) Fixed playlist fetch implementation (reverted to previous)
- (Jellyfin) Fixed missing
Play count
filter on Jellyfin album sort - (Jellyfin) Fixed "edit playlist" form not working due to invalid fetch (#327)
- Removed unused CORS and SSL toggle from web UI (#305) (Thanks @kgarner7)
- Fixed add to playlist logic when attempting to skip duplicates (#300) (Thanks @kgarner7)
- Fixed current track queue position when removing songs from the queue (#226) (Thanks @kgarner7)
- Fixed
rate 0
hotkey not working (#338) (Thanks @GermanDarknes)
Full Changelog: v0.4.0...v0.4.1
What's Changed
- [bugfix]: Fix MPV player playing the same track twice after toggling repeat by @kgarner7 in #292
- [bugfix]: fix artist discography year filter not clearing by @kgarner7 in #299
- [bugfix]: Replace hardcoded Jellyfin authentication DeviceId to include hostname and username by @LilyRose2798 in #312
- [bugfix]: remove ignore CORS/SSL switches from web version by @kgarner7 in #305
- In the fullscreen player use dynamic resolution for the main image by @TacoCake in #290
- [bugfix]: properly implement Jellyfin getSongDetail by @kgarner7 in #298
- [bugfix]: do not duplicate tracks when adding to multiple playlists by @kgarner7 in #300
- [feature]: support running feishin on custom path by @kgarner7 in #307
- Reset Carousel position on data refresh by @kgarner7 in #303
- [Remote] Full PWA support, misc bugfixes by @kgarner7 in #280
- add more emphasis to current song by @kgarner7 in #283
- [bugfix]: fix queue offset when removing tracks by @kgarner7 in #301
- [feature]: Support using system fonts by @kgarner7 in #304
- [bugfix/feat]: always fetch artist image for Navidrome by @kgarner7 in #317
- [Feature] Support changing accent/primary color by @kgarner7 in #282
- Support changing playback rate by @kgarner7 in #275
- Add favorite hotkey options by @GermanDarknes in #326
- [bugfix/feature]: Improve ratings by @kgarner7 in #332
- [bugfix]: prevent default by @kgarner7 in #334
- Build docker container for arm by @bubylou in #336
- Fix clear rating hotkey by @GermanDarknes in #338
- Add localization support by @jeffvli in #333
New Contributors
- @LilyRose2798 made their first contribution in #312
- @TacoCake made their first contribution in #290
- @GermanDarknes made their first contribution in #326
- @bubylou made their first contribution in #336
Full Changelog: v0.4.1...v0.5.0
0.4.1
Small release to fix some issues.
Fixed
- Fixed issue with incorrect duration conversion causing some scrobbles to fail (#277) (Thanks @kgarner7)
- Fixed last song in the queue not scrobbling (#207)
- (Jellyfin) Fixed unsynchronized lyrics only displaying the first line (#279) (Thanks @kgarner7)
- Fix app menu quit button functionality not working when exit to tray is enabled (#184)
- Fixed Tracks list page not refreshing on search when using grid view
- Fixed playback not automatically continuing to the second song in the queue when starting playback from a fresh restart
- Fixed opacity on unsynchronized lyrics container
Removed
- Removed fade animations on navigation
What's Changed
- Fix Jellyfin unsynchronized lyrics only showing first line by @kgarner7 in #279
- fix scrobble durations by @kgarner7 in #269
Full Changelog: v0.4.0...v0.4.1
0.4.0
0.4.0 is here! Thank you to all the contributors who helped with this release!
Jellyfin - Jellyfin users will need to update to a minimum of server version v10.9.0 for proper playlist support.
Feishin now has an official docker image which deploys the web version of app.
The roadmap is the same as the previous release -- localization support, additional server compatability, and anything else I can think of along the way.
Added
- Fixed missing images from related artists carousel (#213)
- Added opacity slider for full-screen player queue and lyrics sections (#231) (Thanks @kgarner7)
- Added dedicated refresh buttons to all list views (#235)
- Added
Poster
andCard
views for theTracks
list page (#128) - Added ReplayGain support for
Web
player (#243) (Thanks @kgarner7) - Added Docker (web) support (#245) (Thanks @Kakoluz)
- Added navigation buttons to the collapsed sidebar (#203)
- Added disc subtitle display on the album view (#217)
- Added hotkeys for browser forward/back (#155)
- Added hotkeys to rate the current song (#208)
- Added quit button tot he main menu (#184)
- Added
song count
column to the album table view - (Jellyfin) Improved client detection (application type) on Jellyfin scrobble (#229) (Thanks @Kakoluz)
Changed
- Changed default application logo -- squared corners and white background
- Reverted library headers to display 2 lines instead of 1 (#215)
- The list-view
Note
field now parses URLs to be clickable (#154)
Fixed
- Fixed regex causing last lyric line to be omitted (#240) (Thanks @kgarner7)
- Fixed MPV playback not starting on the first song on startup (#210)
- Fixed inaccurate duration values for various media types (#205)
- Fixed potential MPV initialization errors due to local user configuration (#234, #242) (Thanks @iiPythonx)
- Fixed missing drag area on header when using
Web (hidden)
window bar style (#206) - Various improvements/fixes when restoring the queue (#222) (Thanks @kgarner7)
- (Remote) Various fixes to the web remote player (#259, #260) (Thanks @kgarner7)
- (Jellyfin) Fixed issue where certain playlist API fetch would require you to re-add the server
- (Jellyfin) Fixed song list filter being locked in certain states (#223)
- (Jellyfin) Allow user to re-authenticate to an existing server when receiving 401 unauthorized status (#214)
Other
- (Security) Bumped Electron from v25.3.0 -> v25.8.1
What's Changed
- Improve MPV initialization and restore by @kgarner7 in #222
- improved client detection by @Kakoluz in #229
- Add transparency/opacity for queue sidebar by @kgarner7 in #231
- Adjust quarantine bit warning wording to include all Macs running 12+ by @nathan-contino in #236
- [bugfix]: support final lyric with no newline by @kgarner7 in #240
- always call autoNext, even if not used by @kgarner7 in #241
- fix other places of duration display (and other minor fixes) by @kgarner7 in #249
- Prevent MPV from loading user config/scripts (#234 & #242) by @iiPythonx in #247
- Invalidate playlist song list on update by @kgarner7 in #248
- Added docker image build script by @Kakoluz in #245
- Replaygain support for Web Player by @kgarner7 in #243
- special socket for dev; defer to default otherwise by @kgarner7 in #258
- [Remote] Fix Favicon, Support auth on ios by @kgarner7 in #259
- [Remote] Actually fix auth by @kgarner7 in #260
New Contributors
- @Kakoluz made their first contribution in #229
- @nathan-contino made their first contribution in #236
- @iiPythonx made their first contribution in #247
Full Changelog: v0.3.0...v0.4.0