Deluan Quintão
1edcad46cc
Merge branch 'master' into kwg43w-codex/implement-starred/loved-playlists-functionality
2025-06-04 20:47:44 -04:00
Deluan Quintão
4172d2332a
feat(ui): add song Love and Rating functionality to playlist view ( #4134 )
...
* feat(ui): add playlist track love button
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): add star rating feature for playlist tracks
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): handle loading state and error logging in toggle love and rating components
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-04 20:38:28 -04:00
Deluan Quintão
ee8ef661c3
fix(ui): update audio title link to include playlist support ( #4175 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-04 18:52:18 -04:00
Deluan Quintão
e3527f9c00
fix(subsonic): fix JukeboxRole logic in GetUser and eliminate code duplication ( #4170 )
...
- Fix GetUser JukeboxRole to properly respect AdminOnly setting
- Extract buildUserResponse helper to eliminate duplication between GetUser and GetUsers
- Fix username field inconsistency (GetUsers was using loggedUser.Name instead of UserName)
- Add comprehensive tests covering jukebox role permissions and consistency between methods
Fixes #4160
2025-06-02 21:34:43 -04:00
Patrick O'Shea
a79e05b648
fix(jukebox): jukebox mode doesn't include MusicFolder ( #4067 )
...
* fix(configuration.go, mpv.go): Jukebox mode doesn't include MusicFolder in mpv command - #4066
The call to createMPVCommand is not including the MusicFolder path in
mpv command causing it to fail with file not found errors.
Updated default command template and createMPVCommand to use additional
substitution with conf.server.MusicFolder
Signed-off-by: Pat <patso.oshea@gmail.com>
* Revert config.go change, use filepath.Join for cross platform
* Update track.go with mf.AbsolutePath()
---------
Signed-off-by: Pat <patso.oshea@gmail.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-06-02 21:02:26 -04:00
Deluan Quintão
011f5891c3
fix(jukebox): fix mpv command and template parsing ( #4162 )
...
* test(mpv): add unit tests for MPV command generation and execution
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(mpv): improve command template parsing
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(mpv): update mock script to output arguments to stdout instead of a file
Signed-off-by: Deluan <deluan@navidrome.org>
* test(mpv): add test suite for MPV command functionality
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(mpv): improve MPV command template parsing to handle quoted arguments
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(mpv): simplify MPV command check by removing unnecessary string containment
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(mpv): add error handling for empty command arguments and malformed templates
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-02 20:52:05 -04:00
Kendall Garner
b79e84a535
fix(scanner): update prometheus at the end of the scan ( #4163 )
...
* fix(scannner): use prometheus instance over noop if configured properly
* Real Fix: move `WriteAfterScanMetrics` outside gofunc
* refactor: remove unused artwork.CacheWarmer param from CallScan function
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-06-02 20:13:54 -04:00
Deluan
ac966d98a9
fix(ui): improve layout and responsiveness of SelectPlaylistInput component
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-02 12:28:04 -04:00
Deluan
9c4af3c6d0
fix(server): don't override /song routes
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-01 14:41:50 -04:00
Deluan
f5aac7af0d
fix(ui): make the height of the AddToPlaylistDialog static.
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-06-01 12:00:23 -04:00
Deluan Quintão
36ed2f2f58
refactor: simplify configuration endpoint with JSON serialization ( #4159 )
...
* refactor(config): reorganize configuration handling
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor(aboutUtils): improve array formatting and handling in TOML conversion
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor(aboutUtils): add escapeTomlKey function to handle special characters in TOML keys
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(test): remove unused getNestedValue function
* fix(ui): apply prettier formatting
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-31 19:37:23 -04:00
Deluan Quintão
8e32eeae93
fix(ui): add button is covered when adding to a playlist ( #4156 )
...
* refactor: fix SelectPlaylistInput layout and improve readability - Replace dropdown with fixed list to prevent button overlay - Break down into smaller focused components - Add comprehensive test coverage - Reduce spacing for compact layout
* refactor: update playlist input translations
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: format code with prettier - Fix formatting issues in AddToPlaylistDialog.test.jsx
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 23:15:02 -04:00
Kendall Garner
7bb1fcdd4b
fix(ui): DevFlags order in TOML export ( #4155 )
...
* fix(ui): update artist link rendering and improve button styles
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): Move Dev* flags before sections in export
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-05-30 23:12:44 -04:00
Deluan Quintão
ded8cf236e
feat(ui): add 'Show in Playlist' context menu ( #4139 )
...
* Update song playlist menu and endpoint
* feat(ui): show submenu on click, not on hover
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): integrate dataProvider for fetching playlists in song context menu
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): update song context menu to use dataProvider for fetching playlists and inspecting songs
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): stop event propagation when closing playlist submenu
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): add 'show in playlist' option to options object
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 21:26:35 -04:00
Deluan Quintão
6dd98e0bed
feat(ui): add configuration tab in About dialog ( #4142 )
...
* Flatten config endpoint and improve About dialog
* add config resource
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): replace `==` with `===`
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): add environment variables
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): add sensitive value redaction
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): more translations
Signed-off-by: Deluan <deluan@navidrome.org>
* address PR comments
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): add configuration export feature in About dialog
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): translate development flags section header
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(api): refactor routes for keepalive and insights endpoints
Signed-off-by: Deluan <deluan@navidrome.org>
* lint
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): enhance string escaping in formatTomlValue function
Updated the formatTomlValue function to properly escape backslashes in addition to quotes. Added new test cases to ensure correct handling of strings containing both backslashes and quotes.
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): adjust dialog size
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 21:07:08 -04:00
Deluan Quintão
22c3486e38
fix(server): enhance artist folder detection with directory traversal ( #4151 )
...
* fix: enhance artist folder detection with directory traversal
Enhanced fromArtistFolder function to implement directory traversal fallback for finding artist images. The original implementation only searched in the calculated artist folder, which failed for single album artists where artist.jpg files were not detected.
Changes: Modified fromArtistFolder to search up to 3 directory levels (artist folder + 2 parent levels), extracted findImageInFolder helper function for cleaner code organization, added proper boundary checks to prevent infinite traversal, maintained backward compatibility with existing functionality.
This fix ensures artist.jpg files are properly detected for single album artists while preserving all existing behavior for multi-album artists.
* refactor: address PR review suggestions
Applied review suggestions from gemini-code-assist bot:
- Added maxArtistFolderTraversalDepth constant instead of hardcoded value 3
- Updated error message to mention that parent directories were also searched
- Enhanced test assertion to verify the improved error message
* fix: improve artist folder traversal logic and enhance error logging
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: remove test for special glob characters in artist folder detection
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: add logging for artist image search in folder
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 18:06:14 -04:00
Michael Tighe
11c9dd4bd9
fix(ui): reset page to 1 on playlist change - #1676 ( #4154 )
...
Signed-off-by: Michael Tighe <strideriidx@gmail.com>
2025-05-30 17:28:39 -04:00
Kevian
623919f53e
fix(ui): update Spanish translation ( #4146 )
...
Changed translation of "Top Rated" from "Los Mejores Calificados" to "Mejor Calificados" for consistency purposes with other list entries. While the previous version was correct, this version is shorter and aligns better with the rest of the terms.
2025-05-30 17:19:04 -04:00
Deluan
920800e909
fix(ui): restructure AboutDialog's version notification layout
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 16:18:07 -04:00
Deluan Quintão
c12472bd19
fix(ui): update song fetching logic to disable for radio ( #4149 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-30 08:29:36 -04:00
Deluan
f4d06fa820
fix event broadcasting
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-29 21:42:52 -04:00
Deluan
5a1e9f96f7
feat(playlists): implement event refresh
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-29 20:47:00 -04:00
Deluan Quintão
588b6be075
Fix playlist star filter
2025-05-29 20:35:47 -04:00
Deluan
a2d764d5bc
test: add tests for filtering artists by role
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-29 15:44:27 -04:00
Deluan
fa2cf36245
fix(subsonic): change role filter logic
...
fix #4140
Signed-off-by: Deluan <deluan@navidrome.org>
v0.56.1
2025-05-29 14:54:09 -04:00
Caio Cotts
b19d5f0d3e
Merge commit from fork
v0.56.0
2025-05-28 19:00:20 -04:00
Deluan
175964b17a
fix(ui): refine playlist details layout and disable play date display for mobile
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-28 18:39:20 -04:00
Deluan Quintão
90b095b409
fix(ui): update German, Greek, Esperanto, Spanish, Finnish, French, Indonesian, Dutch, Portuguese (BR), Russian, Swedish, Turkish, Ukrainian translations from POEditor ( #3981 )
...
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2025-05-28 17:46:34 -04:00
Deluan
821f485022
fix(ui): improve playlist details layout with word break and stats styling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-28 17:33:35 -04:00
Deluan Quintão
d4a053370a
feat(server): add option Lastfm.ScrobbleFirstArtistOnly
to send only the first artist ( #4131 )
...
fixes #3791
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-28 08:43:07 -04:00
ChekeredList71
66926ca466
fix(ui): update Hungarian translation ( #4113 )
...
added "missing" strings
Co-authored-by: peter <asd@>
2025-05-27 21:42:25 -04:00
Deluan
1f9cbe7345
feat(server): add M3U file to downloaded playlist
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-27 20:13:37 -04:00
Deluan
de698918ac
Revert "fix(server): failed transcoded files should not be cached ( #4124 )"
...
This reverts commit 9dd5a8c3347f5223d138d4279e3d51e5def4edce.
2025-05-27 19:53:10 -04:00
Deluan
71851b076c
refactor: unify logic to export to M3U8
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-27 12:37:57 -04:00
Deluan Quintão
85a7268192
fix(ui): update titles for radios, shares and show pages ( #4128 )
2025-05-27 09:01:52 -04:00
Deluan Quintão
9dd5a8c334
fix(server): failed transcoded files should not be cached ( #4124 )
...
* Close stream on caching errors
* fix(test): replace errPartialReader with errFakeReader to fix lint error
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(test): update error assertion to check for substring in closed file error
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-26 20:30:26 -04:00
Deluan
030710afa9
fix(ui): enhance external link display with consistent minimum heights
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-26 18:21:55 -04:00
Kendall Garner
5050250902
fix(share): force share image to be square (to fix aspect ratio) ( #4122 )
...
* fix(ui): update artist link rendering and improve button styles
Signed-off-by: Deluan <deluan@navidrome.org>
* square share player
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-05-26 17:39:05 -04:00
Deluan
fb32cfd7db
fix(ui): fix Reading mediafile(id:undefined): data not found
error
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-26 12:32:37 -04:00
Deluan Quintão
d26e2e29a6
feat(ui): add smooth image transitions to album and artist artwork ( #4120 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-26 08:57:37 -04:00
Deluan
5c4fbdb7c1
feat(ui): add playlist cover art display
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-25 23:22:55 -04:00
Deluan
0cb02bce06
test: improve test reliability with longer sleep durations and generous tolerances
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-25 22:03:55 -04:00
Deluan
fe1ed582bc
build(makefile): add golangci-lint installation step to setup
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-25 20:24:51 -04:00
Deluan Quintão
5e2db2c673
fix(server): fix numeric comparisons for float custom tags in smart playlists ( #4116 )
...
* Fix numeric comparisons for custom float tags
* feat(criteria): cast numeric tags for sorting and comparisons
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-25 17:52:27 -04:00
dependabot[bot]
fac9275c27
chore(deps): bump eslint-config-prettier from 9.1.0 to 10.1.5 in /ui ( #4077 )
...
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier ) from 9.1.0 to 10.1.5.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases )
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.1.5 )
---
updated-dependencies:
- dependency-name: eslint-config-prettier
dependency-version: 10.1.5
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 23:10:46 -04:00
dependabot[bot]
6b3afc03cc
build(deps): bump golangci/golangci-lint-action in /.github/workflows ( #4035 )
...
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) from 7 to 8.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 23:05:47 -04:00
Deluan
35599230ff
test: update test command to run without watch mode
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-24 22:58:04 -04:00
Deluan
13ea00e7f8
chore(deps): update JS dependencies
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-24 22:55:53 -04:00
Deluan
f7fb77054f
build(makefile): fix golangci-lint installation path check
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-24 22:40:33 -04:00
Deluan
441c9f52cc
chore(deps): update Go dependencies
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-05-24 22:36:05 -04:00