node build fixed
This commit is contained in:
74
seanime-2.9.10/internal/notifier/notifier.go
Normal file
74
seanime-2.9.10/internal/notifier/notifier.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package notifier
|
||||
|
||||
import (
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/samber/mo"
|
||||
"path/filepath"
|
||||
"seanime/internal/database/models"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type (
|
||||
Notifier struct {
|
||||
dataDir mo.Option[string]
|
||||
settings mo.Option[*models.NotificationSettings]
|
||||
mu sync.Mutex
|
||||
logoPath string
|
||||
logger mo.Option[*zerolog.Logger]
|
||||
}
|
||||
|
||||
Notification string
|
||||
)
|
||||
|
||||
const (
|
||||
AutoDownloader Notification = "Auto Downloader"
|
||||
AutoScanner Notification = "Auto Scanner"
|
||||
Debrid Notification = "Debrid"
|
||||
)
|
||||
|
||||
var GlobalNotifier = NewNotifier()
|
||||
|
||||
func init() {
|
||||
GlobalNotifier = NewNotifier()
|
||||
}
|
||||
|
||||
func NewNotifier() *Notifier {
|
||||
return &Notifier{
|
||||
dataDir: mo.None[string](),
|
||||
settings: mo.None[*models.NotificationSettings](),
|
||||
mu: sync.Mutex{},
|
||||
logger: mo.None[*zerolog.Logger](),
|
||||
}
|
||||
}
|
||||
|
||||
func (n *Notifier) SetSettings(datadir string, settings *models.NotificationSettings, logger *zerolog.Logger) {
|
||||
if datadir == "" || settings == nil {
|
||||
return
|
||||
}
|
||||
|
||||
n.mu.Lock()
|
||||
n.dataDir = mo.Some(datadir)
|
||||
n.settings = mo.Some(settings)
|
||||
n.logoPath = filepath.Join(datadir, "logo.png")
|
||||
n.logger = mo.Some(logger)
|
||||
n.mu.Unlock()
|
||||
}
|
||||
|
||||
func (n *Notifier) canProceed(id Notification) bool {
|
||||
if !n.dataDir.IsPresent() || !n.settings.IsPresent() {
|
||||
return false
|
||||
}
|
||||
|
||||
if n.settings.MustGet().DisableNotifications {
|
||||
return false
|
||||
}
|
||||
|
||||
switch id {
|
||||
case AutoDownloader:
|
||||
return !n.settings.MustGet().DisableAutoDownloaderNotifications
|
||||
case AutoScanner:
|
||||
return !n.settings.MustGet().DisableAutoScannerNotifications
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user