60 Commits

Author SHA1 Message Date
Deluan
6678a4185a
Inject DB into DataStore, instead of hardcode the dependency 2026-01-02 20:06:11 +00:00
Deluan
3085484848
Change initial scan message log level 2026-01-02 20:06:08 +00:00
Deluan
75cc2580b7
Disable Last.FM features based on LastFM.Enabled config option 2026-01-02 20:05:07 +00:00
Deluan
6d46689622
Implement Scrobble buffering/retrying 2026-01-02 20:05:07 +00:00
Deluan
ffd1aa7e89
Refactor: Consolidate scrobbling logic in play_tracker 2026-01-02 20:05:05 +00:00
Deluan
0a9f6cb807
Refactor Agents to be singleton
Initial work for Last.fm scrobbler
2026-01-02 20:05:04 +00:00
Deluan
883d316670
Use singleton in other places as well 2026-01-02 20:05:04 +00:00
Deluan
f468522c72
Implement Last.FM Desktop Auth flow endpoints 2026-01-02 20:05:04 +00:00
Deluan
7b4b6f8130
New implementation of NowPlaying 2026-01-02 20:04:23 +00:00
Deluan
7fd15e12cd
Rename app package to nativeapi 2026-01-02 20:00:50 +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
cc789ed92b
Trigger UI refresh on media annotation events: star, setRating and scrobble 2026-01-02 19:32:17 +00:00
Yash Jipkate
d910beea75
Add Native Sharing REST API (#1150)
* Initial draft - UNTESTED

* changes to Save() and Update()

* apply col filter and limit nanoid

* remove columns to not update
2026-01-02 19:32:11 +00:00
Deluan
9f46738f73
Change back mounting order, for better logs 2026-01-02 19:31:11 +00:00
Deluan
7b38e33b26
Show name of router in log 2026-01-02 19:31:11 +00:00
Deluan
d3edef8390
Schedule periodic scan before starting initial scan 2026-01-02 19:26:44 +00:00
Deluan
d2d780918b
Breaking change: Add ScanSchedule, allows interval and cron based configurations.
See https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format for expression syntax.

`ScanInterval` will still work for the time being. The only situation it does not work is when you want to disable periodic scanning by setting `ScanInterval=0`. If you want to disable it, please set `ScanSchedule=""`

Closes #1085
2026-01-02 19:26:43 +00:00
Deluan
b9e8ae07d3
Less waiting for cache to be ready 2026-01-02 19:26:41 +00:00
Deluan
ddae77c3ac
Fix SIGUSR1 work when ScanInterval=0 2026-01-02 19:26:41 +00:00
Deluan
fdd9a94144
Rename ExternalInfo to ExternalMetadata 2026-01-02 19:21:28 +00:00
Deluan
5cab07c7b2
Clean up, comments and logs 2026-01-02 19:21:27 +00:00
Deluan
5cc7dbb2ba
Incomplete implementation of agents 2026-01-02 19:21:23 +00:00
Deluan
10cf2372f8
Move project to Navidrome GitHub organization 2026-01-02 19:20:16 +00:00
Deluan
f708686485
Use tools.go commands without installing 2026-01-02 19:20:14 +00:00
Deluan
971728dfd5
Replace periodic scanner cancellation channel with a context 2026-01-02 19:20:13 +00:00
Deluan
a0195aa5d3
Better termination handling in Scanner's progress 2026-01-02 19:20:08 +00:00
Deluan
652a6cf18f
Adding a communication channel between server and clients using SSE 2026-01-02 19:19:33 +00:00
Deluan
8c0cbeffbb
Simplify scanner utilization 2026-01-02 19:18:59 +00:00
Deluan
8fa4697085
Cache Warmer now waits for Cache to be available 2026-01-02 19:18:27 +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
d9a8e354e9
Make caches singletons 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
Deluan
e2d27f5a32
Removed list_generator completely 2026-01-02 19:18:25 +00:00
Deluan
437339b9b2
Make caches singletons 2026-01-02 19:18:25 +00:00
Deluan
04fe3aff4a
Add simple cache warmer, disabled by default 2026-01-02 19:18:25 +00:00
Deluan
002bfccfaa
Add scanner status 2026-01-02 19:17:32 +00:00
Deluan
bd68dbd438
Add better process lifecycle management 2026-01-02 19:17:32 +00:00
Deluan
a289a1945f Remove redundant interfaces 2020-10-20 16:07:31 -04:00
Deluan
07535e1518 Add ExternalInformation core service (not a great name, I know) 2020-10-20 16:07:31 -04:00
Deluan
100f6a0645 Removed engine.Users 2020-08-14 12:10:37 -04:00
Deluan
419884db7c Removed engine.Scrobbler 2020-08-14 12:10:37 -04:00
Deluan
eacfc41665 Removed engine.Search 2020-08-14 12:10:37 -04:00
Deluan
22f34b3347 Refactor getGenres. Remove engine.Browser 2020-08-14 12:10:37 -04:00
Deluan
df05760769 Move engine package under subsonic, as it should only be used by the Subsonic API.master
The idea is to move reusable code from `engine` to `core`, in future refactorings
2020-08-04 21:29:35 -04:00
Deluan
2c370cae28 Support downloading full album and artist discography through Subsonic API 2020-08-04 12:39:13 -04:00
Deluan
28d1428c90 Add option to disable .m3u auto-import 2020-08-02 23:17:13 -04:00
Deluan
696a0feb31 Remove ratings from engine package 2020-08-02 17:58:07 -04:00
Deluan
3000238a3c Implements the get/save play queue Subsonic endpoints and bumps API version to 1.12.0 2020-07-31 17:45:49 -04:00
Deluan
2b59d4b87a Rename 'Cover' to the more generic term 'Artwork' 2020-07-31 11:38:56 -04:00