mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 12:59:39 -07:00
Restore Subscribed field in search service
Let's only flag it as obsolete for now
This commit is contained in:
parent
da0404d552
commit
10a7f8d4fb
2 changed files with 57 additions and 0 deletions
|
@ -16,6 +16,7 @@ using Ombi.Store.Repository;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.Principal;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ombi.Core.Engine
|
namespace Ombi.Core.Engine
|
||||||
|
@ -215,9 +216,34 @@ namespace Ombi.Core.Engine
|
||||||
|
|
||||||
await RunSearchRules(viewMovie);
|
await RunSearchRules(viewMovie);
|
||||||
|
|
||||||
|
// This requires the rules to be run first to populate the RequestId property
|
||||||
|
await CheckForSubscription(viewMovie);
|
||||||
|
|
||||||
return viewMovie;
|
return viewMovie;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task CheckForSubscription(SearchMovieViewModel viewModel)
|
||||||
|
{
|
||||||
|
// Check if this user requested it
|
||||||
|
var user = await GetUser();
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var request = await RequestService.MovieRequestService.GetAll()
|
||||||
|
.AnyAsync(x => x.RequestedUserId.Equals(user.Id) && x.TheMovieDbId == viewModel.Id);
|
||||||
|
if (request || viewModel.Available)
|
||||||
|
{
|
||||||
|
viewModel.ShowSubscribe = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
viewModel.ShowSubscribe = true;
|
||||||
|
var sub = await _subscriptionRepository.GetAll().FirstOrDefaultAsync(s => s.UserId == user.Id
|
||||||
|
&& s.RequestId == viewModel.RequestId && s.RequestType == RequestType.Movie);
|
||||||
|
viewModel.Subscribed = sub != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task<SearchMovieViewModel> ProcessSingleMovie(MovieDbSearchResult movie)
|
private async Task<SearchMovieViewModel> ProcessSingleMovie(MovieDbSearchResult movie)
|
||||||
{
|
{
|
||||||
|
|
|
@ -393,6 +393,8 @@ namespace Ombi.Core.Engine.V2
|
||||||
|
|
||||||
await RunSearchRules(viewMovie);
|
await RunSearchRules(viewMovie);
|
||||||
|
|
||||||
|
// This requires the rules to be run first to populate the RequestId property
|
||||||
|
await CheckForSubscription(viewMovie);
|
||||||
var mapped = Mapper.Map<MovieFullInfoViewModel>(movie);
|
var mapped = Mapper.Map<MovieFullInfoViewModel>(movie);
|
||||||
|
|
||||||
mapped.Available = viewMovie.Available;
|
mapped.Available = viewMovie.Available;
|
||||||
|
@ -404,6 +406,7 @@ namespace Ombi.Core.Engine.V2
|
||||||
mapped.PlexUrl = viewMovie.PlexUrl;
|
mapped.PlexUrl = viewMovie.PlexUrl;
|
||||||
mapped.EmbyUrl = viewMovie.EmbyUrl;
|
mapped.EmbyUrl = viewMovie.EmbyUrl;
|
||||||
mapped.JellyfinUrl = viewMovie.JellyfinUrl;
|
mapped.JellyfinUrl = viewMovie.JellyfinUrl;
|
||||||
|
mapped.Subscribed = viewMovie.Subscribed;
|
||||||
mapped.ShowSubscribe = viewMovie.ShowSubscribe;
|
mapped.ShowSubscribe = viewMovie.ShowSubscribe;
|
||||||
mapped.DigitalReleaseDate = viewMovie.DigitalReleaseDate;
|
mapped.DigitalReleaseDate = viewMovie.DigitalReleaseDate;
|
||||||
mapped.RequestedDate4k = viewMovie.RequestedDate4k;
|
mapped.RequestedDate4k = viewMovie.RequestedDate4k;
|
||||||
|
@ -426,6 +429,8 @@ namespace Ombi.Core.Engine.V2
|
||||||
var mappedMovie = Mapper.Map<SearchMovieViewModel>(movie);
|
var mappedMovie = Mapper.Map<SearchMovieViewModel>(movie);
|
||||||
await RunSearchRules(mappedMovie);
|
await RunSearchRules(mappedMovie);
|
||||||
|
|
||||||
|
// This requires the rules to be run first to populate the RequestId property
|
||||||
|
await CheckForSubscription(mappedMovie);
|
||||||
var mapped = Mapper.Map<MovieCollection>(movie);
|
var mapped = Mapper.Map<MovieCollection>(movie);
|
||||||
|
|
||||||
mapped.Available = movie.Available;
|
mapped.Available = movie.Available;
|
||||||
|
@ -435,6 +440,7 @@ namespace Ombi.Core.Engine.V2
|
||||||
mapped.PlexUrl = movie.PlexUrl;
|
mapped.PlexUrl = movie.PlexUrl;
|
||||||
mapped.EmbyUrl = movie.EmbyUrl;
|
mapped.EmbyUrl = movie.EmbyUrl;
|
||||||
mapped.JellyfinUrl = movie.JellyfinUrl;
|
mapped.JellyfinUrl = movie.JellyfinUrl;
|
||||||
|
mapped.Subscribed = movie.Subscribed;
|
||||||
mapped.ShowSubscribe = movie.ShowSubscribe;
|
mapped.ShowSubscribe = movie.ShowSubscribe;
|
||||||
mapped.ReleaseDate = movie.ReleaseDate;
|
mapped.ReleaseDate = movie.ReleaseDate;
|
||||||
}
|
}
|
||||||
|
@ -464,9 +470,34 @@ namespace Ombi.Core.Engine.V2
|
||||||
|
|
||||||
await RunSearchRules(viewMovie);
|
await RunSearchRules(viewMovie);
|
||||||
|
|
||||||
|
// This requires the rules to be run first to populate the RequestId property
|
||||||
|
await CheckForSubscription(viewMovie);
|
||||||
|
|
||||||
return viewMovie;
|
return viewMovie;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task CheckForSubscription(SearchViewModel viewModel)
|
||||||
|
{
|
||||||
|
// Check if this user requested it
|
||||||
|
var user = await GetUser();
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var request = await RequestService.MovieRequestService.GetAll()
|
||||||
|
.AnyAsync(x => x.RequestedUserId.Equals(user.Id) && x.TheMovieDbId == viewModel.Id);
|
||||||
|
if (request)
|
||||||
|
{
|
||||||
|
viewModel.ShowSubscribe = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
viewModel.ShowSubscribe = true;
|
||||||
|
var sub = await _subscriptionRepository.GetAll().FirstOrDefaultAsync(s => s.UserId == user.Id
|
||||||
|
&& s.RequestId == viewModel.RequestId && s.RequestType == RequestType.Movie);
|
||||||
|
viewModel.Subscribed = sub != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<MovieFullInfoViewModel> GetMovieInfoByImdbId(string imdbId, CancellationToken cancellationToken)
|
public async Task<MovieFullInfoViewModel> GetMovieInfoByImdbId(string imdbId, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue