Fixed: Adjusted BTN Recent Feed (RssSync) to better use their api db indexes.

This commit is contained in:
Taloth Saldono
2016-05-10 21:21:20 +02:00
parent 2f3bc61af7
commit 0f1afd416b
5 changed files with 47 additions and 13 deletions
@@ -28,7 +28,19 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
public override IIndexerRequestGenerator GetRequestGenerator()
{
return new BroadcastheNetRequestGenerator() { Settings = Settings, PageSize = PageSize };
var requestGenerator = new BroadcastheNetRequestGenerator() { Settings = Settings, PageSize = PageSize };
var releaseInfo = _indexerStatusService.GetLastRssSyncReleaseInfo(Definition.Id);
if (releaseInfo != null)
{
int torrentID;
if (int.TryParse(releaseInfo.Guid.Replace("BTN-", string.Empty), out torrentID))
{
requestGenerator.LastRecentTorrentID = torrentID;
}
}
return requestGenerator;
}
public override IParseIndexerResponse GetParser()
@@ -13,6 +13,8 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
public int PageSize { get; set; }
public BroadcastheNetSettings Settings { get; set; }
public int? LastRecentTorrentID { get; set; }
public BroadcastheNetRequestGenerator()
{
MaxPages = 10;
@@ -23,7 +25,18 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
{
var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetPagedRequests(MaxPages, null));
var parameters = new BroadcastheNetTorrentQuery();
if (LastRecentTorrentID.HasValue)
{
parameters.Id = ">=" + (LastRecentTorrentID.Value - 100);
}
else
{
parameters.Age = "<=86400";
}
pageableRequests.Add(GetPagedRequests(MaxPages, parameters));
return pageableRequests;
}
@@ -167,11 +180,6 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
private IEnumerable<IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters)
{
if (parameters == null)
{
parameters = new BroadcastheNetTorrentQuery();
}
var builder = new JsonRpcRequestBuilder(Settings.BaseUrl)
.Call("getTorrents", Settings.ApiKey, parameters, PageSize, 0);
builder.SuppressHttpError = true;
@@ -275,7 +275,7 @@ namespace NzbDrone.Core.Indexers
protected virtual IndexerResponse FetchIndexerResponse(IndexerRequest request)
{
_logger.Debug("Downloading Feed " + request.Url);
_logger.Debug("Downloading Feed " + request.HttpRequest.ToString(false));
if (request.HttpRequest.RateLimit < RateLimit)
{