Save based on access key and dont retry code 19

This commit is contained in:
Ben Sarmiento
2024-05-25 22:02:05 +02:00
parent e6a47be656
commit 8e7f7c7624
3 changed files with 11 additions and 9 deletions

View File

@@ -103,7 +103,7 @@ func NewTorrentManager(cfg config.ConfigInterface, api *realdebrid.RealDebrid, w
allTorrents.IterCb(func(_ string, torrent *Torrent) {
t.applyMediaInfoDetails(torrent)
t.writeTorrentToFile(torrent)
t.log.Debugf("Applied media info details to torrent %s", torrent.Hash)
t.log.Debugf("Applied media info details to torrent %s", t.GetKey(torrent))
})
})
@@ -198,7 +198,7 @@ func (t *TorrentManager) writeTorrentToFile(torrent *Torrent) {
return
}
t.log.Debugf("Saved torrent %s (hash=%s) to file", t.GetKey(torrent), torrent.Hash)
t.log.Debugf("Saved torrent %s to file", t.GetKey(torrent), torrent.Hash)
}
func (t *TorrentManager) applyMediaInfoDetails(torrent *Torrent) {

View File

@@ -48,11 +48,10 @@ func (t *TorrentManager) refreshTorrents() []string {
return false
})
existingHashes := mapset.NewSet[string]()
cachedAccessKeys := mapset.NewSet[string]()
t.getTorrentFiles("data").Each(func(path string) bool {
path = filepath.Base(path)
hash := strings.TrimSuffix(path, ".zurgtorrent")
existingHashes.Add(hash)
cachedAccessKeys.Add(strings.TrimSuffix(path, ".zurgtorrent"))
return false
})
@@ -96,7 +95,7 @@ func (t *TorrentManager) refreshTorrents() []string {
}
// write to file if it is a new torrent
if forMerging == nil && !existingHashes.Contains(tInfo.Hash) {
if forMerging == nil && !cachedAccessKeys.Contains(accessKey) {
t.writeTorrentToFile(torrent)
}
@@ -324,9 +323,14 @@ func (t *TorrentManager) mergeTorrents(existing, toMerge *Torrent) *Torrent {
}
})
older.SelectedFiles.IterCb(func(key string, file *File) {
if f, ok := mergedTorrent.SelectedFiles.Get(key); !ok || !f.State.Is("ok_file") {
mediaInfo := file.MediaInfo
f, ok := mergedTorrent.SelectedFiles.Get(key)
if !ok || !f.State.Is("ok_file") {
mergedTorrent.SelectedFiles.Set(key, file)
}
if ok && f.MediaInfo == nil && mediaInfo != nil {
f.MediaInfo = mediaInfo
}
})
// unassigned links

View File

@@ -269,8 +269,6 @@ func (r *HTTPClient) shouldRetry(req *http.Request, resp *http.Response, err err
return 1
case 18: // Hoster limit reached
return 1
case 19: // Hoster temporarily unavailable
return 1
case 25: // Service unavailable
return 1
case 34: // Too many requests (retry infinitely), default: 4 secs