mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-20 14:40:38 +01:00
Feature/media segments plugin api (#12359)
This commit is contained in:
@@ -62,7 +62,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
private readonly CancellationTokenSource _disposeCancellationTokenSource = new();
|
||||
private readonly PriorityQueue<(Guid ItemId, MetadataRefreshOptions RefreshOptions), RefreshPriority> _refreshQueue = new();
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
|
||||
private readonly IMediaSegmentManager _mediaSegmentManager;
|
||||
private readonly AsyncKeyedLocker<string> _imageSaveLock = new(o =>
|
||||
{
|
||||
o.PoolSize = 20;
|
||||
@@ -92,6 +92,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// <param name="baseItemManager">The BaseItem manager.</param>
|
||||
/// <param name="lyricManager">The lyric manager.</param>
|
||||
/// <param name="memoryCache">The memory cache.</param>
|
||||
/// <param name="mediaSegmentManager">The media segment manager.</param>
|
||||
public ProviderManager(
|
||||
IHttpClientFactory httpClientFactory,
|
||||
ISubtitleManager subtitleManager,
|
||||
@@ -103,7 +104,8 @@ namespace MediaBrowser.Providers.Manager
|
||||
ILibraryManager libraryManager,
|
||||
IBaseItemManager baseItemManager,
|
||||
ILyricManager lyricManager,
|
||||
IMemoryCache memoryCache)
|
||||
IMemoryCache memoryCache,
|
||||
IMediaSegmentManager mediaSegmentManager)
|
||||
{
|
||||
_logger = logger;
|
||||
_httpClientFactory = httpClientFactory;
|
||||
@@ -116,6 +118,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
_baseItemManager = baseItemManager;
|
||||
_lyricManager = lyricManager;
|
||||
_memoryCache = memoryCache;
|
||||
_mediaSegmentManager = mediaSegmentManager;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
@@ -572,6 +575,14 @@ namespace MediaBrowser.Providers.Manager
|
||||
Type = MetadataPluginType.LyricFetcher
|
||||
}));
|
||||
|
||||
// Media segment providers
|
||||
var mediaSegmentProviders = _mediaSegmentManager.GetSupportedProviders(dummy);
|
||||
pluginList.AddRange(mediaSegmentProviders.Select(i => new MetadataPlugin
|
||||
{
|
||||
Name = i.Name,
|
||||
Type = MetadataPluginType.MediaSegmentProvider
|
||||
}));
|
||||
|
||||
summary.Plugins = pluginList.ToArray();
|
||||
|
||||
var supportedImageTypes = imageProviders.OfType<IRemoteImageProvider>()
|
||||
|
||||
Reference in New Issue
Block a user