47 lines
914 B
Go
47 lines
914 B
Go
package qbit
|
|
|
|
import (
|
|
"context"
|
|
"goBlack/pkg/debrid"
|
|
"time"
|
|
)
|
|
|
|
func (q *QBit) StartWorker(ctx context.Context) {
|
|
q.logger.Println("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.Println("Qbit Refresh Worker stopped")
|
|
return
|
|
case <-refreshTicker.C:
|
|
torrents := q.storage.GetAll("", "", nil)
|
|
if len(torrents) > 0 {
|
|
q.RefreshArrs()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func (q *QBit) RefreshArrs() {
|
|
q.arrs.Range(func(key, value interface{}) bool {
|
|
host, ok := key.(string)
|
|
token, ok2 := value.(string)
|
|
if !ok || !ok2 {
|
|
return true
|
|
}
|
|
arr := &debrid.Arr{
|
|
Name: "",
|
|
Token: token,
|
|
Host: host,
|
|
}
|
|
q.RefreshArr(arr)
|
|
return true
|
|
})
|
|
}
|