Repair edge cases
This commit is contained in:
@@ -242,6 +242,10 @@ func (t *TorrentManager) repair(torrent *Torrent) {
|
||||
t.log.Infof("Successfully repaired torrent %s using repair_method#1", t.GetKey(torrent))
|
||||
return
|
||||
}
|
||||
if info != nil && info.ID != "" {
|
||||
t.log.Warnf("Torrent %s is still broken after repair_method#1, cleaning up", t.GetKey(torrent))
|
||||
t.Api.DeleteTorrent(info.ID)
|
||||
}
|
||||
|
||||
// second solution: add only the broken files
|
||||
if len(brokenFiles) > 0 {
|
||||
@@ -258,7 +262,6 @@ func (t *TorrentManager) repair(torrent *Torrent) {
|
||||
}
|
||||
|
||||
func (t *TorrentManager) redownloadTorrent(torrent *Torrent, brokenFiles string) (*realdebrid.TorrentInfo, error) {
|
||||
t.log.Debugf("Redownloading torrent %s, broken files=%s (all if empty)", t.GetKey(torrent), brokenFiles)
|
||||
oldTorrentIDs := make([]string, 0)
|
||||
// broken files means broken links
|
||||
// if brokenFiles is not provided
|
||||
@@ -424,7 +427,7 @@ func getBrokenFiles(torrent *Torrent) []*File {
|
||||
func (t *TorrentManager) isStillBroken(info *realdebrid.TorrentInfo, brokenFiles []*File) bool {
|
||||
for _, oldFile := range brokenFiles {
|
||||
for idx, newFile := range info.Files {
|
||||
if oldFile.Path == newFile.Path {
|
||||
if oldFile.Path == newFile.Path || oldFile.Bytes == newFile.Bytes {
|
||||
unrestrict := t.UnrestrictUntilOk(info.Links[idx])
|
||||
if unrestrict == nil || oldFile.Bytes != unrestrict.Filesize {
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user