Add configuration for scan interval. Default 5 mins
This commit is contained in:
@@ -21,6 +21,7 @@ type sonic struct {
|
|||||||
ProbeCommand string `default:"ffmpeg %s -f ffmetadata"`
|
ProbeCommand string `default:"ffmpeg %s -f ffmetadata"`
|
||||||
PlsIgnoreFolders bool `default:"true"`
|
PlsIgnoreFolders bool `default:"true"`
|
||||||
PlsIgnoredPatterns string `default:"^iCloud;\\~"`
|
PlsIgnoredPatterns string `default:"^iCloud;\\~"`
|
||||||
|
ScanInterval string `default:"5m"`
|
||||||
|
|
||||||
// DevFlags. These are used to enable/disable debugging and incomplete features
|
// DevFlags. These are used to enable/disable debugging and incomplete features
|
||||||
DevDisableAuthentication bool `default:"false"`
|
DevDisableAuthentication bool `default:"false"`
|
||||||
|
|||||||
+12
-6
@@ -68,15 +68,21 @@ func (a *Server) initRoutes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *Server) initScanner() {
|
func (a *Server) initScanner() {
|
||||||
|
interval, err := time.ParseDuration(conf.Sonic.ScanInterval)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Invalid interval specification. Using default of 5m", "conf", conf.Sonic.ScanInterval, err)
|
||||||
|
interval = 5 * time.Minute
|
||||||
|
} else {
|
||||||
|
log.Info("Starting scanner", "interval", interval.String())
|
||||||
|
}
|
||||||
go func() {
|
go func() {
|
||||||
|
time.Sleep(2 * time.Second)
|
||||||
for {
|
for {
|
||||||
select {
|
err := a.Scanner.RescanAll(false)
|
||||||
case <-time.After(5 * time.Second):
|
if err != nil {
|
||||||
err := a.Scanner.RescanAll(false)
|
log.Error("Error scanning media folder", "folder", conf.Sonic.MusicFolder, err)
|
||||||
if err != nil {
|
|
||||||
log.Error("Error scanning media folder", "folder", conf.Sonic.MusicFolder, err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
time.Sleep(interval)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user