170 Commits

Author SHA1 Message Date
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
Deluan
6db9c24549
Bump Subsonic API to 1.16.1 2026-01-02 19:18:58 +00:00
Deluan
a3713647f8
Update count on getScanStatus 2026-01-02 19:18:58 +00:00
Deluan
62f7f184cc
Add artistImageUrl available in getArtists endpoint
Also cache artist info in the DB for 1 hour
2026-01-02 19:18:58 +00:00
Deluan
61d6f8aaa0
Make CreatePlaylist response compatible with API >1.14.0 2026-01-02 19:18:26 +00:00
Deluan
465b23a433
Limit startScan to admins only 2026-01-02 19:18:26 +00:00
Deluan
01b5871218
Implements library scanning endpoints. Also:
- Bumped Subsonic API version to 1.15:
- Better User/Users Subsonic endpoint implementations, not final though
2026-01-02 19:18:26 +00:00
Deluan
7cde29cd21
Simplify error responses 2026-01-02 19:18:26 +00:00
Deluan
582e9e5249
Completely removed engine package, fewer abstraction layers \o/ 2026-01-02 19:18:25 +00:00
Deluan
321c2fc4f1
Move mock datastore to tests package 2026-01-02 19:18:25 +00:00