Deluan
9cbdb20a31
fix(server): don't try to save JWT if it fails to encrypt
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-05 22:19:39 -05:00
Deluan
7f030b0859
fix(server): encrypt jwt secret at rest
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-05 21:52:15 -05:00
Deluan
177a1f853f
fix(server): more race conditions when updating artist/album from external sources
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-04 17:34:26 -05:00
Deluan
627417dae3
fix(server): add disc number to fake path.
...
Also revert "feat(server): enable "Report Real Path" by default"
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-02 09:35:39 -05:00
Deluan
2b0bfbd75a
fix(server): race condition when updating artist/album from external sources
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-01 20:16:40 -05:00
Deluan
8fb09e71b6
feat(server): get artist images from Last.fm
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-01 17:31:18 -05:00
Deluan
c94def801e
feat(server): enable "Report Real Path" by default
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-12-01 17:02:15 -05:00
Deluan
ccce1c0f6d
fix: pre-cache square images, or else they are not useful for the Album Grid
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-11-19 18:41:50 -05:00
Deluan
81edef925c
refactor: when resizing, don't buffer the original image "just in case"
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-11-19 18:41:50 -05:00
Deluan
2d4f483812
refactor: remove unnecessary intermediate buffer for ffmpeg image extraction
...
Signed-off-by: Deluan <deluan@navidrome.org>
2024-11-19 18:41:50 -05:00
Deluan
1bf94531fd
refactor: better implementation of newRefreshQueue.
...
- use pointer references in channel
- actually exits when context is canceled
Signed-off-by: Deluan <deluan@navidrome.org>
2024-11-19 18:07:03 -05:00
Deluan Quintão
6c6223f2f9
fix: forcing transcoding when client does not specify transcoding options ( #3455 )
...
* fix: wip
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: revert #3227
It is not respecting the server configured transcoding for the player
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2024-11-05 20:39:05 -05:00
Deluan Quintão
3fda7445b0
fix(server): try to find proper embedded front cover - only for vorbis comments for now ( #3348 )
...
* fix(artwork): get the first image from vorbis comments, not the last. fixes #3254
This uses a fork for now.
* fix(artwork): prioritize getting embedded types that are listed as "front" covers
* fix: cleanup
2024-10-27 21:59:22 -04:00
Deluan
8808eaddda
fix(server): allow extra spaces in transcoding commands
2024-10-20 19:35:16 -04:00
Deluan
bbb3182bc9
refactor(server): remove ffmpeg unused code
2024-10-20 19:35:16 -04:00
Caio Cotts
82633d7490
fix(playlists): make the m3u parser case-insensitive again #3410
2024-10-20 14:21:39 -04:00
Deluan
28668782c6
fix(server): FFmpegPath can contain spaces
2024-10-20 13:58:39 -04:00
Kendall Garner
13af8ed43a
fix(server): preserve m3u file order on import ( #3314 )
...
* fix(playlist): preserve m3u file order on import - 3307
Signed-off-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
* test(server): cover playlist order
* refactor(server): micro-optimizations
* refactor(server): micro-optimizations
* fix(server): playlists imported from reader (POST /playlist) are not synced
* refactor(server): only allocate the capacity required to hold a playlist chunk
---------
Signed-off-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2024-09-27 16:05:12 -04:00
Deluan Quintão
669c8f4c49
refactor(server): replace RangeByChunks with Go 1.23 iterators ( #3292 )
...
* refactor(server): replace RangeByChunks with Go 1.23 iterators
* chore: fix comments re: SQLITE_MAX_VARIABLE_NUMBER
* test: improve playqueue test
* refactor(server): don't create a new iterator when it is not required
2024-09-22 11:47:10 -04:00
Deluan
46be041e7b
fix(scanner): improve M3U playlist import times ( #2706 )
2024-09-18 20:12:12 -04:00
Deluan
a1866c7ff3
Fix log message
2024-09-13 09:13:51 -04:00
Vlad Shulcz
4a55a148cf
refactor(core): Refactor selectTranscodingOptions function ( #3227 )
...
* refactor(core): Refactor selectTranscodingOptions function - #3226
Signed-off-by: shulcz <vshulcz@gmail.com>
* chore: Fix selectTranscodingOptions function - #3226
Signed-off-by: shulcz <vshulcz@gmail.com>
* Small refactoring to make code more concise
* Fix log message
---------
Signed-off-by: shulcz <vshulcz@gmail.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2024-09-02 12:20:23 -04:00
Deluan
8ca1aefad6
Change DefaultPlaylistPublicVisibility to false
2024-08-28 19:23:19 -04:00
John White
67d11dd144
feat: imported playlists are public by default ( #3143 )
...
* feat: imported playlists are public by default
* chore: make linter happy
---------
Co-authored-by: John White <john@activecode.dev>
2024-08-28 19:20:05 -04:00
Rob Emery
723f01d98c
Fixing Build/lint error: "non-constant format string in call to fmt.Errorf (govet)" ( #3198 )
...
* Fixing " non-constant format string in call to fmt.Errorf (govet)"
* Its a string, not an int; read better.
2024-08-19 17:58:35 -04:00
Deluan Quintão
c4bd0e67fa
Upgrade Go to 1.23 ( #3190 )
...
* Upgrade to Golang 1.23rc1
* Fix imports
* Go 1.23 final version
* Fix lint compatibility with ci-goreleaser
2024-08-19 17:47:54 -04:00
Deluan
e1ba152a38
Reduce noise in logs when pre-caching artwork
2024-08-07 13:08:54 -04:00
Kendall Garner
fa85e2a781
Use userId in player, other fixes ( #3182 )
...
* [bugfix] player: use userId, other fixes
This PR primarily resolves #1928 by switching the foreign key of `player` from `user.user_name` to `user.id`.
There are also a few other fixes/changes:
- For some bizarre reason, `ip_address` is never returned from `read`/`get`. Change the field to `ip`, which works. Somehow
- Update `players_test.go` mock to also check for user agent, replicating the actual code
- Update `player_repository.go` `isPermitted` to check user id. I don't know how this worked before...
- tests!
- a few places referred to `typ`, when it is really `userAgent`. Change the field names
* baseRequest -> selectPlayer
* remove comment
* update migration, make all of persistence foreign key enabled
* maybe don't forget to save the file first
2024-08-03 13:37:21 -04:00
Deluan
3bc9e75b28
Evict expired items from SimpleCache
2024-06-24 17:32:34 -04:00
Deluan
3993c4d17f
Upgrade to ttlcache/v3
2024-06-21 18:09:34 -04:00
Deluan
29bc17acd7
Wrap ttlcache in our own SimpleCache implementation
2024-06-21 17:21:09 -04:00
Deluan
e434ca9372
Change resized image cache key
2024-06-08 13:37:30 -04:00
Deluan
6d526870b7
Fix race condition in external metadata retrieval
2024-06-06 21:01:35 -04:00
Deluan
34678611c0
Small refactoring
2024-06-06 20:15:34 -04:00
Deluan
abe5690018
Refactor string utilities into its own package str
2024-06-05 22:09:27 -04:00
Deluan
46fc38bf61
Fix tests expectations
2024-06-05 19:54:25 -04:00
Caio Cotts
0488fb92cb
Fix image stuttering ( #3035 )
...
* Fix image stuttering.
* Fix docker publishing for PRs
* Write tests for new square parameter.
* Simplify code for createImage.
---------
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2024-05-24 20:19:26 -04:00
Deluan
55bff343cd
Optimize SQLite3 access. Mainly separate read access from write access.
...
Based on tips from https://archive.is/Xfjh6#selection-257.0-278.0
2024-05-21 17:19:41 -04:00
Deluan
4d28d534cc
Refactor random.WeightedChooser, unsing generics
2024-05-17 15:45:34 -04:00
Deluan
7f52ff72dc
Simplify image format detection code
2024-05-16 13:49:40 -04:00
Deluan
8ed07333ed
Improve resizeImage code readability
2024-05-16 13:49:40 -04:00
Fynn Petersen-Frey
de0a08915c
fix bug in jukebox: property unavailable ( #3024 )
...
* fix bug in jukebox: property unavailable
* fix lint error
2024-05-15 09:48:09 -04:00
Deluan
0ae2944073
Refactor random functions
2024-05-11 20:04:21 -04:00
Deluan
ec68d69d56
Refactor cache.HTTPClient
2024-05-11 19:37:12 -04:00
Deluan
ed83c22632
Do not panic if when updatePlaylist is called with a non-existent ID.
...
Fix #2876
2024-05-11 15:37:50 -04:00
Deluan Quintão
c4b05dac28
Make sorting lists by name/title case-insensitive ( #2993 )
...
* Make sort by order_* fields case-insensitive.
* Sort internet radios by name case-insensitive
2024-05-09 07:08:15 -04:00
Deluan Quintão
6408dda948
Terminate all MPV instances when stopping Navidrome ( #3008 )
...
* Terminate all mpv instances when stopping Navidrome
* Exit trackSwitcher goroutine when terminating
* Remove potential race condition when starting the Playback device
* Fix lint error
* Removed unused and unneeded vars/functions
* Use device short name in log
* Small refactor
* Small nitpick
* Make start functions more uniform
2024-05-09 06:57:24 -04:00
Deluan
677d9947f3
Make dependency injection more consistent
2024-05-08 22:21:38 -04:00
Matthias Schmidt
ff8dca5abe
Guard against missing active track ( #2996 )
...
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2024-05-07 19:22:39 -04:00
Matthias Schmidt
b3d70e9264
Persist adjusted volume ( #2997 )
...
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2024-05-07 19:21:35 -04:00