Exemple #1
0
        public async Task <Episode> Build(SonarrSharp.Models.Episode episode)
        {
            var mediaFileId = new MediaFileId
            {
                Provider = Providers.Sonarr,
                MediaId  = episode.SeriesId,
                FileId   = episode.EpisodeFileId,
            };
            var sessionRepo = await _sessionRepoFactory.GetRepo();

            var allSessionsForCurrentEpisode = (await sessionRepo.GetAll())
                                               .Where(session => session.MediaId == mediaFileId.ToString())
                                               .ToList();

            var lastSession = allSessionsForCurrentEpisode.OrderByDescending(session => session.EndUTC).FirstOrDefault();

            return(new Episode
            {
                Title = GrpcStringParser.Parse(episode.Title),
                Overview = GrpcStringParser.Parse(episode.Overview),
                SeriesId = episode.SeriesId,
                SeasonNumber = episode.SeasonNumber,
                EpisideNumber = episode.EpisodeNumber,
                EpisodeFileId = episode.EpisodeFileId,
                PlayableId = mediaFileId.ToString(),
                Progress = new Progress
                {
                    LastWatchedUtc = lastSession?.EndUTC ?? 0,
                    WatchedInSec = lastSession?.Duration.EndPostionInSec ?? 0,
                    Lenght = lastSession?.MediaLenghtInSec ?? 0
                },
            });
        }
        private Episode ConvertEpisode(SonarrSeries serie, SonarrEpisode episode, SonarrEpisodeFile file)
        {
            var converted = new Episode
            {
                Title         = serie.Title,
                Year          = serie.Year,
                ImdbId        = serie.ImdbId,
                SeriesFolder  = serie.Path,
                SeasonNumber  = episode.SeasonNumber,
                EpisodeNumber = episode.EpisodeNumber
            };

            if (file != null)
            {
                converted.File         = Path.GetFileName(file.Path);
                converted.OriginalName = file.SceneName;
                converted.Quality      = file.Quality.Quality.Name.ToString();
                converted.Proper       = file.Quality.Proper;
            }

            return(converted);
        }