refactor: Made some small changes around the syncs to add in 4k to the radarr sync

pull/4532/head
tidusjar 3 years ago
parent a3046e386c
commit 073f1c946b

@ -73,23 +73,37 @@ namespace Ombi.Schedule.Jobs.Radarr
private async Task ProcessMovies() private async Task ProcessMovies()
{ {
var availableRadarrMovies = _radarrRepo.GetAll().Where(x => x.HasFile).ToImmutableHashSet(); var availableRadarrMovies = _radarrRepo.GetAll().Where(x => x.HasFile).ToImmutableHashSet();
var unavailableMovieRequests = _movies.GetAll().Where(x => !x.Available).ToImmutableHashSet(); var unavailableMovieRequests = _movies.GetAll().Where(x => !x.Available || (!x.Available4K && x.Has4KRequest)).ToImmutableHashSet();
var itemsForAvailability = new List<AvailabilityModel>(); var itemsForAvailability = new List<AvailabilityModel>();
foreach (var movieRequest in unavailableMovieRequests) foreach (var movieRequest in unavailableMovieRequests)
{ {
// Do we have an item in the radarr list // Do we have an item in the radarr list
var available = availableRadarrMovies.Any(x => x.TheMovieDbId == movieRequest.TheMovieDbId); var available = availableRadarrMovies.FirstOrDefault(x => x.TheMovieDbId == movieRequest.TheMovieDbId);
if (available) if (available != null)
{ {
_logger.LogInformation($"Found move '{movieRequest.Title}' available in Radarr"); _logger.LogInformation($"Found move '{movieRequest.Title}' available in Radarr");
movieRequest.Available = true; if (available.Has4K && !movieRequest.Available4K)
movieRequest.MarkedAsAvailable = DateTime.UtcNow;
itemsForAvailability.Add(new AvailabilityModel
{ {
Id = movieRequest.Id, itemsForAvailability.Add(new AvailabilityModel
RequestedUser = movieRequest.RequestedUser != null ? movieRequest.RequestedUser.Email : string.Empty {
}); Id = movieRequest.Id,
RequestedUser = movieRequest.RequestedUser != null ? movieRequest.RequestedUser.Email : string.Empty
});
movieRequest.Available4K = true;
movieRequest.MarkedAsAvailable4K = DateTime.UtcNow;
}
if (available.HasRegular)
{
itemsForAvailability.Add(new AvailabilityModel
{
Id = movieRequest.Id,
RequestedUser = movieRequest.RequestedUser != null ? movieRequest.RequestedUser.Email : string.Empty
});
movieRequest.Available = true;
movieRequest.MarkedAsAvailable = DateTime.UtcNow;
}
await _movies.SaveChangesAsync();
} }
} }
@ -97,7 +111,6 @@ namespace Ombi.Schedule.Jobs.Radarr
{ {
await _hub.Clients.Clients(NotificationHub.AdminConnectionIds) await _hub.Clients.Clients(NotificationHub.AdminConnectionIds)
.SendAsync(NotificationHub.NotificationEvent, "Radarr Availability Checker found some new available movies!"); .SendAsync(NotificationHub.NotificationEvent, "Radarr Availability Checker found some new available movies!");
await _movies.SaveChangesAsync();
} }
foreach (var item in itemsForAvailability) foreach (var item in itemsForAvailability)
{ {
@ -110,7 +123,6 @@ namespace Ombi.Schedule.Jobs.Radarr
Recipient = item.RequestedUser Recipient = item.RequestedUser
}); });
} }
} }
public async Task ProcessTvShows() public async Task ProcessTvShows()

@ -211,6 +211,7 @@ namespace Ombi.Schedule.Jobs.Plex
movie.Available4K = true; movie.Available4K = true;
movie.Approved4K = true; movie.Approved4K = true;
movie.MarkedAsAvailable4K = DateTime.Now; movie.MarkedAsAvailable4K = DateTime.Now;
await _movieRepo.SaveChangesAsync();
} }
// If we have a non-4k versison then mark as available // If we have a non-4k versison then mark as available
@ -219,6 +220,7 @@ namespace Ombi.Schedule.Jobs.Plex
movie.Available = true; movie.Available = true;
movie.Approved = true; movie.Approved = true;
movie.MarkedAsAvailable = DateTime.Now; movie.MarkedAsAvailable = DateTime.Now;
await _movieRepo.SaveChangesAsync();
} }
itemsForAvailbility.Add(new AvailabilityModel itemsForAvailbility.Add(new AvailabilityModel
@ -228,11 +230,6 @@ namespace Ombi.Schedule.Jobs.Plex
}); });
} }
if (itemsForAvailbility.Any())
{
await _movieRepo.SaveChangesAsync();
}
foreach (var i in itemsForAvailbility.DistinctBy(x => x.Id)) foreach (var i in itemsForAvailbility.DistinctBy(x => x.Id))
{ {
await _notificationService.Notify(new NotificationOptions await _notificationService.Notify(new NotificationOptions

@ -103,10 +103,8 @@ namespace Ombi.Schedule.Jobs.Radarr
} }
} }
} }
// Save from the updates made to the existing movies (they are in the EF Change Tracker) // Save from the updates made to the existing movies (they are in the EF Change Tracker)
await _radarrRepo.SaveChangesAsync(); await _radarrRepo.SaveChangesAsync();
await _radarrRepo.AddRange(movieIds); await _radarrRepo.AddRange(movieIds);
} }

Loading…
Cancel
Save