mirror of https://github.com/Sonarr/Sonarr
Fixed: BTN will now use http/https for grabbing downloads as specified by the settings instead of by the feed.
This commit is contained in:
parent
54a6f7c05b
commit
2c472d6e3e
|
@ -127,5 +127,27 @@ namespace NzbDrone.Core.Test.IndexerTests.BroadcastheNetTests
|
||||||
|
|
||||||
ExceptionVerification.ExpectedWarns(1);
|
ExceptionVerification.ExpectedWarns(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_replace_https_http_as_needed()
|
||||||
|
{
|
||||||
|
var recentFeed = ReadAllText(@"Files/Indexers/BroadcastheNet/RecentFeed.json");
|
||||||
|
|
||||||
|
recentFeed = recentFeed.Replace("http:", "https:");
|
||||||
|
|
||||||
|
Mocker.GetMock<IHttpClient>()
|
||||||
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.POST)))
|
||||||
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
|
var releases = Subject.FetchRecent();
|
||||||
|
|
||||||
|
releases.Should().HaveCount(2);
|
||||||
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
|
|
||||||
|
var torrentInfo = releases.First() as TorrentInfo;
|
||||||
|
|
||||||
|
torrentInfo.DownloadUrl.Should().Be("http://broadcasthe.net/torrents.php?action=download&id=123&authkey=123&torrent_pass=123");
|
||||||
|
torrentInfo.InfoUrl.Should().Be("http://broadcasthe.net/torrents.php?id=237457&torrentid=123");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "BroadcasttheNet";
|
return "BroadcastheNet";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers.Exceptions;
|
using NzbDrone.Core.Indexers.Exceptions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
|
@ -9,6 +10,8 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
|
||||||
{
|
{
|
||||||
public class BroadcastheNetParser : IParseIndexerResponse
|
public class BroadcastheNetParser : IParseIndexerResponse
|
||||||
{
|
{
|
||||||
|
private static readonly Regex RegexProtocol = new Regex("^https?:", RegexOptions.Compiled);
|
||||||
|
|
||||||
public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||||
{
|
{
|
||||||
var results = new List<ReleaseInfo>();
|
var results = new List<ReleaseInfo>();
|
||||||
|
@ -41,15 +44,17 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var protocol = indexerResponse.HttpRequest.Url.Scheme + ":";
|
||||||
|
|
||||||
foreach (var torrent in jsonResponse.Result.Torrents.Values)
|
foreach (var torrent in jsonResponse.Result.Torrents.Values)
|
||||||
{
|
{
|
||||||
var torrentInfo = new TorrentInfo();
|
var torrentInfo = new TorrentInfo();
|
||||||
|
|
||||||
torrentInfo.Guid = String.Format("BTN-{0}", torrent.TorrentID);
|
torrentInfo.Guid = string.Format("BTN-{0}", torrent.TorrentID);
|
||||||
torrentInfo.Title = torrent.ReleaseName;
|
torrentInfo.Title = torrent.ReleaseName;
|
||||||
torrentInfo.Size = torrent.Size;
|
torrentInfo.Size = torrent.Size;
|
||||||
torrentInfo.DownloadUrl = torrent.DownloadURL;
|
torrentInfo.DownloadUrl = RegexProtocol.Replace(torrent.DownloadURL, protocol);
|
||||||
torrentInfo.InfoUrl = String.Format("https://broadcasthe.net/torrents.php?id={0}&torrentid={1}", torrent.GroupID, torrent.TorrentID);
|
torrentInfo.InfoUrl = string.Format("{0}//broadcasthe.net/torrents.php?id={1}&torrentid={2}", protocol, torrent.GroupID, torrent.TorrentID);
|
||||||
//torrentInfo.CommentUrl =
|
//torrentInfo.CommentUrl =
|
||||||
if (torrent.TvrageID.HasValue)
|
if (torrent.TvrageID.HasValue)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue