mirror of
https://github.com/Radarr/Radarr
synced 2025-02-27 08:33:21 +00:00
Fixed: Sabnzbd/Nzbget settings will now fail to save if you entered a non-existing category.
This commit is contained in:
parent
e3d0d25da7
commit
8967f59f35
8 changed files with 52 additions and 27 deletions
|
@ -266,9 +266,18 @@ private String GetVersion(string host = null, int port = 0, string username = nu
|
|||
return _proxy.GetVersion(Settings);
|
||||
}
|
||||
|
||||
public override void Test()
|
||||
public override void Test(NzbgetSettings settings)
|
||||
{
|
||||
_proxy.GetVersion(Settings);
|
||||
_proxy.GetVersion(settings);
|
||||
|
||||
var config = _proxy.GetConfig(settings);
|
||||
|
||||
var categories = GetCategories(config);
|
||||
|
||||
if (!categories.Any(v => v.Name == settings.TvCategory))
|
||||
{
|
||||
throw new ApplicationException("Category does not exist");
|
||||
}
|
||||
}
|
||||
|
||||
public void Execute(TestNzbgetCommand message)
|
||||
|
@ -276,7 +285,7 @@ public void Execute(TestNzbgetCommand message)
|
|||
var settings = new NzbgetSettings();
|
||||
settings.InjectFrom(message);
|
||||
|
||||
_proxy.GetVersion(settings);
|
||||
Test(settings);
|
||||
}
|
||||
|
||||
// Javascript doesn't support 64 bit integers natively so json officially doesn't either.
|
||||
|
|
|
@ -38,7 +38,7 @@ public string DownloadNzb(Stream nzb, string title, string category, int priorit
|
|||
var request = BuildRequest(new JsonRequest("append", parameters));
|
||||
|
||||
var response = Json.Deserialize<NzbgetResponse<Boolean>>(ProcessRequest(request, settings));
|
||||
_logger.Debug("Queue Response: [{0}]", response.Result);
|
||||
_logger.Trace("Response: [{0}]", response.Result);
|
||||
|
||||
if (!response.Result)
|
||||
{
|
||||
|
@ -154,7 +154,7 @@ private string ProcessRequest(IRestRequest restRequest, NzbgetSettings settings)
|
|||
{
|
||||
var client = BuildClient(settings);
|
||||
var response = client.Execute(restRequest);
|
||||
_logger.Debug("Response: {0}", response.Content);
|
||||
_logger.Trace("Response: {0}", response.Content);
|
||||
|
||||
CheckForError(response);
|
||||
|
||||
|
@ -170,6 +170,8 @@ private IRestClient BuildClient(NzbgetSettings settings)
|
|||
settings.Host,
|
||||
settings.Port);
|
||||
|
||||
_logger.Debug("Url: " + url);
|
||||
|
||||
var client = new RestClient(url);
|
||||
client.Authenticator = new HttpBasicAuthenticator(settings.Username, settings.Password);
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
using NzbDrone.Core.Organizer;
|
||||
using NzbDrone.Core.Parser;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using Omu.ValueInjecter;
|
||||
|
||||
namespace NzbDrone.Core.Download.Clients.Pneumatic
|
||||
{
|
||||
|
@ -100,12 +101,12 @@ public override DownloadClientStatus GetStatus()
|
|||
return status;
|
||||
}
|
||||
|
||||
public override void Test()
|
||||
public override void Test(PneumaticSettings settings)
|
||||
{
|
||||
PerformTest(Settings.NzbFolder);
|
||||
PerformWriteTest(settings.NzbFolder);
|
||||
}
|
||||
|
||||
private void PerformTest(string folder)
|
||||
private void PerformWriteTest(string folder)
|
||||
{
|
||||
var testPath = Path.Combine(folder, "drone_test.txt");
|
||||
_diskProvider.WriteAllText(testPath, DateTime.Now.ToString());
|
||||
|
@ -114,7 +115,10 @@ private void PerformTest(string folder)
|
|||
|
||||
public void Execute(TestPneumaticCommand message)
|
||||
{
|
||||
PerformTest(message.Folder);
|
||||
var settings = new PneumaticSettings();
|
||||
settings.InjectFrom(message);
|
||||
|
||||
Test(settings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -218,9 +218,14 @@ public override DownloadClientStatus GetStatus()
|
|||
return status;
|
||||
}
|
||||
|
||||
public override void Test()
|
||||
public override void Test(SabnzbdSettings settings)
|
||||
{
|
||||
_proxy.GetCategories(Settings);
|
||||
var categories = _proxy.GetCategories(settings);
|
||||
|
||||
if (!categories.Any(v => v == settings.TvCategory))
|
||||
{
|
||||
throw new ApplicationException("Category does not exist");
|
||||
}
|
||||
}
|
||||
|
||||
public void Execute(TestSabnzbdCommand message)
|
||||
|
@ -228,7 +233,7 @@ public void Execute(TestSabnzbdCommand message)
|
|||
var settings = new SabnzbdSettings();
|
||||
settings.InjectFrom(message);
|
||||
|
||||
_proxy.GetCategories(settings);
|
||||
Test(settings);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common;
|
||||
|
@ -16,7 +18,7 @@ public interface ISabnzbdProxy
|
|||
void RemoveFrom(string source, string id, SabnzbdSettings settings);
|
||||
string ProcessRequest(IRestRequest restRequest, string action, SabnzbdSettings settings);
|
||||
SabnzbdVersionResponse GetVersion(SabnzbdSettings settings);
|
||||
SabnzbdCategoryResponse GetCategories(SabnzbdSettings settings);
|
||||
List<String> GetCategories(SabnzbdSettings settings);
|
||||
SabnzbdQueue GetQueue(int start, int limit, SabnzbdSettings settings);
|
||||
SabnzbdHistory GetHistory(int start, int limit, SabnzbdSettings settings);
|
||||
void RetryDownload(string id, SabnzbdSettings settings);
|
||||
|
@ -83,12 +85,12 @@ public SabnzbdVersionResponse GetVersion(SabnzbdSettings settings)
|
|||
return response;
|
||||
}
|
||||
|
||||
public SabnzbdCategoryResponse GetCategories(SabnzbdSettings settings)
|
||||
public List<String> GetCategories(SabnzbdSettings settings)
|
||||
{
|
||||
var request = new RestRequest();
|
||||
var action = "mode=get_cats";
|
||||
|
||||
var response = Json.Deserialize<SabnzbdCategoryResponse>(ProcessRequest(request, action, settings));
|
||||
var response = Json.Deserialize<SabnzbdCategoryResponse>(ProcessRequest(request, action, settings)).Categories;
|
||||
|
||||
return response;
|
||||
}
|
||||
|
@ -134,7 +136,7 @@ private IRestClient BuildClient(string action, SabnzbdSettings settings)
|
|||
action,
|
||||
authentication);
|
||||
|
||||
_logger.Debug(url);
|
||||
_logger.Debug("Url: " + url);
|
||||
|
||||
return new RestClient(url);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
using NzbDrone.Core.Parser;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using Omu.ValueInjecter;
|
||||
|
||||
namespace NzbDrone.Core.Download.Clients.UsenetBlackhole
|
||||
{
|
||||
|
@ -136,12 +137,6 @@ public override void RetryDownload(string id)
|
|||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override void Test()
|
||||
{
|
||||
PerformTest(Settings.NzbFolder);
|
||||
PerformTest(Settings.WatchFolder);
|
||||
}
|
||||
|
||||
public override DownloadClientStatus GetStatus()
|
||||
{
|
||||
return new DownloadClientStatus
|
||||
|
@ -151,7 +146,13 @@ public override DownloadClientStatus GetStatus()
|
|||
};
|
||||
}
|
||||
|
||||
private void PerformTest(string folder)
|
||||
public override void Test(UsenetBlackholeSettings settings)
|
||||
{
|
||||
PerformWriteTest(settings.NzbFolder);
|
||||
PerformWriteTest(settings.WatchFolder);
|
||||
}
|
||||
|
||||
private void PerformWriteTest(string folder)
|
||||
{
|
||||
var testPath = Path.Combine(folder, "drone_test.txt");
|
||||
_diskProvider.WriteAllText(testPath, DateTime.Now.ToString());
|
||||
|
@ -160,8 +161,10 @@ private void PerformTest(string folder)
|
|||
|
||||
public void Execute(TestUsenetBlackholeCommand message)
|
||||
{
|
||||
PerformTest(message.NzbFolder);
|
||||
PerformTest(message.WatchFolder);
|
||||
var settings = new UsenetBlackholeSettings();
|
||||
settings.InjectFrom(message);
|
||||
|
||||
Test(settings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,9 +66,10 @@ public abstract DownloadProtocol Protocol
|
|||
public abstract IEnumerable<DownloadClientItem> GetItems();
|
||||
public abstract void RemoveItem(string id);
|
||||
public abstract void RetryDownload(string id);
|
||||
public abstract void Test();
|
||||
public abstract DownloadClientStatus GetStatus();
|
||||
|
||||
public abstract void Test(TSettings settings);
|
||||
|
||||
protected RemoteEpisode GetRemoteEpisode(String title)
|
||||
{
|
||||
var parsedEpisodeInfo = Parser.Parser.ParseTitle(title);
|
||||
|
|
|
@ -13,7 +13,6 @@ public interface IDownloadClient : IProvider
|
|||
IEnumerable<DownloadClientItem> GetItems();
|
||||
void RemoveItem(string id);
|
||||
void RetryDownload(string id);
|
||||
void Test();
|
||||
|
||||
DownloadClientStatus GetStatus();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue