179 Commits

Author SHA1 Message Date
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
Deluan
d23976d796
Fix "failed" Subsonic response. Fix #716 2026-01-02 19:20:13 +00:00
Deluan
f87e3420f3
Return album art as a Reader 2026-01-02 19:20:10 +00:00
Deluan
f70becc0d3
Add option for player to report real paths in Subsonic API. Closes #625 2026-01-02 19:20:09 +00:00
Deluan
a0195aa5d3
Better termination handling in Scanner's progress 2026-01-02 19:20:08 +00:00
Deluan
70dc847836
Show folders scanned instead of files scanned 2026-01-02 19:20:05 +00:00
Deluan
ca37f6d31c
Use Gravatar in GetAvatar Subsonic API 2026-01-02 19:19:36 +00:00
Deluan
2c79e4dc86
Add config option to globally enable/disable downloads 2026-01-02 19:19:34 +00:00
Deluan
f165047ace
Don't send the transcoded file if it is a HEAD request 2026-01-02 19:19:32 +00:00
Deluan
8c0cbeffbb
Simplify scanner utilization 2026-01-02 19:18:59 +00:00