54 lines
908 B
Go
54 lines
908 B
Go
package service
|
|
|
|
import (
|
|
"github.com/sirrobot01/decypharr/pkg/arr"
|
|
"github.com/sirrobot01/decypharr/pkg/debrid/debrid"
|
|
"github.com/sirrobot01/decypharr/pkg/repair"
|
|
"sync"
|
|
)
|
|
|
|
type Service struct {
|
|
Repair *repair.Repair
|
|
Arr *arr.Storage
|
|
Debrid *debrid.Engine
|
|
}
|
|
|
|
var (
|
|
instance *Service
|
|
once sync.Once
|
|
)
|
|
|
|
// GetService returns the singleton instance
|
|
func GetService() *Service {
|
|
once.Do(func() {
|
|
arrs := arr.NewStorage()
|
|
deb := debrid.NewEngine()
|
|
instance = &Service{
|
|
Repair: repair.New(arrs, deb),
|
|
Arr: arrs,
|
|
Debrid: deb,
|
|
}
|
|
})
|
|
return instance
|
|
}
|
|
|
|
func Reset() {
|
|
if instance != nil {
|
|
if instance.Debrid != nil {
|
|
instance.Debrid.Reset()
|
|
}
|
|
if instance.Arr != nil {
|
|
//instance.Arr.Reset()
|
|
}
|
|
if instance.Repair != nil {
|
|
//instance.Repair.Reset()
|
|
}
|
|
}
|
|
once = sync.Once{}
|
|
instance = nil
|
|
}
|
|
|
|
func GetDebrid() *debrid.Engine {
|
|
return GetService().Debrid
|
|
}
|