diff options
5 files changed, 42 insertions, 35 deletions
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index 0a1735c23..b54a7aaee 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs @@ -61,12 +61,6 @@ namespace MediaBrowser.Controller.LiveTv public bool IsRepeat { get; set; } /// <summary> - /// Gets or sets the external series identifier. - /// </summary> - /// <value>The external series identifier.</value> - public string ExternalSeriesId { get; set; } - - /// <summary> /// Gets or sets the episode title. /// </summary> /// <value>The episode title.</value> diff --git a/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs b/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs index 70c6892ef..4b88e42f3 100644 --- a/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/SeriesTimerInfoDto.cs @@ -49,12 +49,6 @@ namespace MediaBrowser.Model.LiveTv public Dictionary<ImageType, string> ImageTags { get; set; } /// <summary> - /// Gets or sets the external series identifier. - /// </summary> - /// <value>The external series identifier.</value> - public string ExternalSeriesId { get; set; } - - /// <summary> /// Gets a value indicating whether this instance has primary image. /// </summary> /// <value><c>true</c> if this instance has primary image; otherwise, <c>false</c>.</value> diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index 177a64ddc..7273ac88e 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -251,14 +251,50 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV { info.Id = Guid.NewGuid().ToString("N"); - await UpdateTimersForSeriesTimer(info).ConfigureAwait(false); + List<ProgramInfo> epgData; + if (info.RecordAnyChannel) + { + var channels = await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false); + var channelIds = channels.Select(i => i.Id).ToList(); + epgData = GetEpgDataForChannels(channelIds); + } + else + { + epgData = GetEpgDataForChannel(info.ChannelId); + } + + // populate info.seriesID + var program = epgData.FirstOrDefault(i => string.Equals(i.Id, info.ProgramId, StringComparison.OrdinalIgnoreCase)); + + if (program != null) + { + info.SeriesId = program.SeriesId; + } + else + { + throw new InvalidOperationException("SeriesId for program not found"); + } + _seriesTimerProvider.Add(info); + await UpdateTimersForSeriesTimer(epgData, info).ConfigureAwait(false); } public async Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) { _seriesTimerProvider.Update(info); - await UpdateTimersForSeriesTimer(info).ConfigureAwait(false); + List<ProgramInfo> epgData; + if (info.RecordAnyChannel) + { + var channels = await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false); + var channelIds = channels.Select(i => i.Id).ToList(); + epgData = GetEpgDataForChannels(channelIds); + } + else + { + epgData = GetEpgDataForChannel(info.ChannelId); + } + + await UpdateTimersForSeriesTimer(epgData, info).ConfigureAwait(false); } public Task UpdateTimerAsync(TimerInfo info, CancellationToken cancellationToken) @@ -597,20 +633,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV return _config.GetConfiguration<LiveTvOptions>("livetv"); } - private async Task UpdateTimersForSeriesTimer(SeriesTimerInfo seriesTimer) + private async Task UpdateTimersForSeriesTimer(List<ProgramInfo> epgData, SeriesTimerInfo seriesTimer) { - List<ProgramInfo> epgData; - if (seriesTimer.RecordAnyChannel) - { - var channels = await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false); - var channelIds = channels.Select(i => i.Id).ToList(); - epgData = GetEpgDataForChannels(channelIds); - } - else - { - epgData = GetEpgDataForChannel(seriesTimer.ChannelId); - } - var newTimers = GetTimersForSeries(seriesTimer, epgData, _recordingProvider.GetAll()).ToList(); var existingTimers = _timerProvider.GetAll() diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index 2587b1005..9ffd8a500 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -105,8 +105,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv ExternalProgramId = info.ProgramId, ServiceName = service.Name, ChannelName = channelName, - ServerId = _appHost.SystemId, - ExternalSeriesId = info.SeriesId + ServerId = _appHost.SystemId }; if (!string.IsNullOrEmpty(info.ChannelId)) @@ -377,8 +376,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv RecordNewOnly = dto.RecordNewOnly, ProgramId = dto.ExternalProgramId, ChannelId = dto.ExternalChannelId, - Id = dto.ExternalId, - SeriesId = dto.ExternalSeriesId + Id = dto.ExternalId }; // Convert internal server id's to external tv provider id's diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 9065a8ac2..782473bea 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -627,7 +627,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv item.ProductionYear = info.ProductionYear; item.PremiereDate = item.PremiereDate ?? info.OriginalAirDate; - item.ExternalSeriesId = info.SeriesId; if (isNew) { @@ -1787,8 +1786,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv ImagePath = program.ProviderImagePath, ImageUrl = program.ProviderImageUrl, Name = program.Name, - OfficialRating = program.OfficialRating, - SeriesId = program.ExternalSeriesId + OfficialRating = program.OfficialRating }; } @@ -1831,7 +1829,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv info.Overview = program.Overview; info.ProgramId = programDto.Id; info.ExternalProgramId = program.ExternalId; - info.ExternalSeriesId = program.ExternalSeriesId; if (program.EndDate.HasValue) { |
