mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-24 22:55:21 -04:00
Support for Gazelle Indexers (RED, AR)
This commit is contained in:
@@ -15,6 +15,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
private readonly IRarbgTokenProvider _tokenProvider;
|
||||
|
||||
public override string Name => "Rarbg";
|
||||
public override string BaseUrl => "https://torrentapi.org";
|
||||
|
||||
public override DownloadProtocol Protocol => DownloadProtocol.Torrent;
|
||||
|
||||
@@ -50,7 +51,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new RarbgRequestGenerator(_tokenProvider) { Settings = Settings };
|
||||
return new RarbgRequestGenerator(_tokenProvider) { Settings = Settings, BaseUrl = BaseUrl };
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
@@ -66,7 +67,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
|
||||
try
|
||||
{
|
||||
var request = new HttpRequestBuilder(Settings.BaseUrl.Trim('/'))
|
||||
var request = new HttpRequestBuilder(BaseUrl.Trim('/'))
|
||||
.Resource("/pubapi_v2.php?get_token=get_token")
|
||||
.Accept(HttpAccept.Json)
|
||||
.Build();
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
{
|
||||
private readonly IRarbgTokenProvider _tokenProvider;
|
||||
|
||||
public string BaseUrl { get; set; }
|
||||
public RarbgSettings Settings { get; set; }
|
||||
|
||||
public RarbgRequestGenerator(IRarbgTokenProvider tokenProvider)
|
||||
@@ -28,7 +29,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
|
||||
private IEnumerable<IndexerRequest> GetMovieRequest(MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl)
|
||||
var requestBuilder = new HttpRequestBuilder(BaseUrl)
|
||||
.Resource("/pubapi_v2.php")
|
||||
.Accept(HttpAccept.Json);
|
||||
|
||||
@@ -62,7 +63,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
|
||||
requestBuilder.AddQueryParam("category", categoryParam);
|
||||
requestBuilder.AddQueryParam("limit", "100");
|
||||
requestBuilder.AddQueryParam("token", _tokenProvider.GetToken(Settings));
|
||||
requestBuilder.AddQueryParam("token", _tokenProvider.GetToken(Settings, BaseUrl));
|
||||
requestBuilder.AddQueryParam("format", "json_extended");
|
||||
requestBuilder.AddQueryParam("app_id", BuildInfo.AppName);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ using FluentValidation;
|
||||
using NzbDrone.Core.Annotations;
|
||||
using NzbDrone.Core.Languages;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.ThingiProvider;
|
||||
using NzbDrone.Core.Validation;
|
||||
|
||||
namespace NzbDrone.Core.Indexers.Rarbg
|
||||
@@ -11,22 +12,18 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
{
|
||||
public RarbgSettingsValidator()
|
||||
{
|
||||
RuleFor(c => c.BaseUrl).ValidRootUrl();
|
||||
}
|
||||
}
|
||||
|
||||
public class RarbgSettings : IIndexerSettings
|
||||
public class RarbgSettings : IProviderConfig
|
||||
{
|
||||
private static readonly RarbgSettingsValidator Validator = new RarbgSettingsValidator();
|
||||
|
||||
public RarbgSettings()
|
||||
{
|
||||
BaseUrl = "https://torrentapi.org";
|
||||
RankedOnly = false;
|
||||
}
|
||||
|
||||
public string BaseUrl { get; set; }
|
||||
|
||||
[FieldDefinition(1, Type = FieldType.Checkbox, Label = "Ranked Only", HelpText = "Only include ranked results.")]
|
||||
public bool RankedOnly { get; set; }
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
{
|
||||
public interface IRarbgTokenProvider
|
||||
{
|
||||
string GetToken(RarbgSettings settings);
|
||||
string GetToken(RarbgSettings settings, string baseUrl);
|
||||
}
|
||||
|
||||
public class RarbgTokenProvider : IRarbgTokenProvider
|
||||
@@ -25,12 +25,12 @@ namespace NzbDrone.Core.Indexers.Rarbg
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public string GetToken(RarbgSettings settings)
|
||||
public string GetToken(RarbgSettings settings, string baseUrl)
|
||||
{
|
||||
return _tokenCache.Get(settings.BaseUrl,
|
||||
return _tokenCache.Get(baseUrl,
|
||||
() =>
|
||||
{
|
||||
var requestBuilder = new HttpRequestBuilder(settings.BaseUrl.Trim('/'))
|
||||
var requestBuilder = new HttpRequestBuilder(baseUrl.Trim('/'))
|
||||
.WithRateLimit(3.0)
|
||||
.Resource("/pubapi_v2.php?get_token=get_token&app_id=Prowlarr")
|
||||
.Accept(HttpAccept.Json);
|
||||
|
||||
Reference in New Issue
Block a user