diff --git a/pkg/debrid/alldebrid.go b/pkg/debrid/alldebrid.go index c199288..865dd78 100644 --- a/pkg/debrid/alldebrid.go +++ b/pkg/debrid/alldebrid.go @@ -127,6 +127,7 @@ func (r *AllDebrid) GetTorrent(id string) (*Torrent, error) { files = append(files, file) } parentFolder := data.Filename + if data.NbLinks == 1 { // All debrid doesn't return the parent folder for single file torrents parentFolder = "" diff --git a/pkg/debrid/torrent.go b/pkg/debrid/torrent.go index bc9c582..291ef4d 100644 --- a/pkg/debrid/torrent.go +++ b/pkg/debrid/torrent.go @@ -58,7 +58,7 @@ func (t *Torrent) GetSymlinkFolder(parent string) string { return filepath.Join(parent, t.Arr.Name, t.Folder) } -func (t *Torrent) GetMountFolder(rClonePath string) string { +func (t *Torrent) GetMountFolder(rClonePath string) (string, error) { possiblePaths := []string{ t.OriginalFilename, t.Filename, @@ -67,10 +67,10 @@ func (t *Torrent) GetMountFolder(rClonePath string) string { for _, path := range possiblePaths { if common.FileReady(filepath.Join(rClonePath, path)) { - return path + return path, nil } } - return "" + return "", nil } func (t *Torrent) Delete() { diff --git a/pkg/qbit/shared/downloader.go b/pkg/qbit/shared/downloader.go index 5915c3c..4543d95 100644 --- a/pkg/qbit/shared/downloader.go +++ b/pkg/qbit/shared/downloader.go @@ -54,6 +54,9 @@ func (q *QBit) ProcessSymlink(debridTorrent *debrid.Torrent) (string, error) { var wg sync.WaitGroup files := debridTorrent.Files ready := make(chan debrid.TorrentFile, len(files)) + if len(files) == 0 { + return "", fmt.Errorf("no video files found") + } q.logger.Printf("Checking %d files...", len(files)) rCloneBase := debridTorrent.Debrid.GetMountPath() @@ -86,9 +89,9 @@ func (q *QBit) ProcessSymlink(debridTorrent *debrid.Torrent) (string, error) { func (q *QBit) getTorrentPath(rclonePath string, debridTorrent *debrid.Torrent) (string, error) { for { - torrentPath := debridTorrent.GetMountFolder(rclonePath) - if torrentPath != "" { - return torrentPath, nil + torrentPath, err := debridTorrent.GetMountFolder(rclonePath) + if err == nil { + return torrentPath, err } time.Sleep(time.Second) } diff --git a/pkg/qbit/shared/torrent.go b/pkg/qbit/shared/torrent.go index d383bc2..089f98b 100644 --- a/pkg/qbit/shared/torrent.go +++ b/pkg/qbit/shared/torrent.go @@ -188,7 +188,8 @@ func (q *QBit) UpdateTorrent(t *Torrent, debridTorrent *debrid.Torrent) *Torrent } if t.TorrentPath == "" { - t.TorrentPath = filepath.Base(debridTorrent.GetMountFolder(rcLoneMount)) + tPath, _ := debridTorrent.GetMountFolder(rcLoneMount) + t.TorrentPath = filepath.Base(tPath) } savePath := filepath.Join(q.DownloadFolder, t.Category) + string(os.PathSeparator) torrentPath := filepath.Join(savePath, t.TorrentPath) + string(os.PathSeparator)