public static void SetRadarr(MoviesSettings movieSettings, RadarrSettingsModel radarrSettings) { SettingsFile.Write(settings => { settings.DownloadClients.Radarr.Hostname = radarrSettings.Hostname; settings.DownloadClients.Radarr.Port = radarrSettings.Port; settings.DownloadClients.Radarr.ApiKey = radarrSettings.ApiKey; settings.DownloadClients.Radarr.BaseUrl = radarrSettings.BaseUrl; settings.DownloadClients.Radarr.Categories = JToken.FromObject(radarrSettings.Categories.Select(x => new RadarrCategory { Id = x.Id, Name = x.Name, MinimumAvailability = x.MinimumAvailability, ProfileId = x.ProfileId, RootFolder = x.RootFolder, Tags = x.Tags }).ToArray()); settings.DownloadClients.Radarr.SearchNewRequests = radarrSettings.SearchNewRequests; settings.DownloadClients.Radarr.MonitorNewRequests = radarrSettings.MonitorNewRequests; settings.DownloadClients.Radarr.UseSSL = radarrSettings.UseSSL; settings.DownloadClients.Radarr.Version = radarrSettings.Version; if (settings.Movies.Client != movieSettings.Client) { NotificationsFile.ClearAllMovieNotifications(); } SetMovieSettings(movieSettings, settings); }); }
public async Task <IActionResult> SaveAsync([FromBody] SaveRadarrSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Radarr, Command = model.Command.Trim() }; var radarrSetting = new RadarrSettings { Hostname = model.Hostname.Trim(), ApiKey = model.ApiKey.Trim(), Port = model.Port, MoviePath = model.MoviePath, MovieProfile = model.MovieProfile, MovieMinAvailability = model.MovieMinAvailability, MovieTags = model.MovieTags ?? Array.Empty <int>(), AnimePath = model.AnimePath, AnimeProfile = model.AnimeProfile, AnimeMinAvailability = model.AnimeMinAvailability, AnimeTags = model.AnimeTags ?? Array.Empty <int>(), UseSSL = model.UseSSL, Version = model.Version }; DownloadClientsSettingsRepository.SetRadarr(movieSettings, radarrSetting); return(Ok(new { ok = true })); }
public static void SetDisabledClient(MoviesSettings movieSettings) { SettingsFile.Write(settings => { settings.Movies.Client = movieSettings.Client; }); }
public static void SetRadarr(MoviesSettings movieSettings, RadarrSettingsModel radarrSettings) { SettingsFile.Write(settings => { settings.DownloadClients.Radarr.Hostname = radarrSettings.Hostname; settings.DownloadClients.Radarr.Port = radarrSettings.Port; settings.DownloadClients.Radarr.ApiKey = radarrSettings.ApiKey; settings.DownloadClients.Radarr.BaseUrl = radarrSettings.BaseUrl; settings.DownloadClients.Radarr.MovieProfileId = radarrSettings.MovieProfile; settings.DownloadClients.Radarr.MovieRootFolder = radarrSettings.MoviePath; settings.DownloadClients.Radarr.MovieMinimumAvailability = radarrSettings.MovieMinAvailability; settings.DownloadClients.Radarr.MovieTags = JToken.FromObject(radarrSettings.MovieTags); settings.DownloadClients.Radarr.AnimeProfileId = radarrSettings.AnimeProfile; settings.DownloadClients.Radarr.AnimeRootFolder = radarrSettings.AnimePath; settings.DownloadClients.Radarr.AnimeMinimumAvailability = radarrSettings.AnimeMinAvailability; settings.DownloadClients.Radarr.AnimeTags = JToken.FromObject(radarrSettings.AnimeTags); settings.DownloadClients.Radarr.SearchNewRequests = radarrSettings.SearchNewRequests; settings.DownloadClients.Radarr.MonitorNewRequests = radarrSettings.MonitorNewRequests; settings.DownloadClients.Radarr.UseSSL = radarrSettings.UseSSL; settings.DownloadClients.Radarr.Version = radarrSettings.Version; settings.Movies.Client = movieSettings.Client; settings.Movies.Command = movieSettings.Command; }); }
public static void SetOverseerr(MoviesSettings movieSettings, OverseerrSettingsModel overseerrSettings) { SettingsFile.Write(settings => { SetOverseerrSettings(overseerrSettings, settings); SetMovieSettings(movieSettings, settings); }); }
public static void SetDisabledClient(MoviesSettings movieSettings) { SettingsFile.Write(settings => { NotificationsFile.ClearAllMovieNotifications(); settings.Movies.Client = movieSettings.Client; }); }
public static void SetOmbi(MoviesSettings movieSettings, OmbiSettingsModel ombiSettings) { SettingsFile.Write(settings => { SetOmbiSettings(ombiSettings, settings); SetMovieSettings(movieSettings, settings); }); }
public static void SetOverseerr(MoviesSettings movieSettings, SaveOverseerrMoviesSettingsModel overseerrSettings) { SettingsFile.Write(settings => { SetOverseerrSettings(overseerrSettings, settings); settings.DownloadClients.Overseerr.Movies = JToken.FromObject(overseerrSettings.Movies); SetMovieSettings(movieSettings, settings); }); }
private static void SetMovieSettings(MoviesSettings movieSettings, dynamic settings) { if (settings.Movies.Client != movieSettings.Client) { NotificationsFile.ClearAllMovieNotifications(); } settings.Movies.Client = movieSettings.Client; }
public MovieDownloadClientController( IHttpClientFactory httpClientFactory, MoviesSettingsProvider moviesSettingsProvider, DownloadClientsSettingsProvider downloadClientsSettingsProvider) { _moviesSettings = moviesSettingsProvider.Provide(); _downloadClientsSettings = downloadClientsSettingsProvider.Provide(); _httpClientFactory = httpClientFactory; }
public MovieDownloadClientController( IHttpClientFactory httpClientFactory, IOptionsSnapshot <MoviesSettings> moviesSettingsAccessor, IOptionsSnapshot <DownloadClientsSettings> botClientsSettingsAccessor) { _moviesSettings = moviesSettingsAccessor.Value; _downloadClientsSettings = botClientsSettingsAccessor.Value; _httpClientFactory = httpClientFactory; }
public static void SetOmbi(MoviesSettings movieSettings, OmbiSettingsModel ombiSettings) { SettingsFile.Write(settings => { SetOmbiSettings(ombiSettings, settings); settings.Movies.Client = movieSettings.Client; settings.Movies.Command = movieSettings.Command; }); }
public async Task <IActionResult> SaveAsync([FromBody] RadarrSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Radarr }; if (!model.Categories.Any()) { return(BadRequest($"At least one category is required.")); } if (model.Categories.Any(x => string.IsNullOrWhiteSpace(x.Name))) { return(BadRequest($"A category name is required.")); } foreach (var category in model.Categories) { category.Name = category.Name.Trim(); category.Tags = category.Tags; } if (new HashSet <string>(model.Categories.Select(x => x.Name.ToLower())).Count != model.Categories.Length) { return(BadRequest($"All categories must have different names.")); } if (new HashSet <int>(model.Categories.Select(x => x.Id)).Count != model.Categories.Length) { return(BadRequest($"All categories must have different ids.")); } if (model.Categories.Any(x => !Regex.IsMatch(x.Name, @"^[\w-]{1,32}$"))) { return(BadRequest($"Invalid categorie names, make sure they only contain alphanumeric characters, dashes and underscores. (No spaces, etc)")); } var radarrSetting = new RadarrSettingsModel { Hostname = model.Hostname.Trim(), ApiKey = model.ApiKey.Trim(), BaseUrl = model.BaseUrl.Trim(), Port = model.Port, Categories = model.Categories, SearchNewRequests = model.SearchNewRequests, MonitorNewRequests = model.MonitorNewRequests, UseSSL = model.UseSSL, Version = model.Version }; DownloadClientsSettingsRepository.SetRadarr(movieSettings, radarrSetting); return(Ok(new { ok = true })); }
public async Task <IActionResult> SaveMoviesAsync([FromBody] SaveOmbiMoviesSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Ombi }; var ombiSettings = Sanitize(model); DownloadClientsSettingsRepository.SetOmbi(movieSettings, ombiSettings); return(Ok(new { ok = true })); }
public async Task <IActionResult> SaveMoviesAsync([FromBody] SaveOmbiSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Ombi, Command = model.Command.Trim(), }; var ombiSettings = ConvertToOmbiSettings(model); DownloadClientsSettingsRepository.SetOmbi(movieSettings, ombiSettings); return(Ok(new { ok = true })); }
public async Task <IActionResult> SaveMoviesAsync([FromBody] SaveOverseerrMoviesSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Overseerr, Command = model.Command.Trim(), }; var overseerrSettings = Sanitize(model); DownloadClientsSettingsRepository.SetOverseerr(movieSettings, overseerrSettings); return(Ok(new { ok = true })); }
public async Task <IActionResult> SaveMoviesAsync([FromBody] SaveOverseerrMoviesSettingsModel model) { var movieSettings = new MoviesSettings { Client = DownloadClient.Overseerr }; Sanitize(model); if (model.Movies.Categories.Any(x => string.IsNullOrWhiteSpace(x.Name))) { return(BadRequest($"A category name is required.")); } foreach (var category in model.Movies.Categories) { category.Name = category.Name.Trim(); category.Tags = category.Tags; } if (new HashSet <string>(model.Movies.Categories.Select(x => x.Name.ToLower())).Count != model.Movies.Categories.Length) { return(BadRequest($"All categories must have different names.")); } if (new HashSet <int>(model.Movies.Categories.Select(x => x.Id)).Count != model.Movies.Categories.Length) { return(BadRequest($"All categories must have different ids.")); } if (model.Movies.Categories.Any(x => !Regex.IsMatch(x.Name, @"^[\w-]{1,32}$"))) { return(BadRequest($"Invalid categorie names, make sure they only contain alphanumeric characters, dashes and underscores. (No spaces, etc)")); } DownloadClientsSettingsRepository.SetOverseerr(movieSettings, model); return(Ok(new { ok = true })); }