Fixed: Escape Characters as needed for *znab queries

(cherry picked from commit f678775e5c3deb0c520f88a137198331fee2831f)
This commit is contained in:
bakerboy448 2022-04-09 23:16:20 -05:00 committed by servarr
parent a7d37501c1
commit bf2ef02998
2 changed files with 37 additions and 1 deletions

View File

@ -61,5 +61,40 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
page.Url.Query.Should().Contain("artist=Alien%20Ant%20Farm");
page.Url.Query.Should().Contain("album=TruANT");
}
[Test]
public void should_encode_raw_title()
{
_capabilities.SupportedTvSearchParameters = new[] { "q", "season", "ep" };
_capabilities.TvTextSearchEngine = "raw";
_singleEpisodeSearchCriteria.SceneTitles[0] = "Edith & Little";
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Tiers.Should().Be(1);
var pageTier = results.GetTier(0).First().First();
pageTier.Url.Query.Should().Contain("q=Edith%20%26%20Little");
pageTier.Url.Query.Should().NotContain(" & ");
pageTier.Url.Query.Should().Contain("%26");
}
[Test]
public void should_use_clean_title_and_encode()
{
_capabilities.SupportedTvSearchParameters = new[] { "q", "season", "ep" };
_capabilities.TvTextSearchEngine = "sphinx";
_singleEpisodeSearchCriteria.SceneTitles[0] = "Edith & Little";
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Tiers.Should().Be(1);
var pageTier = results.GetTier(0).First().First();
pageTier.Url.Query.Should().Contain("q=Edith%20and%20Little");
pageTier.Url.Query.Should().Contain("and");
pageTier.Url.Query.Should().NotContain(" & ");
pageTier.Url.Query.Should().NotContain("%26");
}
}
}

View File

@ -151,7 +151,8 @@ namespace NzbDrone.Core.Indexers.Newznab
private static string NewsnabifyTitle(string title)
{
return title.Replace("+", "%20");
title = title.Replace("+", " ");
return Uri.EscapeDataString(title);
}
}
}