From b85ff8503c02c61a80ec522bc9dfaf2b985d8093 Mon Sep 17 00:00:00 2001 From: Kayomani Date: Mon, 20 Jul 2015 22:30:08 +0100 Subject: [PATCH] Add missed file --- src/Jackett/Controllers/APIController.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Jackett/Controllers/APIController.cs b/src/Jackett/Controllers/APIController.cs index 18eaad0d0..c73530863 100644 --- a/src/Jackett/Controllers/APIController.cs +++ b/src/Jackett/Controllers/APIController.cs @@ -4,6 +4,7 @@ using NLog; using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; @@ -12,15 +13,19 @@ using System.Web.Http; namespace Jackett.Controllers { + [AllowAnonymous] public class APIController : ApiController { private IIndexerManagerService indexerService; private Logger logger; + private IServerService serverService; - public APIController(IIndexerManagerService i, Logger l) + + public APIController(IIndexerManagerService i, Logger l, IServerService s) { indexerService = i; logger = l; + serverService = s; } [HttpGet] @@ -29,9 +34,17 @@ namespace Jackett.Controllers var indexer = indexerService.GetIndexer(indexerName); var torznabQuery = TorznabQuery.FromHttpQuery(HttpUtility.ParseQueryString(Request.RequestUri.Query)); - if (torznabQuery.RageIDLookupEnabled && indexer.RequiresRageIDLookupDisabled) + if (!string.Equals(torznabQuery.ApiKey, serverService.Config.APIKey, StringComparison.InvariantCultureIgnoreCase)) { - throw new ArgumentException("This indexer requires RageID lookup disabled"); + return Request.CreateResponse(HttpStatusCode.Forbidden, "Incorrect API key"); + } + + if (torznabQuery.QueryType == "caps") + { + return new HttpResponseMessage() + { + Content = new StringContent(indexer.TorznabCaps.ToXml(), Encoding.UTF8, "application/rss+xml") + }; } var releases = await indexer.PerformQuery(torznabQuery);