Fixed: BTN will now use http/https for grabbing downloads as specified by the settings instead of by the feed.

pull/4/head
Taloth Saldono 10 years ago
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…
Cancel
Save