From 7359f280b03c8ea2468bfcb30acf463ed5520da3 Mon Sep 17 00:00:00 2001 From: Mukhtar Akere Date: Thu, 12 Dec 2024 17:38:53 +0100 Subject: [PATCH] Make sure torrents get deleted on failed --- pkg/debrid/debrid.go | 3 +++ pkg/qbit/server/torrent_handlers.go | 5 +++++ pkg/qbit/shared/torrent.go | 1 + 3 files changed, 9 insertions(+) diff --git a/pkg/debrid/debrid.go b/pkg/debrid/debrid.go index 8ae9291..3af5176 100644 --- a/pkg/debrid/debrid.go +++ b/pkg/debrid/debrid.go @@ -163,6 +163,9 @@ func ProcessTorrent(d *DebridService, magnet *common.Magnet, a *arr.Arr, isSymli dbt, err := db.SubmitMagnet(debridTorrent) if err != nil || dbt.Id == "" { + if dbt != nil { + dbt.Delete() + } logger.Printf("Error submitting magnet: %s", err) continue } diff --git a/pkg/qbit/server/torrent_handlers.go b/pkg/qbit/server/torrent_handlers.go index 4ef1e84..b724d44 100644 --- a/pkg/qbit/server/torrent_handlers.go +++ b/pkg/qbit/server/torrent_handlers.go @@ -61,6 +61,11 @@ func (s *Server) handleTorrentsAdd(w http.ResponseWriter, r *http.Request) { if contentType == "multipart/form-data" { files := r.MultipartForm.File["torrents"] + if len(files) == 0 { + s.logger.Printf("No files provided\n") + http.Error(w, "No files provided", http.StatusBadRequest) + return + } for _, fileHeader := range files { if err := s.qbit.AddTorrent(ctx, fileHeader, category); err != nil { s.logger.Printf("Error adding torrent: %v\n", err) diff --git a/pkg/qbit/shared/torrent.go b/pkg/qbit/shared/torrent.go index b0c0407..5e6497b 100644 --- a/pkg/qbit/shared/torrent.go +++ b/pkg/qbit/shared/torrent.go @@ -97,6 +97,7 @@ func (q *QBit) ProcessFiles(torrent *Torrent, debridTorrent *debrid.Torrent, arr dbT, err := debridTorrent.Debrid.CheckStatus(debridTorrent, isSymlink) if err != nil { q.logger.Printf("Error checking status: %v", err) + go debridTorrent.Delete() q.MarkAsFailed(torrent) _ = arr.Refresh() return