Fixed: Escape Characters as needed for *znab queries

(cherry picked from commit f678775e5c3deb0c520f88a137198331fee2831f)
pull/2436/head
bakerboy448 2 years ago committed by Bogdan
parent b27f852154
commit 96aeb022ab

@ -62,5 +62,40 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
page.Url.Query.Should().Contain("author=Alien%20Ant%20Farm");
page.Url.Query.Should().Contain("title=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");
}
}
}

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NzbDrone.Common.Extensions;
@ -145,7 +146,8 @@ namespace NzbDrone.Core.Indexers.Newznab
private static string NewsnabifyTitle(string title)
{
return title.Replace("+", "%20");
title = title.Replace("+", " ");
return Uri.EscapeDataString(title);
}
}
}

Loading…
Cancel
Save