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