mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-22 06:13:22 -07:00
Consider only requested episodes in played progress
This commit is contained in:
parent
ccdc12008a
commit
c268717de5
1 changed files with 29 additions and 7 deletions
|
@ -905,26 +905,48 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
}
|
||||
|
||||
private class EpisodeKey
|
||||
{
|
||||
public int SeasonNumber;
|
||||
public int EpisodeNumber;
|
||||
}
|
||||
|
||||
private void CheckForPlayed(HideResult shouldHide, List<ChildRequests> childRequests)
|
||||
{
|
||||
var theMovieDbIds = childRequests.Select(x => x.Id);
|
||||
foreach (var request in childRequests)
|
||||
{
|
||||
// TODO: consider only episodes that are part of the request (request.SeasonRequests.Episodes)
|
||||
var playedCount = _userPlayedEpisodeRepository.GetAll().Count(x => x.TheMovieDbId == request.Id && x.UserId == request.RequestedUserId);
|
||||
|
||||
var toWatchCount = countRequestedEpisodes(request);
|
||||
var requestedEpisodes = getEpisodesKeys(request);
|
||||
|
||||
var playedEpisodes = _userPlayedEpisodeRepository
|
||||
.GetAll()
|
||||
.Where(x => x.TheMovieDbId == request.Id && x.UserId == request.RequestedUserId)
|
||||
.AsEnumerable()
|
||||
.Join(requestedEpisodes,
|
||||
played => new { played.SeasonNumber, played.EpisodeNumber },
|
||||
requested => new { requested.SeasonNumber, requested.EpisodeNumber },
|
||||
(played, requested) => new { played });
|
||||
|
||||
var playedCount = playedEpisodes.Count();
|
||||
var toWatchCount = requestedEpisodes.Count();
|
||||
request.RequestedUserPlayedProgress = 100 * playedCount / toWatchCount;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private int countRequestedEpisodes(ChildRequests request)
|
||||
private List<EpisodeKey> getEpisodesKeys(ChildRequests request)
|
||||
{
|
||||
int result = 0;
|
||||
List<EpisodeKey> result = new List<EpisodeKey>();
|
||||
foreach(var season in request.SeasonRequests)
|
||||
{
|
||||
result += season.Episodes.Count();
|
||||
foreach(var episode in season.Episodes)
|
||||
{
|
||||
result.Add(new EpisodeKey
|
||||
{
|
||||
SeasonNumber = season.SeasonNumber,
|
||||
EpisodeNumber = episode.EpisodeNumber
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue