Added the Digital Release Date back in.

Improved performance and system load when loading content #4082
This commit is contained in:
tidusjar 2021-07-07 11:59:27 +01:00
parent 4082f6ad41
commit 0c4bd10b0f
25 changed files with 320 additions and 227 deletions

View file

@ -30,7 +30,7 @@ namespace Ombi.Core.Engine
public MovieRequestEngine(IMovieDbApi movieApi, IRequestServiceMain requestService, IPrincipal user,
INotificationHelper helper, IRuleEvaluator r, IMovieSender sender, ILogger<MovieRequestEngine> log,
OmbiUserManager manager, IRepository<RequestLog> rl, ICacheService cache,
ISettingsService<OmbiSettings> ombiSettings, IRepository<RequestSubscription> sub)
ISettingsService<OmbiSettings> ombiSettings, IRepository<RequestSubscription> sub, IMediaCacheService mediaCacheService)
: base(user, requestService, r, manager, cache, ombiSettings, sub)
{
MovieApi = movieApi;
@ -38,6 +38,7 @@ namespace Ombi.Core.Engine
Sender = sender;
Logger = log;
_requestLog = rl;
_mediaCacheService = mediaCacheService;
}
private IMovieDbApi MovieApi { get; }
@ -45,6 +46,7 @@ namespace Ombi.Core.Engine
private IMovieSender Sender { get; }
private ILogger<MovieRequestEngine> Logger { get; }
private readonly IRepository<RequestLog> _requestLog;
private readonly IMediaCacheService _mediaCacheService;
/// <summary>
/// Requests the movie.
@ -371,7 +373,6 @@ namespace Ombi.Core.Engine
};
}
public async Task<RequestEngineResult> UpdateAdvancedOptions(MediaAdvancedOptions options)
{
var request = await MovieRepository.Find(options.RequestId);
@ -527,6 +528,7 @@ namespace Ombi.Core.Engine
// We are denying a request
await NotificationHelper.Notify(request, NotificationType.RequestDeclined);
await MovieRepository.Update(request);
await _mediaCacheService.Purge();
return new RequestEngineResult
{
@ -555,6 +557,7 @@ namespace Ombi.Core.Engine
{
await NotificationHelper.Notify(request, NotificationType.RequestApproved);
}
await _mediaCacheService.Purge();
return await ProcessSendingMovie(request);
}
@ -562,8 +565,8 @@ namespace Ombi.Core.Engine
public async Task<RequestEngineResult> RequestCollection(int collectionId, CancellationToken cancellationToken)
{
var langCode = await DefaultLanguageCode(null);
var collections = await Cache.GetOrAdd($"GetCollection{collectionId}{langCode}",
async () => await MovieApi.GetCollection(langCode, collectionId, cancellationToken), DateTime.Now.AddDays(1), cancellationToken);
var collections = await Cache.GetOrAddAsync($"GetCollection{collectionId}{langCode}",
() => MovieApi.GetCollection(langCode, collectionId, cancellationToken), DateTimeOffset.Now.AddDays(1));
var results = new List<RequestEngineResult>();
foreach (var collection in collections.parts)
@ -639,6 +642,7 @@ namespace Ombi.Core.Engine
results.RootPathOverride = request.RootPathOverride;
await MovieRepository.Update(results);
await _mediaCacheService.Purge();
return results;
}
@ -651,12 +655,14 @@ namespace Ombi.Core.Engine
{
var request = await MovieRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
await MovieRepository.Delete(request);
await _mediaCacheService.Purge();
}
public async Task RemoveAllMovieRequests()
{
var request = MovieRepository.GetAll();
await MovieRepository.DeleteRange(request);
await _mediaCacheService.Purge();
}
public async Task<bool> UserHasRequest(string userId)
@ -692,6 +698,7 @@ namespace Ombi.Core.Engine
request.Available = false;
await MovieRepository.Update(request);
await _mediaCacheService.Purge();
return new RequestEngineResult
{
@ -715,6 +722,7 @@ namespace Ombi.Core.Engine
request.MarkedAsAvailable = DateTime.Now;
await NotificationHelper.Notify(request, NotificationType.RequestAvailable);
await MovieRepository.Update(request);
await _mediaCacheService.Purge();
return new RequestEngineResult
{
@ -733,6 +741,8 @@ namespace Ombi.Core.Engine
await NotificationHelper.NewRequest(model);
}
await _mediaCacheService.Purge();
await _requestLog.Add(new RequestLog
{
UserId = requestOnBehalf.HasValue() ? requestOnBehalf : (await GetUser()).Id,