1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2025-02-24 06:50:43 +00:00

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

View file

@ -44,14 +44,27 @@ public HttpRequest(string url, HttpAccept httpAccept = null)
public override string ToString() public override string ToString()
{ {
if (ContentSummary == null) return ToString();
{
return string.Format("Req: [{0}] {1}", Method, Url);
} }
else
public string ToString(bool includeMethod = true, bool includeSummary = true)
{ {
return string.Format("Req: [{0}] {1}: {2}", Method, Url, ContentSummary); var builder = new StringBuilder();
if (includeMethod)
{
builder.AppendFormat("Req: [{0}] ", Method);
} }
builder.Append(Url);
if (includeSummary && ContentSummary.IsNotNullOrWhiteSpace())
{
builder.Append(": ");
builder.Append(ContentSummary);
}
return builder.ToString();
} }
public void SetContent(byte[] data) public void SetContent(byte[] data)

View file

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Newtonsoft.Json;
using NzbDrone.Common.Serializer; using NzbDrone.Common.Serializer;
namespace NzbDrone.Common.Http namespace NzbDrone.Common.Http
@ -86,7 +87,7 @@ private void ConvertParameter(object value, out object data, out string summary)
else else
{ {
data = value; data = value;
summary = data.ToJson(); summary = JsonConvert.SerializeObject(data);
} }
} }

View file

@ -28,7 +28,19 @@ public BroadcastheNet(IHttpClient httpClient, IIndexerStatusService indexerStatu
public override IIndexerRequestGenerator GetRequestGenerator() 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() public override IParseIndexerResponse GetParser()

View file

@ -13,6 +13,8 @@ public class BroadcastheNetRequestGenerator : IIndexerRequestGenerator
public int PageSize { get; set; } public int PageSize { get; set; }
public BroadcastheNetSettings Settings { get; set; } public BroadcastheNetSettings Settings { get; set; }
public int? LastRecentTorrentID { get; set; }
public BroadcastheNetRequestGenerator() public BroadcastheNetRequestGenerator()
{ {
MaxPages = 10; MaxPages = 10;
@ -23,7 +25,18 @@ public virtual IndexerPageableRequestChain GetRecentRequests()
{ {
var pageableRequests = new IndexerPageableRequestChain(); 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; return pageableRequests;
} }
@ -167,11 +180,6 @@ private bool AddSeriesSearchParameters(BroadcastheNetTorrentQuery parameters, Se
private IEnumerable<IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters) private IEnumerable<IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters)
{ {
if (parameters == null)
{
parameters = new BroadcastheNetTorrentQuery();
}
var builder = new JsonRpcRequestBuilder(Settings.BaseUrl) var builder = new JsonRpcRequestBuilder(Settings.BaseUrl)
.Call("getTorrents", Settings.ApiKey, parameters, PageSize, 0); .Call("getTorrents", Settings.ApiKey, parameters, PageSize, 0);
builder.SuppressHttpError = true; builder.SuppressHttpError = true;

View file

@ -275,7 +275,7 @@ protected virtual IList<ReleaseInfo> FetchPage(IndexerRequest request, IParseInd
protected virtual IndexerResponse FetchIndexerResponse(IndexerRequest request) 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) if (request.HttpRequest.RateLimit < RateLimit)
{ {