mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 10:36:54 -07:00
Finished #923 !!!
This commit is contained in:
parent
02a1770b31
commit
4926255094
18 changed files with 283 additions and 22 deletions
|
@ -175,7 +175,7 @@ namespace Ombi.UI.Modules.Admin
|
|||
Get["/getusers"] = _ => GetUsers();
|
||||
|
||||
Get["/couchpotato"] = _ => CouchPotato();
|
||||
Post["/couchpotato"] = _ => SaveCouchPotato();
|
||||
Post["/couchpotato", true] = async (x, ct) => await SaveCouchPotato();
|
||||
|
||||
Get["/plex"] = _ => Plex();
|
||||
Post["/plex", true] = async (x, ct) => await SavePlex();
|
||||
|
@ -185,7 +185,7 @@ namespace Ombi.UI.Modules.Admin
|
|||
Post["/sonarrprofiles"] = _ => GetSonarrQualityProfiles();
|
||||
|
||||
Get["/radarr", true] = async (x, ct) => await Radarr();
|
||||
Post["/radarr"] = _ => SaveRadarr();
|
||||
Post["/radarr", true] = async (x, ct) => await SaveRadarr();
|
||||
Post["/radarrprofiles"] = _ => GetRadarrQualityProfiles();
|
||||
|
||||
Get["/sickrage"] = _ => Sickrage();
|
||||
|
@ -385,7 +385,7 @@ namespace Ombi.UI.Modules.Admin
|
|||
return View["CouchPotato", settings];
|
||||
}
|
||||
|
||||
private Response SaveCouchPotato()
|
||||
private async Task<Response> SaveCouchPotato()
|
||||
{
|
||||
var couchPotatoSettings = this.Bind<CouchPotatoSettings>();
|
||||
var valid = this.Validate(couchPotatoSettings);
|
||||
|
@ -394,7 +394,7 @@ namespace Ombi.UI.Modules.Admin
|
|||
return Response.AsJson(valid.SendJsonError());
|
||||
}
|
||||
|
||||
var watcherSettings = WatcherSettings.GetSettings();
|
||||
var watcherSettings = await WatcherSettings.GetSettingsAsync();
|
||||
|
||||
if (watcherSettings.Enabled)
|
||||
{
|
||||
|
@ -406,8 +406,20 @@ namespace Ombi.UI.Modules.Admin
|
|||
});
|
||||
}
|
||||
|
||||
var radarrSettings = await RadarrSettings.GetSettingsAsync();
|
||||
|
||||
if (radarrSettings.Enabled)
|
||||
{
|
||||
return
|
||||
Response.AsJson(new JsonResponseModel
|
||||
{
|
||||
Result = false,
|
||||
Message = "Cannot have Radarr and CouchPotato both enabled."
|
||||
});
|
||||
}
|
||||
|
||||
couchPotatoSettings.ApiKey = couchPotatoSettings.ApiKey.Trim();
|
||||
var result = CpService.SaveSettings(couchPotatoSettings);
|
||||
var result = await CpService.SaveSettingsAsync(couchPotatoSettings);
|
||||
return Response.AsJson(result
|
||||
? new JsonResponseModel { Result = true, Message = "Successfully Updated the Settings for CouchPotato!" }
|
||||
: new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." });
|
||||
|
@ -465,6 +477,7 @@ namespace Ombi.UI.Modules.Admin
|
|||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "SickRage is enabled, we cannot enable Sonarr and SickRage" });
|
||||
}
|
||||
|
||||
sonarrSettings.ApiKey = sonarrSettings.ApiKey.Trim();
|
||||
var result = SonarrService.SaveSettings(sonarrSettings);
|
||||
|
||||
|
@ -480,25 +493,34 @@ namespace Ombi.UI.Modules.Admin
|
|||
return View["Radarr", settings];
|
||||
}
|
||||
|
||||
private Response SaveRadarr()
|
||||
private async Task<Response> SaveRadarr()
|
||||
{
|
||||
var sonarrSettings = this.Bind<SonarrSettings>();
|
||||
var radarrSettings = this.Bind<RadarrSettings>();
|
||||
|
||||
var valid = this.Validate(sonarrSettings);
|
||||
//Check Watcher and CP make sure they are not enabled
|
||||
var watcher = await WatcherSettings.GetSettingsAsync();
|
||||
if (watcher.Enabled)
|
||||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Watcher is enabled, we cannot enable Watcher and Radarr" });
|
||||
}
|
||||
|
||||
var cp = await CpService.GetSettingsAsync();
|
||||
if (cp.Enabled)
|
||||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "CouchPotato is enabled, we cannot enable Watcher and CouchPotato" });
|
||||
}
|
||||
|
||||
var valid = this.Validate(radarrSettings);
|
||||
if (!valid.IsValid)
|
||||
{
|
||||
return Response.AsJson(valid.SendJsonError());
|
||||
}
|
||||
var sickRageEnabled = SickRageService.GetSettings().Enabled;
|
||||
if (sickRageEnabled)
|
||||
{
|
||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "SickRage is enabled, we cannot enable Sonarr and SickRage" });
|
||||
}
|
||||
sonarrSettings.ApiKey = sonarrSettings.ApiKey.Trim();
|
||||
var result = SonarrService.SaveSettings(sonarrSettings);
|
||||
|
||||
radarrSettings.ApiKey = radarrSettings.ApiKey.Trim();
|
||||
var result = await RadarrSettings.SaveSettingsAsync(radarrSettings);
|
||||
|
||||
return Response.AsJson(result
|
||||
? new JsonResponseModel { Result = true, Message = "Successfully Updated the Settings for Sonarr!" }
|
||||
? new JsonResponseModel { Result = true, Message = "Successfully Updated the Settings for Radarr!" }
|
||||
: new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." });
|
||||
}
|
||||
|
||||
|
|
|
@ -97,6 +97,18 @@ namespace Ombi.UI.Modules.Admin
|
|||
});
|
||||
}
|
||||
|
||||
var watcherSettings = await WatcherSettings.GetSettingsAsync();
|
||||
|
||||
if (watcherSettings.Enabled)
|
||||
{
|
||||
return
|
||||
Response.AsJson(new JsonResponseModel
|
||||
{
|
||||
Result = false,
|
||||
Message = "Cannot have Watcher and CouchPotato both enabled."
|
||||
});
|
||||
}
|
||||
|
||||
settings.ApiKey = settings.ApiKey.Trim();
|
||||
var result = await WatcherSettings.SaveSettingsAsync(settings);
|
||||
return Response.AsJson(result
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace Ombi.UI.Modules
|
|||
ISettingsService<PlexSettings> plexService, ISettingsService<AuthenticationSettings> auth,
|
||||
IRepository<UsersToNotify> u, ISettingsService<EmailNotificationSettings> email,
|
||||
IIssueService issue, IAnalytics a, IRepository<RequestLimit> rl, ITransientFaultQueue tfQueue, IRepository<PlexContent> content,
|
||||
ISecurityExtensions security, IMovieSender movieSender)
|
||||
ISecurityExtensions security, IMovieSender movieSender, IRadarrCacher radarrCacher)
|
||||
: base("search", prSettings, security)
|
||||
{
|
||||
Auth = auth;
|
||||
|
@ -108,6 +108,7 @@ namespace Ombi.UI.Modules
|
|||
PlexContentRepository = content;
|
||||
MovieSender = movieSender;
|
||||
WatcherCacher = watcherCacher;
|
||||
RadarrCacher = radarrCacher;
|
||||
|
||||
Get["SearchIndex", "/", true] = async (x, ct) => await RequestLoad();
|
||||
|
||||
|
@ -157,6 +158,7 @@ namespace Ombi.UI.Modules
|
|||
private IAnalytics Analytics { get; }
|
||||
private ITransientFaultQueue FaultQueue { get; }
|
||||
private IRepository<RequestLimit> RequestLimitRepo { get; }
|
||||
private IRadarrCacher RadarrCacher { get; }
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private async Task<Negotiator> RequestLoad()
|
||||
|
@ -236,6 +238,7 @@ namespace Ombi.UI.Modules
|
|||
|
||||
var cpCached = CpCacher.QueuedIds();
|
||||
var watcherCached = WatcherCacher.QueuedIds();
|
||||
var radarrCached = RadarrCacher.QueuedIds();
|
||||
var content = PlexContentRepository.GetAll();
|
||||
var plexMovies = Checker.GetPlexMovies(content);
|
||||
var viewMovies = new List<SearchMovieViewModel>();
|
||||
|
@ -288,13 +291,19 @@ namespace Ombi.UI.Modules
|
|||
}
|
||||
else if (cpCached.Contains(movie.Id) && canSee) // compare to the couchpotato db
|
||||
{
|
||||
viewMovie.Approved = true;
|
||||
viewMovie.Requested = true;
|
||||
}
|
||||
else if(watcherCached.Contains(imdbId) && canSee) // compare to the watcher db
|
||||
{
|
||||
viewMovie.Approved = true;
|
||||
viewMovie.Requested = true;
|
||||
}
|
||||
else if (radarrCached.Contains(movie.Id) && canSee)
|
||||
{
|
||||
viewMovie.Approved = true;
|
||||
viewMovie.Requested = true;
|
||||
}
|
||||
|
||||
viewMovies.Add(viewMovie);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue