This commit is contained in:
Mukhtar Akere
2025-02-28 20:21:45 +01:00
parent 84bd93805f
commit e741a0e32b
4 changed files with 27 additions and 66 deletions

View File

@@ -10,7 +10,11 @@ import (
)
func (a *Arr) Refresh() error {
payload := map[string]string{"name": "RefreshMonitoredDownloads"}
payload := struct {
Name string `json:"name"`
}{
Name: "RefreshMonitoredDownloads",
}
resp, err := a.Request(http.MethodPost, "api/v3/command", payload)
if err == nil && resp != nil {
@@ -19,7 +23,8 @@ func (a *Arr) Refresh() error {
return nil
}
}
return fmt.Errorf("failed to refresh monitored downloads for %s", cmp.Or(a.Name, a.Host))
return fmt.Errorf("failed to refresh: %v(status: %s)", err, resp.Status)
}
func (a *Arr) Blacklist(infoHash string) error {

View File

@@ -81,7 +81,9 @@ func (q *QBit) ProcessFiles(torrent *Torrent, debridTorrent *debrid.Torrent, arr
q.logger.Error().Msgf("Error checking status: %v", err)
go debridClient.DeleteTorrent(debridTorrent)
q.MarkAsFailed(torrent)
_ = arr.Refresh()
if err := arr.Refresh(); err != nil {
q.logger.Error().Msgf("Error refreshing arr: %v", err)
}
return
}

View File

@@ -1,39 +0,0 @@
package qbit
import (
"context"
"github.com/sirrobot01/debrid-blackhole/pkg/service"
"time"
)
func (q *QBit) StartWorker(ctx context.Context) {
q.logger.Info().Msg("Qbit Worker started")
q.StartRefreshWorker(ctx)
}
func (q *QBit) StartRefreshWorker(ctx context.Context) {
refreshCtx := context.WithValue(ctx, "worker", "refresh")
refreshTicker := time.NewTicker(time.Duration(q.RefreshInterval) * time.Second)
for {
select {
case <-refreshCtx.Done():
q.logger.Info().Msg("Qbit Refresh Worker stopped")
return
case <-refreshTicker.C:
torrents := q.Storage.GetAll("", "", nil)
if len(torrents) > 0 {
q.RefreshArrs()
}
}
}
}
func (q *QBit) RefreshArrs() {
arrs := service.GetService().Arr
for _, arr := range arrs.GetAll() {
err := arr.Refresh()
if err != nil {
return
}
}
}

View File

@@ -30,13 +30,6 @@ func Start(ctx context.Context) error {
// Start Arr Refresh Worker
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
arrRefreshWorker(ctx, cfg)
}()
wg.Add(1)
go func() {
defer wg.Done()
@@ -46,23 +39,23 @@ func Start(ctx context.Context) error {
return nil
}
func arrRefreshWorker(ctx context.Context, cfg *config.Config) {
// Start Arr Refresh Worker
_logger := getLogger()
_logger.Debug().Msg("Refresh Worker started")
refreshCtx := context.WithValue(ctx, "worker", "refresh")
refreshTicker := time.NewTicker(time.Duration(cfg.QBitTorrent.RefreshInterval) * time.Second)
for {
select {
case <-refreshCtx.Done():
_logger.Debug().Msg("Refresh Worker stopped")
return
case <-refreshTicker.C:
refreshArrs()
}
}
}
//func arrRefreshWorker(ctx context.Context, cfg *config.Config) {
// // Start Arr Refresh Worker
// _logger := getLogger()
// _logger.Debug().Msg("Refresh Worker started")
// refreshCtx := context.WithValue(ctx, "worker", "refresh")
// refreshTicker := time.NewTicker(time.Duration(cfg.QBitTorrent.RefreshInterval) * time.Second)
//
// for {
// select {
// case <-refreshCtx.Done():
// _logger.Debug().Msg("Refresh Worker stopped")
// return
// case <-refreshTicker.C:
// refreshArrs()
// }
// }
//}
func cleanUpQueuesWorker(ctx context.Context, cfg *config.Config) {
// Start Clean up Queues Worker