mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-26 09:31:04 +01:00
added dvdlib for better dvd runtimes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
return hasOptions;
|
||||
private async Task<object> GetStaticResultTask(Task<IHasOptions> optionsTask,
|
||||
IEnumerable<KeyValuePair<string, string>> responseHeaders)
|
||||
{
|
||||
var options = await optionsTask.ConfigureAwait(false);
|
||||
|
||||
AddResponseHeaders(options, responseHeaders);
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -407,6 +407,11 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
}
|
||||
}
|
||||
|
||||
RegisterItem(item);
|
||||
}
|
||||
|
||||
public void RegisterItem(BaseItem item)
|
||||
{
|
||||
LibraryItemsCache.AddOrUpdate(item.Id, item, delegate { return item; });
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user