Explorar o código

Use DI for IListingsProvider

Patrick Barron hai 1 ano
pai
achega
efd024bafe

+ 1 - 1
Emby.Server.Implementations/ApplicationHost.cs

@@ -695,7 +695,7 @@ namespace Emby.Server.Implementations
                 GetExports<IMetadataSaver>(),
                 GetExports<IExternalId>());
 
-            Resolve<ILiveTvManager>().AddParts(GetExports<ILiveTvService>(), GetExports<IListingsProvider>());
+            Resolve<ILiveTvManager>().AddParts(GetExports<ILiveTvService>());
 
             Resolve<IMediaSourceManager>().AddParts(GetExports<IMediaSourceProvider>());
         }

+ 1 - 2
MediaBrowser.Controller/LiveTv/ILiveTvManager.cs

@@ -71,8 +71,7 @@ namespace MediaBrowser.Controller.LiveTv
         /// Adds the parts.
         /// </summary>
         /// <param name="services">The services.</param>
-        /// <param name="listingProviders">The listing providers.</param>
-        void AddParts(IEnumerable<ILiveTvService> services, IEnumerable<IListingsProvider> listingProviders);
+        void AddParts(IEnumerable<ILiveTvService> services);
 
         /// <summary>
         /// Gets the timer.

+ 3 - 0
src/Jellyfin.LiveTv/Extensions/LiveTvServiceCollectionExtensions.cs

@@ -1,5 +1,6 @@
 using Jellyfin.LiveTv.Channels;
 using Jellyfin.LiveTv.Guide;
+using Jellyfin.LiveTv.Listings;
 using Jellyfin.LiveTv.TunerHosts;
 using Jellyfin.LiveTv.TunerHosts.HdHomerun;
 using MediaBrowser.Controller.Channels;
@@ -29,5 +30,7 @@ public static class LiveTvServiceCollectionExtensions
 
         services.AddSingleton<ITunerHost, HdHomerunHost>();
         services.AddSingleton<ITunerHost, M3UTunerHost>();
+        services.AddSingleton<IListingsProvider, SchedulesDirect>();
+        services.AddSingleton<IListingsProvider, XmlTvListingsProvider>();
     }
 }

+ 5 - 5
src/Jellyfin.LiveTv/LiveTvManager.cs

@@ -47,9 +47,9 @@ namespace Jellyfin.LiveTv
         private readonly ILocalizationManager _localization;
         private readonly IChannelManager _channelManager;
         private readonly LiveTvDtoService _tvDtoService;
+        private readonly IListingsProvider[] _listingProviders;
 
         private ILiveTvService[] _services = Array.Empty<ILiveTvService>();
-        private IListingsProvider[] _listingProviders = Array.Empty<IListingsProvider>();
 
         public LiveTvManager(
             IServerConfigurationManager config,
@@ -61,7 +61,8 @@ namespace Jellyfin.LiveTv
             ITaskManager taskManager,
             ILocalizationManager localization,
             IChannelManager channelManager,
-            LiveTvDtoService liveTvDtoService)
+            LiveTvDtoService liveTvDtoService,
+            IEnumerable<IListingsProvider> listingProviders)
         {
             _config = config;
             _logger = logger;
@@ -73,6 +74,7 @@ namespace Jellyfin.LiveTv
             _userDataManager = userDataManager;
             _channelManager = channelManager;
             _tvDtoService = liveTvDtoService;
+            _listingProviders = listingProviders.ToArray();
         }
 
         public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
@@ -97,12 +99,10 @@ namespace Jellyfin.LiveTv
         }
 
         /// <inheritdoc />
-        public void AddParts(IEnumerable<ILiveTvService> services, IEnumerable<IListingsProvider> listingProviders)
+        public void AddParts(IEnumerable<ILiveTvService> services)
         {
             _services = services.ToArray();
 
-            _listingProviders = listingProviders.ToArray();
-
             foreach (var service in _services)
             {
                 if (service is EmbyTV.EmbyTV embyTv)