diff options
| author | sinterdev <189787597+sinterdev@users.noreply.github.com> | 2025-01-30 20:43:37 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-30 18:43:37 -0700 |
| commit | ce64dbc034b2176d863fb598cf7079aa6a1fce55 (patch) | |
| tree | 0bce8956edcd5f612d24864b7a44b85dd9d02638 | |
| parent | 4fa2f2475c691b23e5207fe86df4d40386086f1d (diff) | |
Removing CollectionFolders from cache when they are deleted on disk. (#13315)
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 9cc5d09e9..eb045e35e 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -1049,9 +1049,17 @@ namespace Emby.Server.Implementations.Library cancellationToken: cancellationToken).ConfigureAwait(false); // Quickly scan CollectionFolders for changes - foreach (var folder in GetUserRootFolder().Children.OfType<Folder>()) + foreach (var child in GetUserRootFolder().Children.OfType<Folder>()) { - await folder.RefreshMetadata(cancellationToken).ConfigureAwait(false); + // If the user has somehow deleted the collection directory, remove the metadata from the database. + if (child is CollectionFolder collectionFolder && !Directory.Exists(collectionFolder.Path)) + { + _itemRepository.DeleteItem(collectionFolder.Id); + } + else + { + await child.RefreshMetadata(cancellationToken).ConfigureAwait(false); + } } } |
