diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-25 21:53:48 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-25 21:53:48 -0500 |
| commit | 6a9ed5f87f2d9ec0e07d860d36666f0fea2e1e45 (patch) | |
| tree | 0f4ef99808685a2b97e27304c33d49a965162757 /MediaBrowser.Server.Implementations | |
| parent | 3b4c35583808a84af2ee636a00fea8355e645b2e (diff) | |
added recording status enum
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 85 |
1 files changed, 76 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 791da74e0..fda5496c7 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -2,7 +2,11 @@ using MediaBrowser.Common.IO; using MediaBrowser.Controller; using MediaBrowser.Controller.Drawing; +using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Controller.Localization; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Entities; using MediaBrowser.Model.LiveTv; @@ -28,6 +32,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv private readonly IItemRepository _itemRepo; private readonly IImageProcessor _imageProcessor; + private readonly IUserManager _userManager; + private readonly ILocalizationManager _localization; + private readonly IUserDataManager _userDataManager; + private readonly IDtoService _dtoService; + private readonly List<ILiveTvService> _services = new List<ILiveTvService>(); private List<Channel> _channels = new List<Channel>(); @@ -36,13 +45,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv private readonly SemaphoreSlim _updateSemaphore = new SemaphoreSlim(1, 1); - public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor) + public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserManager userManager, ILocalizationManager localization, IUserDataManager userDataManager, IDtoService dtoService) { _appPaths = appPaths; _fileSystem = fileSystem; _logger = logger; _itemRepo = itemRepo; _imageProcessor = imageProcessor; + _userManager = userManager; + _localization = localization; + _userDataManager = userDataManager; + _dtoService = dtoService; } /// <summary> @@ -67,10 +80,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv /// Gets the channel info dto. /// </summary> /// <param name="info">The info.</param> + /// <param name="user">The user.</param> /// <returns>ChannelInfoDto.</returns> - public ChannelInfoDto GetChannelInfoDto(Channel info) + public ChannelInfoDto GetChannelInfoDto(Channel info, User user) { - return new ChannelInfoDto + var dto = new ChannelInfoDto { Name = info.Name, ServiceName = info.ServiceName, @@ -81,6 +95,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv Id = info.Id.ToString("N"), MediaType = info.MediaType }; + + if (user != null) + { + dto.UserData = _dtoService.GetUserItemDataDto(_userDataManager.GetUserData(user.Id, info.GetUserDataKey())); + } + + return dto; } private ILiveTvService GetService(ChannelInfo channel) @@ -111,7 +132,28 @@ namespace MediaBrowser.Server.Implementations.LiveTv public QueryResult<ChannelInfoDto> GetChannels(ChannelQuery query) { - var channels = _channels.OrderBy(i => + var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); + + IEnumerable<Channel> channels = _channels; + + if (user != null) + { + channels = channels.Where(i => i.IsParentalAllowed(user, _localization)) + .OrderBy(i => + { + double number = 0; + + if (!string.IsNullOrEmpty(i.ChannelNumber)) + { + double.TryParse(i.ChannelNumber, out number); + } + + return number; + + }); + } + + var returnChannels = channels.OrderBy(i => { double number = 0; @@ -123,13 +165,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv return number; }).ThenBy(i => i.Name) - .Select(GetChannelInfoDto) + .Select(i => GetChannelInfoDto(i, user)) .ToArray(); return new QueryResult<ChannelInfoDto> { - Items = channels, - TotalRecordCount = channels.Length + Items = returnChannels, + TotalRecordCount = returnChannels.Length }; } @@ -140,6 +182,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv return _channels.FirstOrDefault(i => i.Id == guid); } + public ChannelInfoDto GetChannelInfoDto(string id, string userId) + { + var channel = GetChannel(id); + + var user = string.IsNullOrEmpty(userId) ? null : _userManager.GetUserById(new Guid(userId)); + + return channel == null ? null : GetChannelInfoDto(channel, user); + } + private ProgramInfoDto GetProgramInfoDto(ProgramInfo program, Channel channel) { var id = GetInternalProgramIdId(channel.ServiceName, program.Id).ToString("N"); @@ -154,7 +205,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv Id = id, Name = program.Name, ServiceName = channel.ServiceName, - StartDate = program.StartDate + StartDate = program.StartDate, + OfficialRating = program.OfficialRating, + Quality = program.Quality, + OriginalAirDate = program.OriginalAirDate, + Audio = program.Audio }; } @@ -367,7 +422,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv StartDate = info.StartDate, Id = id, ExternalId = info.Id, - ChannelId = GetInternalChannelId(service.Name, info.ChannelId).ToString("N") + ChannelId = GetInternalChannelId(service.Name, info.ChannelId).ToString("N"), + Status = info.Status }; if (!string.IsNullOrEmpty(info.ProgramId)) @@ -377,5 +433,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv return dto; } + + public QueryResult<RecordingInfoDto> GetRecordings() + { + var returnArray = _recordings.ToArray(); + + return new QueryResult<RecordingInfoDto> + { + Items = returnArray, + TotalRecordCount = returnArray.Length + }; + } } } |
