mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-30 19:32:57 +01:00
Created ILibraryMonitor to replace IDirectoryWatchers
This commit is contained in:
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Logging;
|
||||
@@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// <summary>
|
||||
/// The _directory watchers
|
||||
/// </summary>
|
||||
private readonly IDirectoryWatchers _directoryWatchers;
|
||||
private readonly ILibraryMonitor _libraryMonitor;
|
||||
private readonly IFileSystem _fileSystem;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
@@ -44,11 +44,11 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// Initializes a new instance of the <see cref="ImageSaver"/> class.
|
||||
/// </summary>
|
||||
/// <param name="config">The config.</param>
|
||||
/// <param name="directoryWatchers">The directory watchers.</param>
|
||||
public ImageSaver(IServerConfigurationManager config, IDirectoryWatchers directoryWatchers, IFileSystem fileSystem, ILogger logger)
|
||||
/// <param name="libraryMonitor">The directory watchers.</param>
|
||||
public ImageSaver(IServerConfigurationManager config, ILibraryMonitor libraryMonitor, IFileSystem fileSystem, ILogger logger)
|
||||
{
|
||||
_config = config;
|
||||
_directoryWatchers = directoryWatchers;
|
||||
_libraryMonitor = libraryMonitor;
|
||||
_fileSystem = fileSystem;
|
||||
_logger = logger;
|
||||
_remoteImageCache = new FileSystemRepository(config.ApplicationPaths.DownloadedImagesDataPath);
|
||||
@@ -160,7 +160,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
// Delete the current path
|
||||
if (!string.IsNullOrEmpty(currentPath) && !paths.Contains(currentPath, StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
_directoryWatchers.TemporarilyIgnore(currentPath);
|
||||
_libraryMonitor.ReportFileSystemChangeBeginning(currentPath);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -179,7 +179,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
}
|
||||
finally
|
||||
{
|
||||
_directoryWatchers.RemoveTempIgnore(currentPath);
|
||||
_libraryMonitor.ReportFileSystemChangeComplete(currentPath, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -197,8 +197,8 @@ namespace MediaBrowser.Providers.Manager
|
||||
|
||||
var parentFolder = Path.GetDirectoryName(path);
|
||||
|
||||
_directoryWatchers.TemporarilyIgnore(path);
|
||||
_directoryWatchers.TemporarilyIgnore(parentFolder);
|
||||
_libraryMonitor.ReportFileSystemChangeBeginning(path);
|
||||
_libraryMonitor.ReportFileSystemChangeBeginning(parentFolder);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -223,8 +223,8 @@ namespace MediaBrowser.Providers.Manager
|
||||
}
|
||||
finally
|
||||
{
|
||||
_directoryWatchers.RemoveTempIgnore(path);
|
||||
_directoryWatchers.RemoveTempIgnore(parentFolder);
|
||||
_libraryMonitor.ReportFileSystemChangeComplete(path, false);
|
||||
_libraryMonitor.ReportFileSystemChangeComplete(parentFolder, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ namespace MediaBrowser.Providers.Manager
|
||||
public void AddParts(IEnumerable<IMetadataProvider> providers, IEnumerable<IImageProvider> imageProviders)
|
||||
{
|
||||
_providers = providers.OfType<IMetadataProvider<TItemType>>()
|
||||
.OrderBy(GetSortOrder)
|
||||
.ToArray();
|
||||
|
||||
_imageProviders = imageProviders.OrderBy(i => i.Order).ToArray();
|
||||
@@ -179,21 +178,6 @@ namespace MediaBrowser.Providers.Manager
|
||||
return providers;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the sort order.
|
||||
/// </summary>
|
||||
/// <param name="provider">The provider.</param>
|
||||
/// <returns>System.Int32.</returns>
|
||||
protected virtual int GetSortOrder(IMetadataProvider<TItemType> provider)
|
||||
{
|
||||
if (provider is IRemoteMetadataProvider)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether this instance can refresh the specified provider.
|
||||
/// </summary>
|
||||
@@ -217,7 +201,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
|
||||
protected abstract Task SaveItem(TItemType item, ItemUpdateType reason, CancellationToken cancellationToken);
|
||||
|
||||
protected virtual ItemId GetId(TItemType item)
|
||||
protected virtual ItemId GetId(IHasMetadata item)
|
||||
{
|
||||
return new ItemId
|
||||
{
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// <summary>
|
||||
/// The _directory watchers
|
||||
/// </summary>
|
||||
private readonly IDirectoryWatchers _directoryWatchers;
|
||||
private readonly ILibraryMonitor _libraryMonitor;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the configuration manager.
|
||||
@@ -57,23 +57,23 @@ namespace MediaBrowser.Providers.Manager
|
||||
|
||||
private readonly IItemRepository _itemRepo;
|
||||
|
||||
private IMetadataService[] _metadataServices = {};
|
||||
private IMetadataService[] _metadataServices = { };
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ProviderManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="httpClient">The HTTP client.</param>
|
||||
/// <param name="configurationManager">The configuration manager.</param>
|
||||
/// <param name="directoryWatchers">The directory watchers.</param>
|
||||
/// <param name="libraryMonitor">The directory watchers.</param>
|
||||
/// <param name="logManager">The log manager.</param>
|
||||
/// <param name="fileSystem">The file system.</param>
|
||||
/// <param name="itemRepo">The item repo.</param>
|
||||
public ProviderManager(IHttpClient httpClient, IServerConfigurationManager configurationManager, IDirectoryWatchers directoryWatchers, ILogManager logManager, IFileSystem fileSystem, IItemRepository itemRepo)
|
||||
public ProviderManager(IHttpClient httpClient, IServerConfigurationManager configurationManager, ILibraryMonitor libraryMonitor, ILogManager logManager, IFileSystem fileSystem, IItemRepository itemRepo)
|
||||
{
|
||||
_logger = logManager.GetLogger("ProviderManager");
|
||||
_httpClient = httpClient;
|
||||
ConfigurationManager = configurationManager;
|
||||
_directoryWatchers = directoryWatchers;
|
||||
_libraryMonitor = libraryMonitor;
|
||||
_fileSystem = fileSystem;
|
||||
_itemRepo = itemRepo;
|
||||
}
|
||||
@@ -315,7 +315,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
}
|
||||
|
||||
//Tell the watchers to ignore
|
||||
_directoryWatchers.TemporarilyIgnore(path);
|
||||
_libraryMonitor.ReportFileSystemChangeBeginning(path);
|
||||
|
||||
if (dataToSave.CanSeek)
|
||||
{
|
||||
@@ -338,7 +338,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
finally
|
||||
{
|
||||
//Remove the ignore
|
||||
_directoryWatchers.RemoveTempIgnore(path);
|
||||
_libraryMonitor.ReportFileSystemChangeComplete(path, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// <returns>Task.</returns>
|
||||
public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken)
|
||||
{
|
||||
return new ImageSaver(ConfigurationManager, _directoryWatchers, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, sourceUrl, cancellationToken);
|
||||
return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, sourceUrl, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user