57 Commits

Author SHA1 Message Date
Deluan
39623748f2
Fix deadlock situation when events are sent too fast to the broker 2026-01-02 20:05:07 +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
2e645a3191
Trigger a UI refresh when the scanner finds changes.
Closes #1025
2026-01-02 19:32:17 +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
ddae77c3ac
Fix SIGUSR1 work when ScanInterval=0 2026-01-02 19:26:41 +00:00
Deluan
deb9ceb3c9
Disable SIGUSR1 handler for Windows (not available) 2026-01-02 19:26:39 +00:00
Deluan
5efc88904f
Add trigger scan when receiving SIGUSR1 signal 2026-01-02 19:26:39 +00:00
Deluan
10cf2372f8
Move project to Navidrome GitHub organization 2026-01-02 19:20:16 +00:00
Deluan
971728dfd5
Replace periodic scanner cancellation channel with a context 2026-01-02 19:20:13 +00:00
Deluan
bed1410e0d
Disconnect the client if the output buffer fills up 2026-01-02 19:20:11 +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
f2e55be47e
Fine tune scan status behaviour 2026-01-02 19:19:35 +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
a3713647f8
Update count on getScanStatus 2026-01-02 19:18:58 +00:00
Deluan
26902d78df
Only start the cache warming after all folders were scanned 2026-01-02 19:18:26 +00:00
Deluan
04fe3aff4a
Add simple cache warmer, disabled by default 2026-01-02 19:18:25 +00:00
Deluan
f4be41987f
Change MediaFolder.ID type to int32 2026-01-02 19:17:32 +00:00
Deluan
002bfccfaa
Add scanner status 2026-01-02 19:17:32 +00:00
Deluan
f992b5663f Remove old scanner 2020-07-27 12:34:44 -04:00
Deluan
d268075046 Change the default scanner to use new implementation 2020-07-19 21:39:06 -04:00
Deluan
3239be4a4d Change log level of some scanner operations 2020-07-17 12:49:37 -04:00
Deluan
51c295d1de Add new scanner algorithm, can be enabled with DevNewScanner config option 2020-07-17 12:06:49 -04:00
Deluan
5cd453afeb Fix all errcheck warnings 2020-04-26 15:07:36 -04:00
Deluan
03c3c192ed Fixing static checks about passing nil context 2020-04-26 15:07:36 -04:00
Deluan
400fa65326 feat: better scanner logging when level = info 2020-02-08 23:36:09 -05:00
Deluan
71c1844bca refactor: new persistence, more SQL, less ORM 2020-02-01 17:23:03 -05:00
Deluan
0d2911daf9 refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
Deluan
bee55c04c8 Rename project to Navidrome 2020-01-23 19:44:08 -05:00
Deluan
67eeb218c4 Big Refactor:
- Create model.DataStore, with provision for transactions
- Change all layers dependencies on repositories to use DataStore
- Implemented persistence.SQLStore
- Removed iTunes Bridge/Importer support
2020-01-19 16:28:09 -05:00
Deluan
ea9ed4a287 Fix ChangeDetector to keep the dirMap from last scan 2020-01-17 22:41:10 -05:00
Deluan
c0beaa6377 Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
Deluan
123f543a94 New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
Deluan
4b70daf143 Converted scanner to a proper Import "class", to facilitate testing 2016-03-03 20:01:27 -05:00
Deluan
848809d0df Supporting starred in getMusicDirectory.view 2016-03-03 15:41:24 -05:00
Deluan
1b945831cc Implementing coverArt 2016-03-03 10:34:17 -05:00
Deluan
f01a5f143d Added Starred for Album and MediaFile 2016-03-03 01:07:13 -05:00
Deluan
012958cd08 go fmt 2016-03-03 00:46:23 -05:00
Deluan
ffd6304a23 Added DiscNumber field, used to sort tracks 2016-03-03 00:42:42 -05:00
Deluan
1aeb22dcb7 Fixed (?) Artist x AlbumArtist 2016-03-03 00:25:26 -05:00
Deluan
eabee8b502 More track info 2016-03-02 23:51:26 -05:00
Deluan
757e1992d7 Bare bones getMusicDirectory for albums! 2016-03-02 23:15:17 -05:00
Deluan
51bae19191 Added Genre and Track Number to getMusicDirectory 2016-03-02 22:43:31 -05:00
Deluan
4843ccb46c go fmt 2016-03-02 13:18:39 -05:00
Deluan
300ed0d9a4 Introduced interfaces for all repositories, completely isolating the persistence layer from the repositories usage and specification 2016-03-02 09:43:00 -05:00
Deluan
272a499c7e Refactoring to a cleaner architecture 2016-03-02 09:10:28 -05:00
Deluan
c64a0f8242 Implemented proper index grouping 2016-03-01 17:54:13 -05:00
Deluan
841d8f457f Implemented ProperyRepository. Now the Scanner stores the LastScan timestamp 2016-03-01 14:40:26 -05:00
Deluan
1ceefda6ca TODO 2016-03-01 13:31:52 -05:00