mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
New: Better Application Tests
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using FluentValidation.Results;
|
using FluentValidation.Results;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
@@ -31,7 +32,25 @@ namespace NzbDrone.Core.Applications.Lidarr
|
|||||||
{
|
{
|
||||||
var failures = new List<ValidationFailure>();
|
var failures = new List<ValidationFailure>();
|
||||||
|
|
||||||
failures.AddIfNotNull(_lidarrV1Proxy.Test(Settings));
|
var testIndexer = new IndexerDefinition
|
||||||
|
{
|
||||||
|
Id = 0,
|
||||||
|
Name = "Test",
|
||||||
|
Protocol = DownloadProtocol.Usenet,
|
||||||
|
Capabilities = new IndexerCapabilities()
|
||||||
|
};
|
||||||
|
|
||||||
|
testIndexer.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.Audio);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
failures.AddIfNotNull(_lidarrV1Proxy.TestConnection(BuildLidarrIndexer(testIndexer, DownloadProtocol.Usenet), Settings));
|
||||||
|
}
|
||||||
|
catch (WebException ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Unable to send test message");
|
||||||
|
failures.AddIfNotNull(new ValidationFailure("BaseUrl", "Unable to complete application test, cannot connect to Lidarr"));
|
||||||
|
}
|
||||||
|
|
||||||
return new ValidationResult(failures);
|
return new ValidationResult(failures);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ namespace NzbDrone.Core.Applications.Lidarr
|
|||||||
|
|
||||||
public IEnumerable<int> SyncCategories { get; set; }
|
public IEnumerable<int> SyncCategories { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Lidarr sees it, including http(s):// and port if needed")]
|
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Lidarr sees it, including http(s)://, port, and urlbase if needed")]
|
||||||
public string ProwlarrUrl { get; set; }
|
public string ProwlarrUrl { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Lidarr Server", HelpText = "Lidarr server URL, including http(s):// and port if needed")]
|
[FieldDefinition(1, Label = "Lidarr Server", HelpText = "Lidarr server URL, including http(s):// and port if needed")]
|
||||||
|
@@ -17,7 +17,7 @@ namespace NzbDrone.Core.Applications.Lidarr
|
|||||||
List<LidarrIndexer> GetIndexerSchema(LidarrSettings settings);
|
List<LidarrIndexer> GetIndexerSchema(LidarrSettings settings);
|
||||||
void RemoveIndexer(int indexerId, LidarrSettings settings);
|
void RemoveIndexer(int indexerId, LidarrSettings settings);
|
||||||
LidarrIndexer UpdateIndexer(LidarrIndexer indexer, LidarrSettings settings);
|
LidarrIndexer UpdateIndexer(LidarrIndexer indexer, LidarrSettings settings);
|
||||||
ValidationFailure Test(LidarrSettings settings);
|
ValidationFailure TestConnection(LidarrIndexer indexer, LidarrSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LidarrV1Proxy : ILidarrV1Proxy
|
public class LidarrV1Proxy : ILidarrV1Proxy
|
||||||
@@ -91,11 +91,15 @@ namespace NzbDrone.Core.Applications.Lidarr
|
|||||||
return Execute<LidarrIndexer>(request);
|
return Execute<LidarrIndexer>(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidationFailure Test(LidarrSettings settings)
|
public ValidationFailure TestConnection(LidarrIndexer indexer, LidarrSettings settings)
|
||||||
{
|
{
|
||||||
|
var request = BuildRequest(settings, $"/api/v1/indexer/test", HttpMethod.POST);
|
||||||
|
|
||||||
|
request.SetContent(indexer.ToJson());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
GetStatus(settings);
|
Execute<LidarrIndexer>(request);
|
||||||
}
|
}
|
||||||
catch (HttpException ex)
|
catch (HttpException ex)
|
||||||
{
|
{
|
||||||
@@ -105,8 +109,14 @@ namespace NzbDrone.Core.Applications.Lidarr
|
|||||||
return new ValidationFailure("ApiKey", "API Key is invalid");
|
return new ValidationFailure("ApiKey", "API Key is invalid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ex.Response.StatusCode == HttpStatusCode.BadRequest)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Prowlarr URL is invalid");
|
||||||
|
return new ValidationFailure("ProwlarrUrl", "Prowlarr url is invalid, Lidarr cannot connect to Prowlarr");
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Error(ex, "Unable to send test message");
|
_logger.Error(ex, "Unable to send test message");
|
||||||
return new ValidationFailure("ApiKey", "Unable to send test message");
|
return new ValidationFailure("BaseUrl", "Unable to complete application test");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using FluentValidation.Results;
|
using FluentValidation.Results;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
@@ -31,7 +32,25 @@ namespace NzbDrone.Core.Applications.Radarr
|
|||||||
{
|
{
|
||||||
var failures = new List<ValidationFailure>();
|
var failures = new List<ValidationFailure>();
|
||||||
|
|
||||||
failures.AddIfNotNull(_radarrV3Proxy.Test(Settings));
|
var testIndexer = new IndexerDefinition
|
||||||
|
{
|
||||||
|
Id = 0,
|
||||||
|
Name = "Test",
|
||||||
|
Protocol = DownloadProtocol.Usenet,
|
||||||
|
Capabilities = new IndexerCapabilities()
|
||||||
|
};
|
||||||
|
|
||||||
|
testIndexer.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
failures.AddIfNotNull(_radarrV3Proxy.TestConnection(BuildRadarrIndexer(testIndexer, DownloadProtocol.Usenet), Settings));
|
||||||
|
}
|
||||||
|
catch (WebException ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Unable to send test message");
|
||||||
|
failures.AddIfNotNull(new ValidationFailure("BaseUrl", "Unable to complete application test, cannot connect to Radarr"));
|
||||||
|
}
|
||||||
|
|
||||||
return new ValidationResult(failures);
|
return new ValidationResult(failures);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ namespace NzbDrone.Core.Applications.Radarr
|
|||||||
|
|
||||||
public IEnumerable<int> SyncCategories { get; set; }
|
public IEnumerable<int> SyncCategories { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Radarr sees it, including http(s):// and port if needed")]
|
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Radarr sees it, including http(s)://, port, and urlbase if needed")]
|
||||||
public string ProwlarrUrl { get; set; }
|
public string ProwlarrUrl { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Radarr Server", HelpText = "Radarr server URL, including http(s):// and port if needed")]
|
[FieldDefinition(1, Label = "Radarr Server", HelpText = "Radarr server URL, including http(s):// and port if needed")]
|
||||||
|
@@ -17,7 +17,7 @@ namespace NzbDrone.Core.Applications.Radarr
|
|||||||
List<RadarrIndexer> GetIndexerSchema(RadarrSettings settings);
|
List<RadarrIndexer> GetIndexerSchema(RadarrSettings settings);
|
||||||
void RemoveIndexer(int indexerId, RadarrSettings settings);
|
void RemoveIndexer(int indexerId, RadarrSettings settings);
|
||||||
RadarrIndexer UpdateIndexer(RadarrIndexer indexer, RadarrSettings settings);
|
RadarrIndexer UpdateIndexer(RadarrIndexer indexer, RadarrSettings settings);
|
||||||
ValidationFailure Test(RadarrSettings settings);
|
ValidationFailure TestConnection(RadarrIndexer indexer, RadarrSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RadarrV3Proxy : IRadarrV3Proxy
|
public class RadarrV3Proxy : IRadarrV3Proxy
|
||||||
@@ -91,11 +91,15 @@ namespace NzbDrone.Core.Applications.Radarr
|
|||||||
return Execute<RadarrIndexer>(request);
|
return Execute<RadarrIndexer>(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidationFailure Test(RadarrSettings settings)
|
public ValidationFailure TestConnection(RadarrIndexer indexer, RadarrSettings settings)
|
||||||
{
|
{
|
||||||
|
var request = BuildRequest(settings, $"/api/v3/indexer/test", HttpMethod.POST);
|
||||||
|
|
||||||
|
request.SetContent(indexer.ToJson());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
GetStatus(settings);
|
Execute<RadarrIndexer>(request);
|
||||||
}
|
}
|
||||||
catch (HttpException ex)
|
catch (HttpException ex)
|
||||||
{
|
{
|
||||||
@@ -105,8 +109,14 @@ namespace NzbDrone.Core.Applications.Radarr
|
|||||||
return new ValidationFailure("ApiKey", "API Key is invalid");
|
return new ValidationFailure("ApiKey", "API Key is invalid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ex.Response.StatusCode == HttpStatusCode.BadRequest)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Prowlarr URL is invalid");
|
||||||
|
return new ValidationFailure("ProwlarrUrl", "Prowlarr url is invalid, Radarr cannot connect to Prowlarr");
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Error(ex, "Unable to send test message");
|
_logger.Error(ex, "Unable to send test message");
|
||||||
return new ValidationFailure("ApiKey", "Unable to send test message");
|
return new ValidationFailure("BaseUrl", "Unable to complete application test");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using FluentValidation.Results;
|
using FluentValidation.Results;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
@@ -31,7 +32,25 @@ namespace NzbDrone.Core.Applications.Readarr
|
|||||||
{
|
{
|
||||||
var failures = new List<ValidationFailure>();
|
var failures = new List<ValidationFailure>();
|
||||||
|
|
||||||
failures.AddIfNotNull(_readarrV1Proxy.Test(Settings));
|
var testIndexer = new IndexerDefinition
|
||||||
|
{
|
||||||
|
Id = 0,
|
||||||
|
Name = "Test",
|
||||||
|
Protocol = DownloadProtocol.Usenet,
|
||||||
|
Capabilities = new IndexerCapabilities()
|
||||||
|
};
|
||||||
|
|
||||||
|
testIndexer.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.Books);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
failures.AddIfNotNull(_readarrV1Proxy.TestConnection(BuildReadarrIndexer(testIndexer, DownloadProtocol.Usenet), Settings));
|
||||||
|
}
|
||||||
|
catch (WebException ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Unable to send test message");
|
||||||
|
failures.AddIfNotNull(new ValidationFailure("BaseUrl", "Unable to complete application test, cannot connect to Readarr"));
|
||||||
|
}
|
||||||
|
|
||||||
return new ValidationResult(failures);
|
return new ValidationResult(failures);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ namespace NzbDrone.Core.Applications.Readarr
|
|||||||
|
|
||||||
public IEnumerable<int> SyncCategories { get; set; }
|
public IEnumerable<int> SyncCategories { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Readarr sees it, including http(s):// and port if needed")]
|
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Readarr sees it, including http(s)://, port, and urlbase if needed")]
|
||||||
public string ProwlarrUrl { get; set; }
|
public string ProwlarrUrl { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Readarr Server", HelpText = "Readarr server URL, including http(s):// and port if needed")]
|
[FieldDefinition(1, Label = "Readarr Server", HelpText = "Readarr server URL, including http(s):// and port if needed")]
|
||||||
|
@@ -17,7 +17,7 @@ namespace NzbDrone.Core.Applications.Readarr
|
|||||||
List<ReadarrIndexer> GetIndexerSchema(ReadarrSettings settings);
|
List<ReadarrIndexer> GetIndexerSchema(ReadarrSettings settings);
|
||||||
void RemoveIndexer(int indexerId, ReadarrSettings settings);
|
void RemoveIndexer(int indexerId, ReadarrSettings settings);
|
||||||
ReadarrIndexer UpdateIndexer(ReadarrIndexer indexer, ReadarrSettings settings);
|
ReadarrIndexer UpdateIndexer(ReadarrIndexer indexer, ReadarrSettings settings);
|
||||||
ValidationFailure Test(ReadarrSettings settings);
|
ValidationFailure TestConnection(ReadarrIndexer indexer, ReadarrSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ReadarrV1Proxy : IReadarrV1Proxy
|
public class ReadarrV1Proxy : IReadarrV1Proxy
|
||||||
@@ -91,11 +91,15 @@ namespace NzbDrone.Core.Applications.Readarr
|
|||||||
return Execute<ReadarrIndexer>(request);
|
return Execute<ReadarrIndexer>(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidationFailure Test(ReadarrSettings settings)
|
public ValidationFailure TestConnection(ReadarrIndexer indexer, ReadarrSettings settings)
|
||||||
{
|
{
|
||||||
|
var request = BuildRequest(settings, $"/api/v1/indexer/test", HttpMethod.POST);
|
||||||
|
|
||||||
|
request.SetContent(indexer.ToJson());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
GetStatus(settings);
|
Execute<ReadarrIndexer>(request);
|
||||||
}
|
}
|
||||||
catch (HttpException ex)
|
catch (HttpException ex)
|
||||||
{
|
{
|
||||||
@@ -105,8 +109,14 @@ namespace NzbDrone.Core.Applications.Readarr
|
|||||||
return new ValidationFailure("ApiKey", "API Key is invalid");
|
return new ValidationFailure("ApiKey", "API Key is invalid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ex.Response.StatusCode == HttpStatusCode.BadRequest)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Prowlarr URL is invalid");
|
||||||
|
return new ValidationFailure("ProwlarrUrl", "Prowlarr url is invalid, Readarr cannot connect to Prowlarr");
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Error(ex, "Unable to send test message");
|
_logger.Error(ex, "Unable to send test message");
|
||||||
return new ValidationFailure("ApiKey", "Unable to send test message");
|
return new ValidationFailure("BaseUrl", "Unable to complete application test");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using FluentValidation.Results;
|
using FluentValidation.Results;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
@@ -31,7 +32,25 @@ namespace NzbDrone.Core.Applications.Sonarr
|
|||||||
{
|
{
|
||||||
var failures = new List<ValidationFailure>();
|
var failures = new List<ValidationFailure>();
|
||||||
|
|
||||||
failures.AddIfNotNull(_sonarrV3Proxy.Test(Settings));
|
var testIndexer = new IndexerDefinition
|
||||||
|
{
|
||||||
|
Id = 0,
|
||||||
|
Name = "Test",
|
||||||
|
Protocol = DownloadProtocol.Usenet,
|
||||||
|
Capabilities = new IndexerCapabilities()
|
||||||
|
};
|
||||||
|
|
||||||
|
testIndexer.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.TV);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
failures.AddIfNotNull(_sonarrV3Proxy.TestConnection(BuildSonarrIndexer(testIndexer, DownloadProtocol.Usenet), Settings));
|
||||||
|
}
|
||||||
|
catch (WebException ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Unable to send test message");
|
||||||
|
failures.AddIfNotNull(new ValidationFailure("BaseUrl", "Unable to complete application test, cannot connect to Sonarr"));
|
||||||
|
}
|
||||||
|
|
||||||
return new ValidationResult(failures);
|
return new ValidationResult(failures);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ namespace NzbDrone.Core.Applications.Sonarr
|
|||||||
|
|
||||||
public IEnumerable<int> SyncCategories { get; set; }
|
public IEnumerable<int> SyncCategories { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Sonarr sees it, including http(s):// and port if needed")]
|
[FieldDefinition(0, Label = "Prowlarr Server", HelpText = "Prowlarr server URL as Sonarr sees it, including http(s)://, port, and urlbase if needed")]
|
||||||
public string ProwlarrUrl { get; set; }
|
public string ProwlarrUrl { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Sonarr Server", HelpText = "Sonarr server URL, including http(s):// and port if needed")]
|
[FieldDefinition(1, Label = "Sonarr Server", HelpText = "Sonarr server URL, including http(s):// and port if needed")]
|
||||||
|
@@ -17,7 +17,7 @@ namespace NzbDrone.Core.Applications.Sonarr
|
|||||||
List<SonarrIndexer> GetIndexerSchema(SonarrSettings settings);
|
List<SonarrIndexer> GetIndexerSchema(SonarrSettings settings);
|
||||||
void RemoveIndexer(int indexerId, SonarrSettings settings);
|
void RemoveIndexer(int indexerId, SonarrSettings settings);
|
||||||
SonarrIndexer UpdateIndexer(SonarrIndexer indexer, SonarrSettings settings);
|
SonarrIndexer UpdateIndexer(SonarrIndexer indexer, SonarrSettings settings);
|
||||||
ValidationFailure Test(SonarrSettings settings);
|
ValidationFailure TestConnection(SonarrIndexer indexer, SonarrSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SonarrV3Proxy : ISonarrV3Proxy
|
public class SonarrV3Proxy : ISonarrV3Proxy
|
||||||
@@ -91,11 +91,15 @@ namespace NzbDrone.Core.Applications.Sonarr
|
|||||||
return Execute<SonarrIndexer>(request);
|
return Execute<SonarrIndexer>(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidationFailure Test(SonarrSettings settings)
|
public ValidationFailure TestConnection(SonarrIndexer indexer, SonarrSettings settings)
|
||||||
{
|
{
|
||||||
|
var request = BuildRequest(settings, $"/api/v3/indexer/test", HttpMethod.POST);
|
||||||
|
|
||||||
|
request.SetContent(indexer.ToJson());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
GetStatus(settings);
|
Execute<SonarrIndexer>(request);
|
||||||
}
|
}
|
||||||
catch (HttpException ex)
|
catch (HttpException ex)
|
||||||
{
|
{
|
||||||
@@ -105,8 +109,14 @@ namespace NzbDrone.Core.Applications.Sonarr
|
|||||||
return new ValidationFailure("ApiKey", "API Key is invalid");
|
return new ValidationFailure("ApiKey", "API Key is invalid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ex.Response.StatusCode == HttpStatusCode.BadRequest)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Prowlarr URL is invalid");
|
||||||
|
return new ValidationFailure("ProwlarrUrl", "Prowlarr url is invalid, Sonarr cannot connect to Prowlarr");
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Error(ex, "Unable to send test message");
|
_logger.Error(ex, "Unable to send test message");
|
||||||
return new ValidationFailure("ApiKey", "Unable to send test message");
|
return new ValidationFailure("BaseUrl", "Unable to complete application test");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@@ -62,6 +62,39 @@ namespace NzbDrone.Api.V1.Indexers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (id == 0)
|
||||||
|
{
|
||||||
|
switch (requestType)
|
||||||
|
{
|
||||||
|
case "caps":
|
||||||
|
var caps = new IndexerCapabilities();
|
||||||
|
foreach (var cat in NewznabStandardCategory.AllCats)
|
||||||
|
{
|
||||||
|
caps.Categories.AddCategoryMapping(1, cat);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Content(caps.ToXml(), "application/rss+xml");
|
||||||
|
case "search":
|
||||||
|
case "tvsearch":
|
||||||
|
case "music":
|
||||||
|
case "book":
|
||||||
|
case "movie":
|
||||||
|
var results = new NewznabResults();
|
||||||
|
results.Releases = new List<ReleaseInfo>
|
||||||
|
{
|
||||||
|
new ReleaseInfo
|
||||||
|
{
|
||||||
|
Title = "Test Release",
|
||||||
|
Guid = "https://prowlarr.com",
|
||||||
|
DownloadUrl = "https://prowlarr.com",
|
||||||
|
PublishDate = DateTime.Now
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return Content(results.ToXml(DownloadProtocol.Usenet), "application/rss+xml");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var indexer = _indexerFactory.Get(id);
|
var indexer = _indexerFactory.Get(id);
|
||||||
|
|
||||||
if (indexer == null)
|
if (indexer == null)
|
||||||
|
Reference in New Issue
Block a user