Deluan
83380f2de2
Fix/Optimized Playlist tracks deletion
2026-01-02 20:09:01 +00:00
Deluan
9ca4fb538b
Optimize playlist updates
2026-01-02 20:09:00 +00:00
Deluan
7eaf3ebb63
Import smart playlists (extension .nsp)
2026-01-02 20:08:59 +00:00
Deluan
874926481b
Add methods to Playlist model
...
Also, don't load genres for Playlists tracks (not necessary for now)
2026-01-02 20:08:58 +00:00
Deluan
2939c96bd8
Reduce number of queries for some playlists operations.
...
Also allow admins to update/delete playlists from other users in the Subsonic API. Closes #1366
2026-01-02 20:08:58 +00:00
Dheeraj Lalwani
830784e948
Adds Lyrics Support to Subsonic API ( #1379 )
...
* Add function 'isSynced' that identifies if lyrics are synced or not and add tests for the same
* implement 'getLyrics' which returns lyrics if they exist
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* remove timestamps frorom the the lyrics if they are synced, fix filters & clean up code
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* add snapshot tests for the 'Lyrics' response & add some clean up
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* add tests for 'GetLyrics' function
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* update the snapshot test & the test for 'GetLyrics' function
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
2026-01-02 20:08:58 +00:00
Deluan
a7b43f9c56
Return playlists sorted in getPlaylists Subsonic endpoint
2026-01-02 20:08:57 +00:00
Deluan Quintão
f50e521fec
Check goimports in the pipeline ( #1381 )
...
* Check goimports in the pipeline
* Check goimports in the pipeline
* Check goimports in the pipeline
* go mod tidy
* wip
* wip
* Fix goimports and go:build tags
* Run golangci-lint before goimports
2026-01-02 20:08:02 +00:00
caiocotts
f2cf716bcd
Add x-total-count to Subsonic API getAlbumList ( #1360 )
...
* Add x-total-count to Subsonic API getAlbumList
* Rename variable
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:08:00 +00:00
Deluan
e63769051f
Remove dependency of deprecated ioutil package
2026-01-02 20:06:10 +00:00
Deluan
1e5b6a3c54
Small refactorings
2026-01-02 20:06:09 +00:00
Deluan
09603abe33
Make getGenre Subsonic endpoint returns genres sorted by counts
2026-01-02 20:06:09 +00:00
Deluan
8d7cd365cf
Optimize GetAll genres query
2026-01-02 20:06:09 +00:00
Deluan
15b3994d13
Remove unnecessary repositories methods
2026-01-02 20:06:08 +00:00
Deluan
5de062da03
Add multiple genres to Albums
2026-01-02 20:06:08 +00:00
Deluan
1e9e8edc49
Add multiple genres to MediaFile
2026-01-02 20:06:08 +00:00
Deluan
52510a55c4
Add genre tables, read multiple-genres from tags
2026-01-02 20:06:08 +00:00
Deluan
19e9ec46a2
Use AlbumArtist tag even for compilations, when it is specified.
...
If the tracks' AlbumArtists are different, then use "Various Artists"
2026-01-02 20:06:07 +00:00
Deluan
c81ecbd96e
Add tests to /scrobble endpoint
2026-01-02 20:05:06 +00:00
Deluan
ffd1aa7e89
Refactor: Consolidate scrobbling logic in play_tracker
2026-01-02 20:05:05 +00:00
Deluan
5db24ff145
Send NowPlaying and Scrobbles to Last.fm
2026-01-02 20:05:04 +00:00
Deluan
0a9f6cb807
Refactor Agents to be singleton
...
Initial work for Last.fm scrobbler
2026-01-02 20:05:04 +00:00
Deluan
0057c9f38a
Try to register all playing music in GetNowPlaying
2026-01-02 20:04:23 +00:00
Deluan
1ac077cf22
Fix GetNowPlaying endpoint showing only the last play
2026-01-02 20:04:23 +00:00
Deluan
7b4b6f8130
New implementation of NowPlaying
2026-01-02 20:04:23 +00:00
Deluan Quintão
5590fa3550
Encrypt passwords in DB ( #1187 )
...
* Encode/Encrypt passwords in DB
* Only decrypts passwords if it is necessary
* Add tests for encryption functions
2026-01-02 20:04:16 +00:00
Deluan
1542362898
Optimize refresh events for scrobble endpoint
2026-01-02 20:03:21 +00:00
Deluan
59a38332a4
Refech using getMany, reducing the number of API calls
2026-01-02 20:03:21 +00:00
Deluan
8e32b56ea0
Only send events to clients who need it
...
- User events (star, rating, plays) only sent to same user
- Don't send to the client (browser window) that originated the event
2026-01-02 20:02:35 +00:00
Deluan
81b87e9ff6
Only refetch changed resources when receive a "refreshResource" event
2026-01-02 20:02:34 +00:00
Deluan Quintão
5be15bb98b
Refactor routing, changes API URLs ( #1171 )
...
* Make authentication part of the server, so it can be reused outside the Native API
This commit has broken tests after a rebase
* Serve frontend assets from `server`, and not from Native API
* Change Native API URL
* Fix auth tests
* Refactor server authentication
* Simplify authProvider, now subsonic token+salt comes from the server
* Don't send JWT token to UI when authenticated via Request Header
* Enable ReverseProxyWhitelist to be read from environment
2026-01-02 20:00:31 +00:00
Deluan
ea6a9f5701
Only send "refresh" event if SetRating was successful
2026-01-02 19:32:17 +00:00
Deluan
cc789ed92b
Trigger UI refresh on media annotation events: star, setRating and scrobble
2026-01-02 19:32:17 +00:00
Deluan
969e3a91d2
Make MockRepo names more consistent
2026-01-02 19:32:16 +00:00
Deluan
a91dd4716a
Fix updatePlaylist not updating fields comment and public.
...
Fix #1140
2026-01-02 19:31:52 +00:00
Deluan
82be448d37
GetCoverArt returns placeholder if id is missing
...
This mimics Subsonic behaviour, even if it contradicts the API documentation, which states `id` is required
Fixes #1139
2026-01-02 19:31:52 +00:00
Deluan
a7a7d23883
Removed unnecessary code
2026-01-02 19:31:09 +00:00
Deluan
3e56e834a4
Upgrade to go-chi 5
2026-01-02 19:31:07 +00:00
Deluan
749ef07a01
Fix Bookmarks Subsonic support ( #1099 )
...
JSON responses were incorrect
2026-01-02 19:26:44 +00:00
Deluan
2531df5f97
Fix DevAutoCreateAdminPassword
2026-01-02 19:26:42 +00:00
Deluan
e7082df09e
Add support for artist 5-star rating in Subsonic API
2026-01-02 19:26:36 +00:00
Yash Jipkate
77e6b3bb78
Add / to _ mapping for paths based on tags. ( #888 )
...
Closes #592
2026-01-02 19:23:04 +00:00
Deluan
77e31b27b9
Add option to sort Recently Added by file's mtime instead of time of import.
2026-01-02 19:22:06 +00:00
Deluan Quintão
165af5b850
Remove dependency of go-bindata ( #818 )
...
* Use new embed functionality for serving UI assets
* Use new embed functionality for serving resources. Remove dependency on go-bindata
* Remove Go 1.15
2026-01-02 19:22:04 +00:00
Deluan
8be485ab3e
Update list of Not Implemented / Gone Subsonic API endpoints
2026-01-02 19:21:28 +00:00
Deluan
fdd9a94144
Rename ExternalInfo to ExternalMetadata
2026-01-02 19:21:28 +00:00
Deluan
0a94249d38
Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool
2026-01-02 19:21:28 +00:00
Deluan
10cf2372f8
Move project to Navidrome GitHub organization
2026-01-02 19:20:16 +00:00
Deluan
6acf2becb0
Logging when triggering manual scan
2026-01-02 19:20:15 +00:00
Deluan
f708686485
Use tools.go commands without installing
2026-01-02 19:20:14 +00:00