update recording styles

This commit is contained in:
Luke Pulverenti
2015-08-16 18:03:22 -04:00
parent f49417c703
commit 90843b218c
5 changed files with 42 additions and 35 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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)
{