aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs83
1 files changed, 16 insertions, 67 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index 22516e7a65..6c00d61f29 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -244,42 +244,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return result;
}
- public async Task<QueryResult<ChannelInfoDto>> GetChannels(LiveTvChannelQuery query, DtoOptions options, CancellationToken cancellationToken)
- {
- var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId);
-
- var internalResult = await GetInternalChannels(query, cancellationToken).ConfigureAwait(false);
-
- var returnList = new List<ChannelInfoDto>();
-
- var now = DateTime.UtcNow;
-
- var programs = query.AddCurrentProgram ? _libraryManager.QueryItems(new InternalItemsQuery
- {
- IncludeItemTypes = new[] { typeof(LiveTvProgram).Name },
- MaxStartDate = now,
- MinEndDate = now,
- ChannelIds = internalResult.Items.Select(i => i.Id.ToString("N")).ToArray()
-
- }).Items.Cast<LiveTvProgram>().OrderBy(i => i.StartDate).ToList() : new List<LiveTvProgram>();
-
- foreach (var channel in internalResult.Items)
- {
- var channelIdString = channel.Id.ToString("N");
- var currentProgram = programs.FirstOrDefault(i => string.Equals(i.ChannelId, channelIdString, StringComparison.OrdinalIgnoreCase));
-
- returnList.Add(_tvDtoService.GetChannelInfoDto(channel, options, currentProgram, user));
- }
-
- var result = new QueryResult<ChannelInfoDto>
- {
- Items = returnList.ToArray(),
- TotalRecordCount = internalResult.TotalRecordCount
- };
-
- return result;
- }
-
public LiveTvChannel GetInternalChannel(string id)
{
return GetInternalChannel(new Guid(id));
@@ -1859,52 +1823,37 @@ namespace MediaBrowser.Server.Implementations.LiveTv
};
}
- public async Task<ChannelInfoDto> GetChannel(string id, CancellationToken cancellationToken, User user = null)
+ public void AddChannelInfo(List<Tuple<BaseItemDto, LiveTvChannel>> tuples, DtoOptions options, User user)
{
- var channel = GetInternalChannel(id);
-
var now = DateTime.UtcNow;
+ var channelIds = tuples.Select(i => i.Item2.Id.ToString("N")).Distinct().ToArray();
+
var programs = _libraryManager.GetItemList(new InternalItemsQuery(user)
{
IncludeItemTypes = new[] { typeof(LiveTvProgram).Name },
- ChannelIds = new[] { id },
+ ChannelIds = channelIds,
MaxStartDate = now,
MinEndDate = now,
- Limit = 1,
+ Limit = channelIds.Length,
SortBy = new[] { "StartDate" }
- }, new string[] { }).Cast<LiveTvProgram>();
-
- var currentProgram = programs.FirstOrDefault();
-
- var dto = _tvDtoService.GetChannelInfoDto(channel, new DtoOptions(), currentProgram, user);
+ }, new string[] { }).ToList();
- return dto;
- }
-
- public void AddChannelInfo(BaseItemDto dto, LiveTvChannel channel, DtoOptions options, User user)
- {
- dto.MediaSources = channel.GetMediaSources(true).ToList();
-
- var now = DateTime.UtcNow;
-
- var programs = _libraryManager.GetItemList(new InternalItemsQuery(user)
+ foreach (var tuple in tuples)
{
- IncludeItemTypes = new[] { typeof(LiveTvProgram).Name },
- ChannelIds = new[] { channel.Id.ToString("N") },
- MaxStartDate = now,
- MinEndDate = now,
- Limit = 1,
- SortBy = new[] { "StartDate" }
+ var dto = tuple.Item1;
+ var channel = tuple.Item2;
- }, new string[] { }).Cast<LiveTvProgram>();
+ dto.MediaSources = channel.GetMediaSources(true).ToList();
- var currentProgram = programs.FirstOrDefault();
+ var channelIdString = channel.Id.ToString("N");
+ var currentProgram = programs.FirstOrDefault(i => string.Equals(i.ChannelId, channelIdString));
- if (currentProgram != null)
- {
- dto.CurrentProgram = _dtoService.GetBaseItemDto(currentProgram, options, user);
+ if (currentProgram != null)
+ {
+ dto.CurrentProgram = _dtoService.GetBaseItemDto(currentProgram, options, user);
+ }
}
}