diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-14 09:24:30 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-14 09:24:30 -0400 |
| commit | 9c5cceb4ecc277ffb5a3a988f655ad674bf41c58 (patch) | |
| tree | 0077c03cb06e2dc7700315f90db9ee51fedeb00d /MediaBrowser.Server.Implementations/LiveTv | |
| parent | 02e25b48550ffef016d20fe3f070c8552633cbef (diff) | |
update translations
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 74 |
1 files changed, 60 insertions, 14 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index ad2b50365..710781462 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -128,7 +128,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); } - public async Task<QueryResult<ChannelInfoDto>> GetChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) + public async Task<QueryResult<LiveTvChannel>> GetInternalChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) { var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); @@ -217,9 +217,24 @@ namespace MediaBrowser.Server.Implementations.LiveTv allEnumerable = allEnumerable.Take(query.Limit.Value); } + var result = new QueryResult<LiveTvChannel> + { + Items = allEnumerable.ToArray(), + TotalRecordCount = allChannels.Count + }; + + return result; + } + + public async Task<QueryResult<ChannelInfoDto>> GetChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) + { + var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); + + var internalResult = await GetInternalChannels(query, cancellationToken).ConfigureAwait(false); + var returnList = new List<ChannelInfoDto>(); - foreach (var channel in allEnumerable) + foreach (var channel in internalResult.Items) { var currentProgram = await GetCurrentProgram(channel.ExternalId, cancellationToken).ConfigureAwait(false); @@ -229,7 +244,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv var result = new QueryResult<ChannelInfoDto> { Items = returnList.ToArray(), - TotalRecordCount = allChannels.Count + TotalRecordCount = internalResult.TotalRecordCount }; return result; @@ -260,12 +275,20 @@ namespace MediaBrowser.Server.Implementations.LiveTv return obj; } - private async Task RefreshIfNeeded(IEnumerable<LiveTvProgram> programs, CancellationToken cancellationToken) + private Task RefreshIfNeeded(IEnumerable<LiveTvProgram> programs, CancellationToken cancellationToken) { - foreach (var program in programs) + var list = programs.ToList(); + + Task.Run(async () => { - await RefreshIfNeeded(program, cancellationToken).ConfigureAwait(false); - } + foreach (var program in list) + { + await RefreshIfNeeded(program, CancellationToken.None).ConfigureAwait(false); + } + + }, cancellationToken); + + return Task.FromResult(true); } private async Task RefreshIfNeeded(LiveTvProgram program, CancellationToken cancellationToken) @@ -275,9 +298,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv return; } - await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); - _refreshedPrograms.TryAdd(program.Id, true); + + await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); } public async Task<ILiveTvRecording> GetInternalRecording(string id, CancellationToken cancellationToken) @@ -1028,15 +1051,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv return channels.Select(i => new Tuple<string, ChannelInfo>(service.Name, i)); } - public async Task<QueryResult<RecordingInfoDto>> GetRecordings(RecordingQuery query, CancellationToken cancellationToken) + public async Task<QueryResult<BaseItem>> GetInternalRecordings(RecordingQuery query, CancellationToken cancellationToken) { var service = ActiveService; if (service == null) { - return new QueryResult<RecordingInfoDto> + return new QueryResult<BaseItem> { - Items = new RecordingInfoDto[] { } + Items = new BaseItem[] { } }; } @@ -1121,7 +1144,30 @@ namespace MediaBrowser.Server.Implementations.LiveTv entities = entities.Take(query.Limit.Value); } - var returnArray = entities + return new QueryResult<BaseItem> + { + Items = entities.Cast<BaseItem>().ToArray(), + TotalRecordCount = entityList.Count + }; + } + + public async Task<QueryResult<RecordingInfoDto>> GetRecordings(RecordingQuery query, CancellationToken cancellationToken) + { + var service = ActiveService; + + if (service == null) + { + return new QueryResult<RecordingInfoDto> + { + Items = new RecordingInfoDto[] { } + }; + } + + var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); + + var internalResult = await GetInternalRecordings(query, cancellationToken).ConfigureAwait(false); + + var returnArray = internalResult.Items.Cast<ILiveTvRecording>() .Select(i => { var channel = string.IsNullOrEmpty(i.RecordingInfo.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.RecordingInfo.ChannelId)); @@ -1132,7 +1178,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv return new QueryResult<RecordingInfoDto> { Items = returnArray, - TotalRecordCount = entityList.Count + TotalRecordCount = internalResult.TotalRecordCount }; } |
