|
|
@ -1,32 +1,54 @@
|
|
|
|
using System.Linq;
|
|
|
|
using System.Linq;
|
|
|
|
using Ombi.Core.Settings;
|
|
|
|
|
|
|
|
using Ombi.Settings.Settings.Models.External;
|
|
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
|
|
using Ombi.Api.DogNzb.Models;
|
|
|
|
using Ombi.Api.Radarr;
|
|
|
|
using Ombi.Api.Radarr;
|
|
|
|
|
|
|
|
using Ombi.Core.Settings;
|
|
|
|
using Ombi.Helpers;
|
|
|
|
using Ombi.Helpers;
|
|
|
|
|
|
|
|
using Ombi.Settings.Settings.Models.External;
|
|
|
|
using Ombi.Store.Entities.Requests;
|
|
|
|
using Ombi.Store.Entities.Requests;
|
|
|
|
|
|
|
|
using Ombi.Api.DogNzb;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Ombi.Core
|
|
|
|
namespace Ombi.Core.Senders
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public class MovieSender : IMovieSender
|
|
|
|
public class MovieSender : IMovieSender
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public MovieSender(ISettingsService<RadarrSettings> radarrSettings, IRadarrApi api, ILogger<MovieSender> log)
|
|
|
|
public MovieSender(ISettingsService<RadarrSettings> radarrSettings, IRadarrApi api, ILogger<MovieSender> log,
|
|
|
|
|
|
|
|
ISettingsService<DogNzbSettings> dogSettings, IDogNzbApi dogApi)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
RadarrSettings = radarrSettings;
|
|
|
|
RadarrSettings = radarrSettings;
|
|
|
|
RadarrApi = api;
|
|
|
|
RadarrApi = api;
|
|
|
|
Log = log;
|
|
|
|
Log = log;
|
|
|
|
|
|
|
|
DogNzbSettings = dogSettings;
|
|
|
|
|
|
|
|
DogNzbApi = dogApi;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ISettingsService<RadarrSettings> RadarrSettings { get; }
|
|
|
|
private ISettingsService<RadarrSettings> RadarrSettings { get; }
|
|
|
|
private IRadarrApi RadarrApi { get; }
|
|
|
|
private IRadarrApi RadarrApi { get; }
|
|
|
|
private ILogger<MovieSender> Log { get; }
|
|
|
|
private ILogger<MovieSender> Log { get; }
|
|
|
|
|
|
|
|
private IDogNzbApi DogNzbApi { get; }
|
|
|
|
|
|
|
|
private ISettingsService<DogNzbSettings> DogNzbSettings { get; }
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<MovieSenderResult> Send(MovieRequests model)
|
|
|
|
public async Task<SenderResult> Send(MovieRequests model)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//var cpSettings = await CouchPotatoSettings.GetSettingsAsync();
|
|
|
|
//var cpSettings = await CouchPotatoSettings.GetSettingsAsync();
|
|
|
|
//var watcherSettings = await WatcherSettings.GetSettingsAsync();
|
|
|
|
//var watcherSettings = await WatcherSettings.GetSettingsAsync();
|
|
|
|
var radarrSettings = await RadarrSettings.GetSettingsAsync();
|
|
|
|
var radarrSettings = await RadarrSettings.GetSettingsAsync();
|
|
|
|
|
|
|
|
if (radarrSettings.Enabled)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return await SendToRadarr(model, radarrSettings);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var dogSettings = await DogNzbSettings.GetSettingsAsync();
|
|
|
|
|
|
|
|
if (dogSettings.Enabled)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
await SendToDogNzb(model,dogSettings);
|
|
|
|
|
|
|
|
return new SenderResult
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Success = true,
|
|
|
|
|
|
|
|
Sent = true,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//if (cpSettings.Enabled)
|
|
|
|
//if (cpSettings.Enabled)
|
|
|
|
//{
|
|
|
|
//{
|
|
|
@ -38,19 +60,21 @@ namespace Ombi.Core
|
|
|
|
// return SendToWatcher(model, watcherSettings);
|
|
|
|
// return SendToWatcher(model, watcherSettings);
|
|
|
|
//}
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
if (radarrSettings.Enabled)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return await SendToRadarr(model, radarrSettings);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new MovieSenderResult
|
|
|
|
return new SenderResult
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Success = true,
|
|
|
|
Success = true,
|
|
|
|
MovieSent = false,
|
|
|
|
Sent = false,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private async Task<MovieSenderResult> SendToRadarr(MovieRequests model, RadarrSettings settings)
|
|
|
|
private async Task<DogNzbMovieAddResult> SendToDogNzb(FullBaseRequest model, DogNzbSettings settings)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var id = model.ImdbId;
|
|
|
|
|
|
|
|
return await DogNzbApi.AddMovie(settings.ApiKey, id);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private async Task<SenderResult> SendToRadarr(MovieRequests model, RadarrSettings settings)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var qualityToUse = int.Parse(settings.DefaultQualityProfile);
|
|
|
|
var qualityToUse = int.Parse(settings.DefaultQualityProfile);
|
|
|
|
if (model.QualityOverride > 0)
|
|
|
|
if (model.QualityOverride > 0)
|
|
|
@ -64,13 +88,13 @@ namespace Ombi.Core
|
|
|
|
if (!string.IsNullOrEmpty(result.Error?.message))
|
|
|
|
if (!string.IsNullOrEmpty(result.Error?.message))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Log.LogError(LoggingEvents.RadarrCacher,result.Error.message);
|
|
|
|
Log.LogError(LoggingEvents.RadarrCacher,result.Error.message);
|
|
|
|
return new MovieSenderResult { Success = false, Message = result.Error.message, MovieSent = false };
|
|
|
|
return new SenderResult { Success = false, Message = result.Error.message, Sent = false };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(result.title))
|
|
|
|
if (!string.IsNullOrEmpty(result.title))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return new MovieSenderResult { Success = true, MovieSent = false };
|
|
|
|
return new SenderResult { Success = true, Sent = false };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new MovieSenderResult { Success = true, MovieSent = false };
|
|
|
|
return new SenderResult { Success = true, Sent = false };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private async Task<string> RadarrRootPath(int overrideId, RadarrSettings settings)
|
|
|
|
private async Task<string> RadarrRootPath(int overrideId, RadarrSettings settings)
|
|
|
|