From c0bbab5fa4b24e4fa11c166dbe00fa69217f4989 Mon Sep 17 00:00:00 2001 From: John Conley Date: Sat, 7 Mar 2026 17:39:42 -0800 Subject: [PATCH] Fix /api/v2/torrents/info to filter by hashes query parameter Add support for the `hashes` query parameter (pipe-separated, case-insensitive) to match real qBittorrent API behavior. This fixes compatibility with cleanuparr and *arr apps that rely on hash-based filtering. Co-Authored-By: Claude Opus 4.6 --- .../RdtClient.Web/Controllers/QBittorrentController.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/RdtClient.Web/Controllers/QBittorrentController.cs b/server/RdtClient.Web/Controllers/QBittorrentController.cs index 77e5851..efb3810 100644 --- a/server/RdtClient.Web/Controllers/QBittorrentController.cs +++ b/server/RdtClient.Web/Controllers/QBittorrentController.cs @@ -164,6 +164,15 @@ public class QBittorrentController(ILogger logger, QBitto results = results.Where(m => m.Category == request.Category).ToList(); } + if (!String.IsNullOrWhiteSpace(request.Hashes)) + { + var hashSet = new HashSet( + request.Hashes.Split('|', StringSplitOptions.RemoveEmptyEntries), + StringComparer.OrdinalIgnoreCase + ); + results = results.Where(m => hashSet.Contains(m.Hash)).ToList(); + } + return Ok(results); } @@ -604,6 +613,7 @@ public class QBAuthLoginRequest public class QBTorrentsInfoRequest { public String? Category { get; set; } + public String? Hashes { get; set; } } public class QBTorrentsHashRequest