From 09beaa939d2c07da5c988e23c4ed4d5938f6d01b Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 24 Aug 2023 00:02:23 +0300 Subject: [PATCH] Fixed: (FileList) Prevent double query escaping in search requests --- .../Indexers/FileList/FileListRequestGenerator.cs | 10 ++++++++-- .../Indexers/FileList/FileListSettings.cs | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs b/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs index 3a10dc43d..dfbd62873 100644 --- a/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs @@ -23,7 +23,11 @@ public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCr { var pageableRequests = new IndexerPageableRequestChain(); - pageableRequests.Add(GetRequest("search-torrents", Settings.Categories, string.Format("&type=name&query={0}+{1}", Uri.EscapeDataString(searchCriteria.AuthorQuery.Trim()), Uri.EscapeDataString(searchCriteria.BookQuery.Trim())))); + var authorQuery = searchCriteria.AuthorQuery.Replace("+", " ").Trim(); + var bookQuery = searchCriteria.BookQuery.Replace("+", " ").Trim(); + + pageableRequests.Add(GetRequest("search-torrents", Settings.Categories, string.Format("&type=name&query={0}+{1}", Uri.EscapeDataString(authorQuery), Uri.EscapeDataString(bookQuery)))); + pageableRequests.Add(GetRequest("search-torrents", Settings.Categories, string.Format("&type=name&query={0}+{1}", Uri.EscapeDataString(bookQuery), Uri.EscapeDataString(authorQuery)))); return pageableRequests; } @@ -32,7 +36,9 @@ public IndexerPageableRequestChain GetSearchRequests(AuthorSearchCriteria search { var pageableRequests = new IndexerPageableRequestChain(); - pageableRequests.Add(GetRequest("search-torrents", Settings.Categories, string.Format("&type=name&query={0}", Uri.EscapeDataString(searchCriteria.AuthorQuery.Trim())))); + var authorQuery = searchCriteria.AuthorQuery.Replace("+", " ").Trim(); + + pageableRequests.Add(GetRequest("search-torrents", Settings.Categories, string.Format("&type=name&query={0}", Uri.EscapeDataString(authorQuery)))); return pageableRequests; } diff --git a/src/NzbDrone.Core/Indexers/FileList/FileListSettings.cs b/src/NzbDrone.Core/Indexers/FileList/FileListSettings.cs index c77a2b9d1..46c3e3d28 100644 --- a/src/NzbDrone.Core/Indexers/FileList/FileListSettings.cs +++ b/src/NzbDrone.Core/Indexers/FileList/FileListSettings.cs @@ -28,7 +28,7 @@ public FileListSettings() Categories = new int[] { - (int)FileListCategories.DOCS + (int)FileListCategories.Docs }; } @@ -61,7 +61,7 @@ public NzbDroneValidationResult Validate() public enum FileListCategories { - [FieldOption] - DOCS = 16, + [FieldOption(Label = "Docs")] + Docs = 16, } }