diff --git a/internal/torrent/fixer.go b/internal/torrent/fixer.go index 4316088..dfabfa1 100644 --- a/internal/torrent/fixer.go +++ b/internal/torrent/fixer.go @@ -49,7 +49,22 @@ func (t *TorrentManager) handleFixers() { infoCache.Remove(id) t.deleteTorrentFile(id) } + + // remove expired fixers + var expired []string + t.fixers.IterCb(func(trigger string, command string) { + if infoCache.Has(trigger) { + return + } + expired = append(expired, trigger) + }) + for _, trigger := range expired { + t.log.Debugf("Removing expired fixer id=%s", trigger) + t.fixers.Remove(trigger) + } + t.writeFixersToFile() + t.log.Debugf("Finished handling fixers") }