diff --git a/MediaBrowser.Api/LiveTv/LiveTvImageService.cs b/MediaBrowser.Api/LiveTv/LiveTvImageService.cs index 84926e164c..f58d4a5334 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvImageService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvImageService.cs @@ -178,7 +178,11 @@ namespace MediaBrowser.Api.LiveTv private ImageService GetImageService() { return new ImageService(_userManager, _libraryManager, _appPaths, _providerManager, _itemRepo, _dtoService, - _imageProcessor); + _imageProcessor) + { + ResultFactory = ResultFactory, + Request = Request + }; } } } diff --git a/MediaBrowser.Controller/LiveTv/ProgramInfo.cs b/MediaBrowser.Controller/LiveTv/ProgramInfo.cs index 959f677403..e1382657d7 100644 --- a/MediaBrowser.Controller/LiveTv/ProgramInfo.cs +++ b/MediaBrowser.Controller/LiveTv/ProgramInfo.cs @@ -133,6 +133,30 @@ namespace MediaBrowser.Controller.LiveTv /// true if this instance is video; otherwise, false. public bool IsVideo { get; set; } + /// + /// Gets or sets a value indicating whether this instance is live. + /// + /// true if this instance is live; otherwise, false. + public bool IsLive { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is news. + /// + /// true if this instance is news; otherwise, false. + public bool IsNews { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is kids. + /// + /// true if this instance is kids; otherwise, false. + public bool IsKids { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is premiere. + /// + /// true if this instance is premiere; otherwise, false. + public bool IsPremiere { get; set; } + public ProgramInfo() { Genres = new List(); diff --git a/MediaBrowser.Controller/LiveTv/RecordingInfo.cs b/MediaBrowser.Controller/LiveTv/RecordingInfo.cs index ee3d945942..afdcec1f9c 100644 --- a/MediaBrowser.Controller/LiveTv/RecordingInfo.cs +++ b/MediaBrowser.Controller/LiveTv/RecordingInfo.cs @@ -101,6 +101,48 @@ namespace MediaBrowser.Controller.LiveTv /// The audio. public ProgramAudio? Audio { get; set; } + /// + /// Gets or sets a value indicating whether this instance is movie. + /// + /// true if this instance is movie; otherwise, false. + public bool IsMovie { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is sports. + /// + /// true if this instance is sports; otherwise, false. + public bool IsSports { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is series. + /// + /// true if this instance is series; otherwise, false. + public bool IsSeries { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is live. + /// + /// true if this instance is live; otherwise, false. + public bool IsLive { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is news. + /// + /// true if this instance is news; otherwise, false. + public bool IsNews { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is kids. + /// + /// true if this instance is kids; otherwise, false. + public bool IsKids { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is premiere. + /// + /// true if this instance is premiere; otherwise, false. + public bool IsPremiere { get; set; } + /// /// Gets or sets the official rating. /// diff --git a/MediaBrowser.Model/LiveTv/ProgramInfoDto.cs b/MediaBrowser.Model/LiveTv/ProgramInfoDto.cs index 7a55282ccc..d48bb40874 100644 --- a/MediaBrowser.Model/LiveTv/ProgramInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/ProgramInfoDto.cs @@ -139,12 +139,42 @@ namespace MediaBrowser.Model.LiveTv /// true if this instance is series; otherwise, false. public bool IsSeries { get; set; } + /// + /// Gets or sets a value indicating whether this instance is live. + /// + /// true if this instance is live; otherwise, false. + public bool IsLive { get; set; } + /// /// Gets or sets the type. /// /// The type. public string Type { get; set; } + /// + /// Gets or sets the run time ticks. + /// + /// The run time ticks. + public long? RunTimeTicks { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is news. + /// + /// true if this instance is news; otherwise, false. + public bool IsNews { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is kids. + /// + /// true if this instance is kids; otherwise, false. + public bool IsKids { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is premiere. + /// + /// true if this instance is premiere; otherwise, false. + public bool IsPremiere { get; set; } + public ProgramInfoDto() { Genres = new List(); diff --git a/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs b/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs index 16ced7c2ce..e686fd9c43 100644 --- a/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/RecordingInfoDto.cs @@ -96,10 +96,10 @@ namespace MediaBrowser.Model.LiveTv public string EpisodeTitle { get; set; } /// - /// Gets or sets the duration ms. + /// Gets or sets the run time ticks. /// - /// The duration ms. - public int DurationMs { get; set; } + /// The run time ticks. + public long? RunTimeTicks { get; set; } /// /// Gets or sets the type of the media. @@ -137,6 +137,48 @@ namespace MediaBrowser.Model.LiveTv /// The audio. public ProgramAudio? Audio { get; set; } + /// + /// Gets or sets a value indicating whether this instance is movie. + /// + /// true if this instance is movie; otherwise, false. + public bool IsMovie { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is sports. + /// + /// true if this instance is sports; otherwise, false. + public bool IsSports { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is series. + /// + /// true if this instance is series; otherwise, false. + public bool IsSeries { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is live. + /// + /// true if this instance is live; otherwise, false. + public bool IsLive { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is news. + /// + /// true if this instance is news; otherwise, false. + public bool IsNews { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is kids. + /// + /// true if this instance is kids; otherwise, false. + public bool IsKids { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is premiere. + /// + /// true if this instance is premiere; otherwise, false. + public bool IsPremiere { get; set; } + /// /// Gets or sets the image tags. /// diff --git a/MediaBrowser.Model/LiveTv/TimerInfoDto.cs b/MediaBrowser.Model/LiveTv/TimerInfoDto.cs index fc7306a627..dfca78e79a 100644 --- a/MediaBrowser.Model/LiveTv/TimerInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/TimerInfoDto.cs @@ -112,10 +112,10 @@ namespace MediaBrowser.Model.LiveTv public bool IsPostPaddingRequired { get; set; } /// - /// Gets or sets the duration ms. + /// Gets or sets the run time ticks. /// - /// The duration ms. - public int DurationMs { get; set; } + /// The run time ticks. + public long? RunTimeTicks { get; set; } /// /// Gets or sets the priority. diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index 3d18e9837f..f8f5d02e97 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -52,12 +52,10 @@ namespace MediaBrowser.Server.Implementations.LiveTv ExternalSeriesTimerId = info.SeriesTimerId, ServiceName = service.Name, ExternalProgramId = info.ProgramId, - Priority = info.Priority + Priority = info.Priority, + RunTimeTicks = (info.EndDate - info.StartDate).Ticks }; - var duration = info.EndDate - info.StartDate; - dto.DurationMs = Convert.ToInt32(duration.TotalMilliseconds); - if (!string.IsNullOrEmpty(info.ProgramId)) { dto.ProgramId = GetInternalProgramId(service.Name, info.ProgramId).ToString("N"); @@ -177,7 +175,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv Audio = info.Audio, IsHD = info.IsHD, ServiceName = service.Name, - Url = info.Url + Url = info.Url, + IsMovie = info.IsMovie, + IsSeries = info.IsSeries, + IsSports = info.IsSports, + IsLive = info.IsLive, + IsNews = info.IsNews, + IsKids = info.IsKids, + IsPremiere = info.IsPremiere, + RunTimeTicks = (info.EndDate - info.StartDate).Ticks }; var imageTag = GetImageTag(recording); @@ -192,9 +198,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv dto.UserData = _dtoService.GetUserItemDataDto(_userDataManager.GetUserData(user.Id, recording.GetUserDataKey())); } - var duration = info.EndDate - info.StartDate; - dto.DurationMs = Convert.ToInt32(duration.TotalMilliseconds); - if (!string.IsNullOrEmpty(info.ProgramId)) { dto.ProgramId = GetInternalProgramId(service.Name, info.ProgramId).ToString("N"); @@ -264,7 +267,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv ChannelName = program.ChannelName, IsMovie = program.IsMovie, IsSeries = program.IsSeries, - IsSports = program.IsSports + IsSports = program.IsSports, + IsLive = program.IsLive, + IsNews = program.IsNews, + IsKids = program.IsKids, + IsPremiere = program.IsPremiere, + RunTimeTicks = (program.EndDate - program.StartDate).Ticks }; if (user != null) diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index b5584b1664..d3850017cd 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -496,6 +496,7 @@ namespace MediaBrowser.WebDashboard.Api "livetvchannels.js", "livetvguide.js", "livetvnewrecording.js", + "livetvprogram.js", "livetvrecording.js", "livetvrecordings.js", "livetvtimer.js", @@ -595,7 +596,8 @@ namespace MediaBrowser.WebDashboard.Api "search.css", "pluginupdates.css", "remotecontrol.css", - "userimage.css" + "userimage.css", + "livetv.css" }; var memoryStream = new MemoryStream(); diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index bb635d1ae1..5d3d8c491c 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -91,12 +91,18 @@ PreserveNewest + + PreserveNewest + PreserveNewest PreserveNewest + + PreserveNewest + PreserveNewest @@ -370,6 +376,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index a25a1592c9..e84fb011be 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common.Internal - 3.0.281 + 3.0.284 MediaBrowser.Common.Internal Luke ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption. Copyright © Media Browser 2013 - + diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 4d773e6cbc..67eedbf585 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common - 3.0.281 + 3.0.284 MediaBrowser.Common Media Browser Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 0ac9ce4f20..050e3086c9 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Server.Core - 3.0.281 + 3.0.284 Media Browser.Server.Core Media Browser Team ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains core components required to build plugins for Media Browser Server. Copyright © Media Browser 2013 - +