Fix extracted data cleanup in cleanup post scan task (#14083)

This commit is contained in:
Tim Eisele 2025-05-12 05:11:21 +02:00 committed by GitHub
parent 14f142faa8
commit 1b34ebc0fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 28 deletions

View File

@ -48,7 +48,7 @@ public class CleanDatabaseScheduledTask : ILibraryPostScanTask
var numComplete = 0; var numComplete = 0;
var numItems = itemIds.Count + 1; 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) foreach (var itemId in itemIds)
{ {
@ -61,33 +61,28 @@ public class CleanDatabaseScheduledTask : ILibraryPostScanTask
foreach (var mediaSource in item.GetMediaSources(false)) foreach (var mediaSource in item.GetMediaSources(false))
{ {
// Delete extracted subtitles // Delete extracted data
try var mediaSourceItem = _libraryManager.GetItemById(mediaSource.Id);
if (mediaSourceItem is null)
{ {
var subtitleFolder = _pathManager.GetSubtitleFolderPath(mediaSource.Id); continue;
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);
} }
// Delete extracted attachments var extractedDataFolders = _pathManager.GetExtractedDataPaths(mediaSourceItem);
try foreach (var folder in extractedDataFolders)
{ {
var attachmentFolder = _pathManager.GetAttachmentFolderPath(mediaSource.Id); if (Directory.Exists(folder))
if (Directory.Exists(attachmentFolder))
{ {
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 // Delete item

View File

@ -330,15 +330,10 @@ namespace MediaBrowser.Providers.Manager
item.DateCreated = info.CreationTimeUtc; item.DateCreated = info.CreationTimeUtc;
} }
var size = info.Length;
if (item is Video video) if (item is Video video)
{ {
var videoType = video.VideoType; Logger.LogInformation("File changed, pruning extracted data: {Path}", item.Path);
if (videoType == VideoType.BluRay || video.VideoType == VideoType.Dvd) ExternalDataManager.DeleteExternalItemDataAsync(video, CancellationToken.None).GetAwaiter().GetResult();
{
Logger.LogInformation("File changed, pruning extracted data: {Path}", item.Path);
ExternalDataManager.DeleteExternalItemDataAsync(video, CancellationToken.None).GetAwaiter().GetResult();
}
} }
updateType |= ItemUpdateType.MetadataImport; updateType |= ItemUpdateType.MetadataImport;