aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-11 00:49:18 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-11 00:49:18 -0500
commitef8b02d28543f9e9070c00877070016f032793bc (patch)
tree5598a7559da82ca4e29fb6b6753a1fe47a70b1ad
parentec4000404d59ee0e8342805cf7ce0c4ca04023b4 (diff)
added dvdlib for better dvd runtimes
-rw-r--r--MediaBrowser.Api/LiveTv/LiveTvImageService.cs195
-rw-r--r--MediaBrowser.Api/MediaBrowser.Api.csproj1
-rw-r--r--MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs5
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs6
-rw-r--r--MediaBrowser.Mono.userprefs2
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj6
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs23
-rw-r--r--MediaBrowser.Providers/packages.config1
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs14
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs5
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs22
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj10
-rw-r--r--MediaBrowser.Server.Implementations/packages.config2
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs2
-rw-r--r--MediaBrowser.WebDashboard/ApiClient.js12
-rw-r--r--MediaBrowser.WebDashboard/packages.config2
16 files changed, 80 insertions, 228 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvImageService.cs b/MediaBrowser.Api/LiveTv/LiveTvImageService.cs
deleted file mode 100644
index 65c4e5e23..000000000
--- a/MediaBrowser.Api/LiveTv/LiveTvImageService.cs
+++ /dev/null
@@ -1,195 +0,0 @@
-using MediaBrowser.Api.Images;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Controller.Drawing;
-using MediaBrowser.Controller.Dto;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.LiveTv;
-using MediaBrowser.Controller.Persistence;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Dto;
-using MediaBrowser.Model.Entities;
-using ServiceStack;
-using ServiceStack.Text.Controller;
-using ServiceStack.Web;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Api.LiveTv
-{
- [Route("/LiveTv/Channels/{Id}/Images/{Type}", "POST")]
- [Route("/LiveTv/Channels/{Id}/Images/{Type}/{Index}", "POST")]
- [Api(Description = "Posts an item image")]
- public class PostChannelImage : DeleteImageRequest, IRequiresRequestStream, IReturnVoid
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
- public string Id { get; set; }
-
- /// <summary>
- /// The raw Http Request Input Stream
- /// </summary>
- /// <value>The request stream.</value>
- public Stream RequestStream { get; set; }
- }
-
- [Route("/LiveTv/Channels/{Id}/Images/{Type}", "DELETE")]
- [Route("/LiveTv/Channels/{Id}/Images/{Type}/{Index}", "DELETE")]
- [Api(Description = "Deletes an item image")]
- public class DeleteChannelImage : DeleteImageRequest, IReturnVoid
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Channel Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
- public string Id { get; set; }
- }
- [Route("/LiveTv/Channels/{Id}/Images/{Type}", "GET")]
- [Route("/LiveTv/Channels/{Id}/Images/{Type}/{Index}", "GET")]
- [Api(Description = "Gets an item image")]
- public class GetChannelImage : ImageRequest
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Channel Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string Id { get; set; }
- }
-
- [Route("/LiveTv/Recordings/{Id}/Images/{Type}", "GET")]
- [Route("/LiveTv/Recordings/{Id}/Images/{Type}/{Index}", "GET")]
- [Api(Description = "Gets an item image")]
- public class GetRecordingImage : ImageRequest
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Recording Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string Id { get; set; }
- }
-
- [Route("/LiveTv/Programs/{Id}/Images/{Type}", "GET")]
- [Route("/LiveTv/Programs/{Id}/Images/{Type}/{Index}", "GET")]
- [Api(Description = "Gets an item image")]
- public class GetProgramImage : ImageRequest
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Program Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string Id { get; set; }
- }
-
- [Route("/LiveTv/Channels/{Id}/Images", "GET")]
- [Api(Description = "Gets information about an item's images")]
- public class GetChannelImageInfos : IReturn<List<ImageInfo>>
- {
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string Id { get; set; }
- }
-
- public class LiveTvImageService : BaseApiService
- {
- private readonly ILiveTvManager _liveTv;
-
- private readonly IUserManager _userManager;
-
- private readonly ILibraryManager _libraryManager;
-
- private readonly IApplicationPaths _appPaths;
-
- private readonly IProviderManager _providerManager;
-
- private readonly IItemRepository _itemRepo;
- private readonly IDtoService _dtoService;
- private readonly IImageProcessor _imageProcessor;
-
- public LiveTvImageService(ILiveTvManager liveTv, IUserManager userManager, ILibraryManager libraryManager, IApplicationPaths appPaths, IProviderManager providerManager, IItemRepository itemRepo, IDtoService dtoService, IImageProcessor imageProcessor)
- {
- _liveTv = liveTv;
- _userManager = userManager;
- _libraryManager = libraryManager;
- _appPaths = appPaths;
- _providerManager = providerManager;
- _itemRepo = itemRepo;
- _dtoService = dtoService;
- _imageProcessor = imageProcessor;
- }
-
- public object Get(GetChannelImageInfos request)
- {
- var item = _liveTv.GetInternalChannel(request.Id);
-
- var result = GetImageService().GetItemImageInfos(item);
-
- return ToOptimizedResult(result);
- }
-
- public object Get(GetChannelImage request)
- {
- var item = _liveTv.GetInternalChannel(request.Id);
-
- return GetImageService().GetImage(request, item);
- }
-
- public object Get(GetRecordingImage request)
- {
- var item = _liveTv.GetInternalRecording(request.Id, CancellationToken.None).Result;
-
- return GetImageService().GetImage(request, item);
- }
-
- public object Get(GetProgramImage request)
- {
- var item = _liveTv.GetInternalProgram(request.Id);
-
- return GetImageService().GetImage(request, item);
- }
-
- public void Post(PostChannelImage request)
- {
- var pathInfo = PathInfo.Parse(Request.PathInfo);
- var id = pathInfo.GetArgumentValue<string>(2);
-
- request.Type = (ImageType)Enum.Parse(typeof(ImageType), pathInfo.GetArgumentValue<string>(4), true);
-
- var item = _liveTv.GetInternalChannel(id);
-
- var task = GetImageService().PostImage(item, request.RequestStream, request.Type, Request.ContentType);
-
- Task.WaitAll(task);
- }
-
- public void Delete(DeleteChannelImage request)
- {
- var item = _liveTv.GetInternalChannel(request.Id);
-
- var task = item.DeleteImage(request.Type, request.Index);
-
- Task.WaitAll(task);
- }
-
- private ImageService GetImageService()
- {
- return new ImageService(_userManager, _libraryManager, _appPaths, _providerManager, _itemRepo, _dtoService,
- _imageProcessor)
- {
- ResultFactory = ResultFactory,
- Request = Request
- };
- }
- }
-}
diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj
index 4fc989fc5..409d152f7 100644
--- a/MediaBrowser.Api/MediaBrowser.Api.csproj
+++ b/MediaBrowser.Api/MediaBrowser.Api.csproj
@@ -90,7 +90,6 @@
<Compile Include="Library\LibraryHelpers.cs" />
<Compile Include="Library\LibraryService.cs" />
<Compile Include="Library\LibraryStructureService.cs" />
- <Compile Include="LiveTv\LiveTvImageService.cs" />
<Compile Include="LiveTv\LiveTvService.cs" />
<Compile Include="LocalizationService.cs" />
<Compile Include="MoviesService.cs" />
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
index 440632825..0ae96effd 100644
--- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
@@ -163,6 +163,11 @@ namespace MediaBrowser.Api.Playback.Progressive
{
responseHeaders["ContentFeatures.DLNA.ORG"] = (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';');
}
+
+ foreach (var item in responseHeaders)
+ {
+ Request.Response.AddHeader(item.Key, item.Value);
+ }
}
/// <summary>
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 036ac7e81..c3a87fc31 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -327,5 +327,11 @@ namespace MediaBrowser.Controller.Library
/// <param name="paths">The paths.</param>
/// <returns>IEnumerable{System.String}.</returns>
IEnumerable<string> NormalizeRootPathList(IEnumerable<string> paths);
+
+ /// <summary>
+ /// Registers the item.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ void RegisterItem(BaseItem item);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Mono.userprefs b/MediaBrowser.Mono.userprefs
index da74b9ccd..a65710851 100644
--- a/MediaBrowser.Mono.userprefs
+++ b/MediaBrowser.Mono.userprefs
@@ -4,7 +4,7 @@
<Files>
<File FileName="MediaBrowser.Server.Mono\app.config" Line="1" Column="1" />
<File FileName="MediaBrowser.ServerApplication\ApplicationHost.cs" Line="1" Column="1" />
- <File FileName="MediaBrowser.Server.Mono\Native\NativeApp.cs" Line="12" Column="23" />
+ <File FileName="MediaBrowser.Server.Mono\Native\NativeApp.cs" Line="1" Column="1" />
<File FileName="MediaBrowser.Server.Mono\Program.cs" Line="36" Column="34" />
</Files>
</MonoDevelop.Ide.Workbench>
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 6b87f1dfe..e686e7eda 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -45,6 +45,12 @@
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="BDInfo">
+ <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\BDInfo.dll</HintPath>
+ </Reference>
+ <Reference Include="DvdLib">
+ <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\DvdLib.dll</HintPath>
+ </Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net" />
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
index 8e07bc266..e386c78a4 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.MediaInfo;
+using DvdLib.Ifo;
+using MediaBrowser.Common.MediaInfo;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Localization;
@@ -132,12 +133,30 @@ namespace MediaBrowser.Providers.MediaInfo
if (item.VideoType == VideoType.Dvd || (item.IsoType.HasValue && item.IsoType == IsoType.Dvd))
{
- PopulateDvdStreamFiles(item, mount);
+ FetchFromDvdLib(item, mount);
}
base.OnPreFetch(item, mount);
}
+ private void FetchFromDvdLib(Video item, IIsoMount mount)
+ {
+ var path = mount == null ? item.Path : mount.MountedPath;
+ var dvd = new Dvd(path);
+
+ item.RunTimeTicks = dvd.Titles.Select(GetRuntime).Max();
+
+ PopulateDvdStreamFiles(item, mount);
+ }
+
+ private long GetRuntime(Title title)
+ {
+ return title.ProgramChains
+ .Select(i => (TimeSpan)i.PlaybackTime)
+ .Select(i => i.Ticks)
+ .Sum();
+ }
+
public override async Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken)
{
var video = (Video)item;
diff --git a/MediaBrowser.Providers/packages.config b/MediaBrowser.Providers/packages.config
index f40bfae21..4a4fef846 100644
--- a/MediaBrowser.Providers/packages.config
+++ b/MediaBrowser.Providers/packages.config
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="MediaBrowser.BdInfo" version="1.0.0.7" targetFramework="net45" />
<package id="morelinq" version="1.0.16006" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
index 798632af7..2419320a5 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
@@ -360,11 +360,19 @@ namespace MediaBrowser.Server.Implementations.HttpServer
var compress = ShouldCompressResponse(requestContext, contentType);
- var hasOptions = GetStaticResult(requestContext, responseHeaders, contentType, factoryFn, compress, isHeadRequest).Result;
+ var hasOptions = GetStaticResult(requestContext, responseHeaders, contentType, factoryFn, compress, isHeadRequest);
- AddResponseHeaders(hasOptions, responseHeaders);
+ return GetStaticResultTask(hasOptions, responseHeaders);
+ }
+
+ private async Task<object> GetStaticResultTask(Task<IHasOptions> optionsTask,
+ IEnumerable<KeyValuePair<string, string>> responseHeaders)
+ {
+ var options = await optionsTask.ConfigureAwait(false);
+
+ AddResponseHeaders(options, responseHeaders);
- return hasOptions;
+ return options;
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 8e4e71fd4..fc5497fa3 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -407,6 +407,11 @@ namespace MediaBrowser.Server.Implementations.Library
}
}
+ RegisterItem(item);
+ }
+
+ public void RegisterItem(BaseItem item)
+ {
LibraryItemsCache.AddOrUpdate(item.Id, item, delegate { return item; });
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index b6622a310..182ce1cbc 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -30,21 +30,23 @@ namespace MediaBrowser.Server.Implementations.LiveTv
private readonly ILogger _logger;
private readonly IItemRepository _itemRepo;
private readonly IUserManager _userManager;
+ private readonly ILibraryManager _libraryManager;
private readonly LiveTvDtoService _tvDtoService;
private readonly List<ILiveTvService> _services = new List<ILiveTvService>();
- private Dictionary<Guid, LiveTvChannel> _channels = new Dictionary<Guid, LiveTvChannel>();
+ private List<Guid> _channelIdList = new List<Guid>();
private Dictionary<Guid, LiveTvProgram> _programs = new Dictionary<Guid, LiveTvProgram>();
- public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager)
+ public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager, ILibraryManager libraryManager)
{
_appPaths = appPaths;
_fileSystem = fileSystem;
_logger = logger;
_itemRepo = itemRepo;
_userManager = userManager;
+ _libraryManager = libraryManager;
_tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, _itemRepo);
}
@@ -75,7 +77,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv
{
var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId));
- IEnumerable<LiveTvChannel> channels = _channels.Values;
+ var channels = _channelIdList.Select(_libraryManager.GetItemById)
+ .Where(i => i != null)
+ .OfType<LiveTvChannel>();
if (user != null)
{
@@ -144,10 +148,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
private LiveTvChannel GetInternalChannel(Guid id)
{
- LiveTvChannel channel = null;
-
- _channels.TryGetValue(id, out channel);
- return channel;
+ return _libraryManager.GetItemById(id) as LiveTvChannel;
}
public LiveTvProgram GetInternalProgram(string id)
@@ -320,6 +321,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv
await item.RefreshMetadata(cancellationToken, forceSave: isNew, resetResolveArgs: false);
+ _libraryManager.RegisterItem((BaseItem)item);
+
return item;
}
@@ -477,6 +480,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv
var item = await GetChannel(channelInfo.Item2, channelInfo.Item1, cancellationToken).ConfigureAwait(false);
list.Add(item);
+
+ _libraryManager.RegisterItem(item);
}
catch (OperationCanceledException)
{
@@ -493,7 +498,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv
progress.Report(5 * percent + 10);
}
- _channels = list.ToDictionary(i => i.Id);
+
+ _channelIdList = list.Select(i => i.Id).ToList();
progress.Report(15);
numComplete = 0;
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index b083b7b84..6513446b7 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -48,6 +48,13 @@
<Reference Include="Alchemy">
<HintPath>..\packages\Alchemy.2.2.1\lib\net40\Alchemy.dll</HintPath>
</Reference>
+ <Reference Include="BDInfo, Version=1.0.5124.611, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\BDInfo.dll</HintPath>
+ </Reference>
+ <Reference Include="DvdLib">
+ <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\DvdLib.dll</HintPath>
+ </Reference>
<Reference Include="ServiceStack.Api.Swagger">
<HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath>
</Reference>
@@ -68,9 +75,6 @@
<Reference Include="MoreLinq">
<HintPath>..\packages\morelinq.1.0.16006\lib\net35\MoreLinq.dll</HintPath>
</Reference>
- <Reference Include="BDInfo">
- <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.5\lib\net20\BDInfo.dll</HintPath>
- </Reference>
<Reference Include="System.Data.SQLite" Condition=" '$(ConfigurationName)' == 'Release Mono' ">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ThirdParty\System.Data.SQLite.ManagedOnly\x86\1.0.90.0\net40\System.Data.SQLite.dll</HintPath>
diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config
index a504bc6ab..503e916e5 100644
--- a/MediaBrowser.Server.Implementations/packages.config
+++ b/MediaBrowser.Server.Implementations/packages.config
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Alchemy" version="2.2.1" targetFramework="net45" />
- <package id="MediaBrowser.BdInfo" version="1.0.0.5" targetFramework="net45" />
+ <package id="MediaBrowser.BdInfo" version="1.0.0.7" targetFramework="net45" />
<package id="morelinq" version="1.0.16006" targetFramework="net45" />
<package id="System.Data.SQLite.x86" version="1.0.90.0" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index bf20c8fb8..a14ffc433 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -285,7 +285,7 @@ namespace MediaBrowser.ServerApplication
DtoService = new DtoService(Logger, LibraryManager, UserManager, UserDataManager, ItemRepository, ImageProcessor);
RegisterSingleInstance(DtoService);
- LiveTvManager = new LiveTvManager(ApplicationPaths, FileSystemManager, Logger, ItemRepository, ImageProcessor, UserDataManager, DtoService, UserManager);
+ LiveTvManager = new LiveTvManager(ApplicationPaths, FileSystemManager, Logger, ItemRepository, ImageProcessor, UserDataManager, DtoService, UserManager, LibraryManager);
RegisterSingleInstance(LiveTvManager);
progress.Report(15);
diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js
index cbe815c03..fe0e5e541 100644
--- a/MediaBrowser.WebDashboard/ApiClient.js
+++ b/MediaBrowser.WebDashboard/ApiClient.js
@@ -1594,9 +1594,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
- else if (itemType == "Channel") {
- url = self.getUrl("LiveTv/Channels/" + itemId + "/Images");
- }
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
} else if (itemType == "GameGenre") {
@@ -1667,9 +1664,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
- else if (itemType == "Channel") {
- url = self.getUrl("LiveTv/Channels/" + itemId + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
- }
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
} else if (itemType == "GameGenre") {
@@ -1701,9 +1695,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
- else if (itemType == "Channel") {
- url = self.getUrl("LiveTv/Channels/" + itemId + "/Images");
- }
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
} else if (itemType == "GameGenre") {
@@ -1838,9 +1829,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
- else if (itemType == "Channel") {
- url = self.getUrl("LiveTv/Channels/" + itemId + "/Images");
- }
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
} else if (itemType == "GameGenre") {
diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config
index c47d67815..6c512e8bb 100644
--- a/MediaBrowser.WebDashboard/packages.config
+++ b/MediaBrowser.WebDashboard/packages.config
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="MediaBrowser.ApiClient.Javascript" version="3.0.223" targetFramework="net45" />
+ <package id="MediaBrowser.ApiClient.Javascript" version="3.0.224" targetFramework="net45" />
</packages> \ No newline at end of file