diff --git a/internal/torrent/manager.go b/internal/torrent/manager.go index fb90f82..331712f 100644 --- a/internal/torrent/manager.go +++ b/internal/torrent/manager.go @@ -368,7 +368,16 @@ func (t *TorrentManager) getMoreInfo(rdTorrent realdebrid.Torrent) *Torrent { } torrent.SelectedFiles = cmap.New[*File]() for _, file := range selectedFiles { - torrent.SelectedFiles.Set(filepath.Base(file.Path), file) + // todo better handling of duplicate filenames + if torrent.SelectedFiles.Has(filepath.Base(file.Path)) { + oldName := filepath.Base(file.Path) + ext := filepath.Ext(oldName) + filename := strings.TrimSuffix(oldName, ext) + newName := fmt.Sprintf("%s (%d)%s", filename, file.ID, ext) + torrent.SelectedFiles.Set(newName, file) + } else { + torrent.SelectedFiles.Set(filepath.Base(file.Path), file) + } } infoCache.Set(rdTorrent.ID, &torrent) @@ -422,25 +431,20 @@ func (t *TorrentManager) readTorrentFromFile(torrentID string) *Torrent { file, err := os.Open(filePath) if err != nil { if os.IsNotExist(err) { - t.log.Debug("[file] file does not exist") return nil } - t.log.Debugf("[file] error opening file: %v", err) return nil } defer file.Close() jsonData, err := io.ReadAll(file) if err != nil { - t.log.Debugf("[file] error reading file: %v", err) return nil } var torrent *Torrent if err := json.Unmarshal(jsonData, &torrent); err != nil { - t.log.Debugf("[file] error unmarshaling torrent: %v", err) return nil } if torrent.Version != t.requiredVersion { - t.log.Debugf("[file] not the right version: %s", torrent.Version) return nil } return torrent