Immediate cleanup to prevent inconsistencies

This commit is contained in:
Ben Sarmiento
2024-05-28 03:51:01 +02:00
parent 2504b31d4c
commit 7470629486
5 changed files with 34 additions and 5 deletions

19
internal/torrent/dump.go Normal file
View File

@@ -0,0 +1,19 @@
package torrent
import "github.com/debridmediamanager/zurg/internal/config"
func (t *TorrentManager) loadDumpedTorrents() {
// TODO: Paywall
count := 0
t.getTorrentFiles("data").Each(func(filePath string) bool {
torrent := t.readTorrentFromFile(filePath)
if torrent != nil {
accessKey := t.GetKey(torrent)
torrents, _ := t.DirectoryMap.Get(config.DUMPED_TORRENTS)
torrents.Set(accessKey, torrent)
count++
}
return false
})
t.log.Infof("Loaded %d dumped torrents", count)
}

View File

@@ -91,8 +91,12 @@ func NewTorrentManager(cfg config.ConfigInterface, api *realdebrid.RealDebrid, r
t.initializeDirectoryMaps()
var wg sync.WaitGroup
wg.Add(2)
wg.Add(3)
t.workerPool.Submit(func() {
defer wg.Done()
t.loadDumpedTorrents()
})
t.workerPool.Submit(func() {
defer wg.Done()
@@ -417,8 +421,10 @@ func (t *TorrentManager) StartDumpJob() {
select {
case <-dumpTicker.C:
t.dumpTorrents()
t.loadDumpedTorrents()
case <-t.DumpTrigger:
t.dumpTorrents()
t.loadDumpedTorrents()
}
}
})

View File

@@ -79,6 +79,10 @@ func (t *TorrentManager) refreshTorrents() []string {
})
}
t.workerPool.Submit(func() {
t.cleanupBins(freshIDs)
})
wg.Wait()
close(mergeChan)
@@ -136,8 +140,6 @@ func (t *TorrentManager) refreshTorrents() []string {
}
return false
})
t.cleanupBins(freshIDs)
})
return updatedPaths.ToSlice()