Skip to content

Commit

Permalink
Fix requests when 4k available and 4k disabled
Browse files Browse the repository at this point in the history
  • Loading branch information
sephrat committed Apr 19, 2022
1 parent 551da1a commit 809202b
Showing 2 changed files with 16 additions and 6 deletions.
11 changes: 8 additions & 3 deletions src/Ombi.Schedule/Jobs/Emby/EmbyAvaliabilityChecker.cs
Original file line number Diff line number Diff line change
@@ -7,10 +7,12 @@
using Microsoft.Extensions.Logging;
using Ombi.Core;
using Ombi.Core.Notifications;
using Ombi.Core.Services;
using Ombi.Helpers;
using Ombi.Hubs;
using Ombi.Notifications.Models;
using Ombi.Schedule.Jobs.Ombi;
using Ombi.Settings.Settings.Models;
using Ombi.Store.Entities;
using Ombi.Store.Repository;
using Ombi.Store.Repository.Requests;
@@ -21,14 +23,15 @@ namespace Ombi.Schedule.Jobs.Emby
public class EmbyAvaliabilityChecker : IEmbyAvaliabilityChecker
{
public EmbyAvaliabilityChecker(IEmbyContentRepository repo, ITvRequestRepository t, IMovieRequestRepository m,
INotificationHelper n, ILogger<EmbyAvaliabilityChecker> log, IHubContext<NotificationHub> notification)
INotificationHelper n, ILogger<EmbyAvaliabilityChecker> log, IHubContext<NotificationHub> notification, IFeatureService featureService)
{
_repo = repo;
_tvRepo = t;
_movieRepo = m;
_notificationService = n;
_log = log;
_notification = notification;
_featureService = featureService;
}

private readonly ITvRequestRepository _tvRepo;
@@ -37,6 +40,7 @@ public EmbyAvaliabilityChecker(IEmbyContentRepository repo, ITvRequestRepository
private readonly INotificationHelper _notificationService;
private readonly ILogger<EmbyAvaliabilityChecker> _log;
private readonly IHubContext<NotificationHub> _notification;
private readonly IFeatureService _featureService;

public async Task Execute(IJobExecutionContext job)
{
@@ -53,6 +57,7 @@ await _notification.Clients.Clients(NotificationHub.AdminConnectionIds)

private async Task ProcessMovies()
{
var feature4kEnabled = await _featureService.FeatureEnabled(FeatureNames.Movie4KRequests);
var movies = _movieRepo.GetAll().Include(x => x.RequestedUser).Where(x => !x.Available || (!x.Available4K && x.Has4KRequest));

foreach (var movie in movies)
@@ -85,8 +90,8 @@ private async Task ProcessMovies()
notify = true;
}

// If we have a non-4k versison then mark as available
if (embyContent.Quality != null && !movie.Available)
// If we have a non-4k version or we don't care about versions, then mark as available
if (!movie.Available && ( !feature4kEnabled || embyContent.Quality != null ))
{
movie.Available = true;
movie.MarkedAsAvailable = DateTime.Now;
11 changes: 8 additions & 3 deletions src/Ombi.Schedule/Jobs/Jellyfin/JellyfinAvaliabilityChecker.cs
Original file line number Diff line number Diff line change
@@ -33,9 +33,11 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Ombi.Core;
using Ombi.Core.Services;
using Ombi.Helpers;
using Ombi.Hubs;
using Ombi.Notifications.Models;
using Ombi.Settings.Settings.Models;
using Ombi.Store.Entities;
using Ombi.Store.Repository;
using Ombi.Store.Repository.Requests;
@@ -46,14 +48,15 @@ namespace Ombi.Schedule.Jobs.Jellyfin
public class JellyfinAvaliabilityChecker : IJellyfinAvaliabilityChecker
{
public JellyfinAvaliabilityChecker(IJellyfinContentRepository repo, ITvRequestRepository t, IMovieRequestRepository m,
INotificationHelper n, ILogger<JellyfinAvaliabilityChecker> log, IHubContext<NotificationHub> notification)
INotificationHelper n, ILogger<JellyfinAvaliabilityChecker> log, IHubContext<NotificationHub> notification, IFeatureService featureService)
{
_repo = repo;
_tvRepo = t;
_movieRepo = m;
_notificationService = n;
_log = log;
_notification = notification;
_featureService = featureService;
}

private readonly ITvRequestRepository _tvRepo;
@@ -62,6 +65,7 @@ public JellyfinAvaliabilityChecker(IJellyfinContentRepository repo, ITvRequestRe
private readonly INotificationHelper _notificationService;
private readonly ILogger<JellyfinAvaliabilityChecker> _log;
private readonly IHubContext<NotificationHub> _notification;
private readonly IFeatureService _featureService;

public async Task Execute(IJobExecutionContext job)
{
@@ -78,6 +82,7 @@ await _notification.Clients.Clients(NotificationHub.AdminConnectionIds)

private async Task ProcessMovies()
{
var feature4kEnabled = await _featureService.FeatureEnabled(FeatureNames.Movie4KRequests);
var movies = _movieRepo.GetAll().Include(x => x.RequestedUser).Where(x => !x.Available || (!x.Available4K && x.Has4KRequest));

foreach (var movie in movies)
@@ -110,8 +115,8 @@ private async Task ProcessMovies()
notify = true;
}

// If we have a non-4k versison then mark as available
if (jellyfinContent.Quality != null && !movie.Available)
// If we have a non-4k version or we don't care about versions, then mark as available
if (!movie.Available && ( !feature4kEnabled || jellyfinContent.Quality != null ))
{
movie.Available = true;
movie.MarkedAsAvailable = DateTime.Now;

0 comments on commit 809202b

Please sign in to comment.