Quellcode durchsuchen

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

Tim Eisele vor 3 Wochen
Ursprung
Commit
1b34ebc0fc

+ 16 - 21
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

+ 2 - 7
MediaBrowser.Providers/Manager/MetadataService.cs

@@ -330,15 +330,10 @@ namespace MediaBrowser.Providers.Manager
                         item.DateCreated = info.CreationTimeUtc;
                     }
 
-                    var size = info.Length;
                     if (item is Video video)
                     {
-                        var videoType = video.VideoType;
-                        if (videoType == VideoType.BluRay || video.VideoType == VideoType.Dvd)
-                        {
-                            Logger.LogInformation("File changed, pruning extracted data: {Path}", item.Path);
-                            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;