From cc7104a81425addca31acc74d5204f2f6ec4c878 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 18 Jan 2024 01:18:52 +0200 Subject: [PATCH] Movie stats for Calendar --- .../Calendar/CalendarController.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Radarr.Api.V3/Calendar/CalendarController.cs b/src/Radarr.Api.V3/Calendar/CalendarController.cs index 580f521832..9deb71fee9 100644 --- a/src/Radarr.Api.V3/Calendar/CalendarController.cs +++ b/src/Radarr.Api.V3/Calendar/CalendarController.cs @@ -8,6 +8,7 @@ using NzbDrone.Core.Languages; using NzbDrone.Core.Movies; using NzbDrone.Core.Movies.Translations; +using NzbDrone.Core.MovieStats; using NzbDrone.Core.Tags; using NzbDrone.SignalR; using Radarr.Api.V3.Movies; @@ -21,6 +22,7 @@ public class CalendarController : RestControllerWithSignalR MapToResource(List movies) var translations = _movieTranslationService.GetAllTranslationsForMovieMetadata(movie.MovieMetadataId); var translation = GetMovieTranslation(translations, movie.MovieMetadata, language); - resources.Add(movie.ToResource(availDelay, translation, _qualityUpgradableSpecification)); + var resource = movie.ToResource(availDelay, translation, _qualityUpgradableSpecification); + FetchAndLinkMovieStatistics(resource); + + resources.Add(resource); } return resources; @@ -116,5 +123,17 @@ private MovieTranslation GetMovieTranslation(List translations return translations.FirstOrDefault(t => t.Language == language && t.MovieMetadataId == movie.Id); } + + private void FetchAndLinkMovieStatistics(MovieResource resource) + { + LinkMovieStatistics(resource, _movieStatisticsService.MovieStatistics(resource.Id)); + } + + private void LinkMovieStatistics(MovieResource resource, MovieStatistics movieStatistics) + { + resource.Statistics = movieStatistics.ToResource(); + resource.HasFile = movieStatistics.MovieFileCount > 0; + resource.SizeOnDisk = movieStatistics.SizeOnDisk; + } } }