diff options
| author | Tim Eisele <Ghost_of_Stone@web.de> | 2025-05-12 05:11:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-11 21:11:21 -0600 |
| commit | 1b34ebc0fcf391c396cd3238615036d0d5d238c9 (patch) | |
| tree | 7a2f8160904a1b3b19291b3055ce1d1dd9043bb8 /Emby.Server.Implementations | |
| parent | 14f142faa8f754e715ce0e928ef02d56047dd657 (diff) | |
Fix extracted data cleanup in cleanup post scan task (#14083)
Diffstat (limited to 'Emby.Server.Implementations')
| -rw-r--r-- | Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs b/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs index 9a80eafe5..31ae82d6a 100644 --- a/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs +++ b/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs @@ -48,7 +48,7 @@ public class CleanDatabaseScheduledTask : ILibraryPostScanTask var numComplete = 0; var numItems = itemIds.Count + 1; - _logger.LogDebug("Cleaning {Number} items with dead parent links", numItems); + _logger.LogDebug("Cleaning {Number} items with dead parents", numItems); foreach (var itemId in itemIds) { @@ -61,33 +61,28 @@ public class CleanDatabaseScheduledTask : ILibraryPostScanTask foreach (var mediaSource in item.GetMediaSources(false)) { - // Delete extracted subtitles - try + // Delete extracted data + var mediaSourceItem = _libraryManager.GetItemById(mediaSource.Id); + if (mediaSourceItem is null) { - var subtitleFolder = _pathManager.GetSubtitleFolderPath(mediaSource.Id); - if (Directory.Exists(subtitleFolder)) - { - Directory.Delete(subtitleFolder, true); - } - } - catch (Exception e) - { - _logger.LogWarning("Failed to remove subtitle cache folder for {Item}: {Exception}", item.Id, e.Message); + continue; } - // Delete extracted attachments - try + var extractedDataFolders = _pathManager.GetExtractedDataPaths(mediaSourceItem); + foreach (var folder in extractedDataFolders) { - var attachmentFolder = _pathManager.GetAttachmentFolderPath(mediaSource.Id); - if (Directory.Exists(attachmentFolder)) + if (Directory.Exists(folder)) { - Directory.Delete(attachmentFolder, true); + try + { + Directory.Delete(folder, true); + } + catch (Exception e) + { + _logger.LogWarning("Failed to remove {Folder}: {Exception}", folder, e.Message); + } } } - catch (Exception e) - { - _logger.LogWarning("Failed to remove attachment cache folder for {Item}: {Exception}", item.Id, e.Message); - } } // Delete item |
