From 674be2843d10de1923b68054f48a1ebb28280e53 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 22 Aug 2015 15:21:29 -0600 Subject: [PATCH] RARBG API request throttling --- src/Jackett/Indexers/Rarbg.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Jackett/Indexers/Rarbg.cs b/src/Jackett/Indexers/Rarbg.cs index e1a021394..5e35e85bb 100644 --- a/src/Jackett/Indexers/Rarbg.cs +++ b/src/Jackett/Indexers/Rarbg.cs @@ -107,7 +107,12 @@ namespace Jackett.Indexers return IndexerConfigurationStatus.Completed; } - public async Task> PerformQuery(TorznabQuery query) + public Task> PerformQuery(TorznabQuery query) + { + return PerformQuery(query, 0); + } + + public async Task> PerformQuery(TorznabQuery query, int attempts = 0) { await CheckToken(); var releases = new List(); @@ -120,6 +125,7 @@ namespace Jackett.Indexers { episodeSearchUrl += "&category=" + cats; } + var response = await RequestStringWithCookiesAndRetry(episodeSearchUrl, string.Empty); try @@ -134,7 +140,15 @@ namespace Jackett.Indexers if (errorCode > 0) // too many requests per second { - throw new Exception(jsonContent.Value("error")); + if (attempts < 3) + { + await Task.Delay(TimeSpan.FromSeconds(2)); + return await PerformQuery(query, ++attempts); + } + else + { + throw new Exception(jsonContent.Value("error")); + } } foreach (var item in jsonContent.Value("torrent_results"))