Integrate native decoder TV and internet EPG artwork with Jellyfin 12.2
This commit is contained in:
@@ -5,6 +5,11 @@ using MediaBrowser.Controller;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System.Net.Http;
|
||||
using Jellyfin.Plugin.Enigma2.Helpers;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Jellyfin.Plugin.Enigma2
|
||||
{
|
||||
@@ -13,8 +18,22 @@ namespace Jellyfin.Plugin.Enigma2
|
||||
/// <inheritdoc />
|
||||
public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
|
||||
{
|
||||
serviceCollection.AddSingleton<InternetEpg>();
|
||||
serviceCollection.AddSingleton<PreferencesStore>();
|
||||
serviceCollection.AddTransient<Microsoft.AspNetCore.Hosting.IStartupFilter, NativeChannelFilter>();
|
||||
serviceCollection.AddSingleton<ILiveTvService, LiveTvService>();
|
||||
serviceCollection.AddSingleton<IChannel, RecordingsChannel>();
|
||||
// Jellyfin registers services before constructing Plugin.Instance.
|
||||
var paths = serviceCollection.Last(x => x.ServiceType == typeof(IApplicationPaths)).ImplementationInstance as IApplicationPaths;
|
||||
if (VuRecordingsEnabled(Path.Combine(paths.PluginConfigurationsPath, "Jellyfin.Plugin.Enigma2.xml")))
|
||||
serviceCollection.AddSingleton<IChannel, RecordingsChannel>();
|
||||
}
|
||||
|
||||
public static bool VuRecordingsEnabled(string configurationPath)
|
||||
{
|
||||
if (!File.Exists(configurationPath)) return false;
|
||||
using var reader = XmlReader.Create(configurationPath, new XmlReaderSettings { DtdProcessing = DtdProcessing.Prohibit, XmlResolver = null });
|
||||
var value = XDocument.Load(reader).Root?.Element("EnableVuRecordings")?.Value;
|
||||
return bool.TryParse(value, out var enabled) && enabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user