diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 6e6c47ae04..c6eda26afc 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Text; using System.Text.Json; using System.Threading; +using System.Threading.Tasks; using Jellyfin.Data.Enums; using Jellyfin.Database.Implementations; using Jellyfin.Database.Implementations.Entities; @@ -2353,4 +2354,14 @@ public sealed class BaseItemRepository return baseQuery; } + + /// + public async Task ItemExistsAsync(Guid id) + { + var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false); + await using (dbContext.ConfigureAwait(false)) + { + return await dbContext.BaseItems.AnyAsync(f => f.Id == id).ConfigureAwait(false); + } + } } diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs index e185898bfb..f4ac0ece44 100644 --- a/MediaBrowser.Controller/Persistence/IItemRepository.cs +++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Threading; +using System.Threading.Tasks; using Jellyfin.Data.Enums; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; @@ -102,4 +103,11 @@ public interface IItemRepository IReadOnlyList GetGenreNames(); IReadOnlyList GetAllArtistNames(); + + /// + /// Checks if an item has been persisted to the database. + /// + /// The id to check. + /// True if the item exists, otherwise false. + Task ItemExistsAsync(Guid id); } diff --git a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs index 1b2deaef30..845f534936 100644 --- a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs +++ b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -24,14 +25,16 @@ public class AudioBookMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public AudioBookMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Books/BookMetadataService.cs b/MediaBrowser.Providers/Books/BookMetadataService.cs index 97cd04b45b..3b8dbfa7b7 100644 --- a/MediaBrowser.Providers/Books/BookMetadataService.cs +++ b/MediaBrowser.Providers/Books/BookMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -24,14 +25,16 @@ public class BookMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public BookMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs index ab3cd9483b..1cb6bf234c 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs @@ -5,6 +5,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -27,14 +28,16 @@ public class BoxSetMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public BoxSetMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs index 1285284aa1..7e9b694b32 100644 --- a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs +++ b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class ChannelMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public ChannelMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs index 372b08090b..9efef60a1f 100644 --- a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs +++ b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class CollectionFolderMetadataService : MetadataServiceInstance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public CollectionFolderMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Folders/FolderMetadataService.cs b/MediaBrowser.Providers/Folders/FolderMetadataService.cs index 9ffb33abee..272bb31e3a 100644 --- a/MediaBrowser.Providers/Folders/FolderMetadataService.cs +++ b/MediaBrowser.Providers/Folders/FolderMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class FolderMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public FolderMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs index d0171aa8c7..ab4bc917d5 100644 --- a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs +++ b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class UserViewMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public UserViewMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Genres/GenreMetadataService.cs b/MediaBrowser.Providers/Genres/GenreMetadataService.cs index 23aaf4c921..0dd0384dca 100644 --- a/MediaBrowser.Providers/Genres/GenreMetadataService.cs +++ b/MediaBrowser.Providers/Genres/GenreMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class GenreMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public GenreMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/LiveTv/LiveTvMetadataService.cs b/MediaBrowser.Providers/LiveTv/LiveTvMetadataService.cs index c5c46f64c8..83f9984ea0 100644 --- a/MediaBrowser.Providers/LiveTv/LiveTvMetadataService.cs +++ b/MediaBrowser.Providers/LiveTv/LiveTvMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class LiveTvMetadataService : MetadataServiceInstance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public LiveTvMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index ee22b4bc67..75882a088a 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -377,6 +377,10 @@ namespace MediaBrowser.Providers.Manager { // Nothing to do, already gone } + catch (DirectoryNotFoundException) + { + // Nothing to do, already gone + } catch (UnauthorizedAccessException ex) { _logger.LogWarning(ex, "Unable to delete {Image}", image.Path); diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index da241533a8..cd95bf6ef1 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -14,6 +14,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; @@ -33,7 +34,8 @@ namespace MediaBrowser.Providers.Manager IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) { ServerConfigurationManager = serverConfigurationManager; Logger = logger; @@ -41,6 +43,7 @@ namespace MediaBrowser.Providers.Manager FileSystem = fileSystem; LibraryManager = libraryManager; ExternalDataManager = externalDataManager; + ItemRepository = itemRepository; ImageProvider = new ItemImageProvider(Logger, ProviderManager, FileSystem); } @@ -58,6 +61,8 @@ namespace MediaBrowser.Providers.Manager protected IExternalDataManager ExternalDataManager { get; } + protected IItemRepository ItemRepository { get; } + protected virtual bool EnableUpdatingPremiereDateFromChildren => false; protected virtual bool EnableUpdatingGenresFromChildren => false; @@ -85,6 +90,7 @@ namespace MediaBrowser.Providers.Manager { var itemOfType = (TItemType)item; var updateType = ItemUpdateType.None; + var libraryOptions = LibraryManager.GetLibraryOptions(item); var isFirstRefresh = item.DateLastRefreshed.Date == DateTime.MinValue.Date; var hasRefreshedMetadata = true; @@ -141,7 +147,8 @@ namespace MediaBrowser.Providers.Manager Item = itemOfType }; - var beforeSaveResult = BeforeSave(itemOfType, isFirstRefresh || refreshOptions.ReplaceAllMetadata || refreshOptions.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || requiresRefresh || refreshOptions.ForceSave, updateType); + var beforeSaveResult = await BeforeSave(itemOfType, isFirstRefresh || refreshOptions.ReplaceAllMetadata || refreshOptions.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || requiresRefresh || refreshOptions.ForceSave, updateType) + .ConfigureAwait(false); updateType |= beforeSaveResult; updateType = await SaveInternal(item, refreshOptions, updateType, isFirstRefresh, requiresRefresh, metadataResult, cancellationToken).ConfigureAwait(false); @@ -284,12 +291,20 @@ namespace MediaBrowser.Providers.Manager /// if set to true [is full refresh]. /// Type of the current update. /// ItemUpdateType. - private ItemUpdateType BeforeSave(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType) + private async Task BeforeSave(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType) { var updateType = BeforeSaveInternal(item, isFullRefresh, currentUpdateType); updateType |= item.OnMetadataChanged(); + if (updateType == ItemUpdateType.None) + { + if (!await ItemRepository.ItemExistsAsync(item.Id).ConfigureAwait(false)) + { + return ItemUpdateType.MetadataImport; + } + } + return updateType; } diff --git a/MediaBrowser.Providers/Movies/MovieMetadataService.cs b/MediaBrowser.Providers/Movies/MovieMetadataService.cs index a6e1f424de..8c169a7b6e 100644 --- a/MediaBrowser.Providers/Movies/MovieMetadataService.cs +++ b/MediaBrowser.Providers/Movies/MovieMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -24,14 +25,16 @@ public class MovieMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public MovieMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Movies/TrailerMetadataService.cs b/MediaBrowser.Providers/Movies/TrailerMetadataService.cs index 7f38861e39..fa2442932a 100644 --- a/MediaBrowser.Providers/Movies/TrailerMetadataService.cs +++ b/MediaBrowser.Providers/Movies/TrailerMetadataService.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -25,14 +26,16 @@ public class TrailerMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public TrailerMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs index 14bdbc1416..de2e798312 100644 --- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs +++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs @@ -9,6 +9,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -31,14 +32,16 @@ public class AlbumMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public AlbumMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/ArtistMetadataService.cs b/MediaBrowser.Providers/Music/ArtistMetadataService.cs index 9bac686270..22999077be 100644 --- a/MediaBrowser.Providers/Music/ArtistMetadataService.cs +++ b/MediaBrowser.Providers/Music/ArtistMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -25,14 +26,16 @@ public class ArtistMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public ArtistMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/AudioMetadataService.cs b/MediaBrowser.Providers/Music/AudioMetadataService.cs index ccc1c90c0b..f4d17686fd 100644 --- a/MediaBrowser.Providers/Music/AudioMetadataService.cs +++ b/MediaBrowser.Providers/Music/AudioMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -26,14 +27,16 @@ public class AudioMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public AudioMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs index cde14539a2..345e134600 100644 --- a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs +++ b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -26,14 +27,16 @@ public class MusicVideoMetadataService : MetadataServiceInstance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public MusicVideoMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs index 201c0efcf8..4b0044dcfe 100644 --- a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs +++ b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class MusicGenreMetadataService : MetadataServiceInstance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public MusicGenreMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/People/PersonMetadataService.cs b/MediaBrowser.Providers/People/PersonMetadataService.cs index d910327a37..23aff246ee 100644 --- a/MediaBrowser.Providers/People/PersonMetadataService.cs +++ b/MediaBrowser.Providers/People/PersonMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class PersonMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public PersonMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs index 99c2c09c80..f05ed904f1 100644 --- a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs +++ b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class PhotoAlbumMetadataService : MetadataServiceInstance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public PhotoAlbumMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs index f90df8406b..0f7a335606 100644 --- a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs +++ b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class PhotoMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public PhotoMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs index b9318f0c8c..8df15e4408 100644 --- a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs +++ b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; @@ -27,14 +28,16 @@ public class PlaylistMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public PlaylistMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Studios/StudioMetadataService.cs b/MediaBrowser.Providers/Studios/StudioMetadataService.cs index d0000442fc..fb8cd36c49 100644 --- a/MediaBrowser.Providers/Studios/StudioMetadataService.cs +++ b/MediaBrowser.Providers/Studios/StudioMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class StudioMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public StudioMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } } diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs index b2b6cd9ab9..31f0687114 100644 --- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs +++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -25,14 +26,16 @@ public class EpisodeMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public EpisodeMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs index ea228a6585..886175deae 100644 --- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs @@ -6,6 +6,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -28,14 +29,16 @@ public class SeasonMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public SeasonMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs index 0ccb7f80e9..c3a6ddd6ae 100644 --- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeriesMetadataService.cs @@ -10,6 +10,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Globalization; @@ -36,6 +37,7 @@ public class SeriesMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public SeriesMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, @@ -43,8 +45,9 @@ public class SeriesMetadataService : MetadataService IFileSystem fileSystem, ILibraryManager libraryManager, ILocalizationManager localizationManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { _localizationManager = localizationManager; } diff --git a/MediaBrowser.Providers/Videos/VideoMetadataService.cs b/MediaBrowser.Providers/Videos/VideoMetadataService.cs index c739bac7db..464b337ffb 100644 --- a/MediaBrowser.Providers/Videos/VideoMetadataService.cs +++ b/MediaBrowser.Providers/Videos/VideoMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class VideoMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public VideoMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Years/YearMetadataService.cs b/MediaBrowser.Providers/Years/YearMetadataService.cs index da5f562771..cc403e7c98 100644 --- a/MediaBrowser.Providers/Years/YearMetadataService.cs +++ b/MediaBrowser.Providers/Years/YearMetadataService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -23,14 +24,16 @@ public class YearMetadataService : MetadataService /// Instance of the interface. /// Instance of the interface. /// Instance of the interface. + /// Instance of the interface. public YearMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } }