node build fixed
This commit is contained in:
59
seanime-2.9.10/internal/core/watcher.go
Normal file
59
seanime-2.9.10/internal/core/watcher.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"seanime/internal/library/scanner"
|
||||
"seanime/internal/util"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// initLibraryWatcher will initialize the library watcher.
|
||||
// - Used by AutoScanner
|
||||
func (a *App) initLibraryWatcher(paths []string) {
|
||||
// Create a new watcher
|
||||
watcher, err := scanner.NewWatcher(&scanner.NewWatcherOptions{
|
||||
Logger: a.Logger,
|
||||
WSEventManager: a.WSEventManager,
|
||||
})
|
||||
if err != nil {
|
||||
a.Logger.Error().Err(err).Msg("app: Failed to initialize watcher")
|
||||
return
|
||||
}
|
||||
|
||||
// Initialize library file watcher
|
||||
err = watcher.InitLibraryFileWatcher(&scanner.WatchLibraryFilesOptions{
|
||||
LibraryPaths: paths,
|
||||
})
|
||||
if err != nil {
|
||||
a.Logger.Error().Err(err).Msg("app: Failed to watch library files")
|
||||
return
|
||||
}
|
||||
|
||||
var dirSize uint64 = 0
|
||||
mu := sync.Mutex{}
|
||||
wg := sync.WaitGroup{}
|
||||
for _, path := range paths {
|
||||
wg.Add(1)
|
||||
go func(path string) {
|
||||
defer wg.Done()
|
||||
ds, _ := util.DirSize(path)
|
||||
mu.Lock()
|
||||
dirSize += ds
|
||||
mu.Unlock()
|
||||
}(path)
|
||||
}
|
||||
wg.Wait()
|
||||
a.TotalLibrarySize = dirSize
|
||||
|
||||
a.Logger.Info().Msgf("watcher: Library size: %s", util.Bytes(dirSize))
|
||||
|
||||
// Set the watcher
|
||||
a.Watcher = watcher
|
||||
|
||||
// Start watching
|
||||
a.Watcher.StartWatching(
|
||||
func() {
|
||||
// Notify the auto scanner when a file action occurs
|
||||
a.AutoScanner.Notify()
|
||||
})
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user