Cleanup external item data cleanup (#14072)

This commit is contained in:
Tim Eisele
2025-05-09 16:35:29 +02:00
committed by GitHub
parent 07093c84c8
commit 49c6a99e00
47 changed files with 297 additions and 376 deletions

View File

@@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading;
@@ -15,7 +14,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaSegments;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
@@ -35,18 +33,14 @@ namespace MediaBrowser.Providers.Manager
IProviderManager providerManager,
IFileSystem fileSystem,
ILibraryManager libraryManager,
IPathManager pathManager,
IKeyframeManager keyframeManager,
IMediaSegmentManager mediaSegmentManager)
IExternalDataManager externalDataManager)
{
ServerConfigurationManager = serverConfigurationManager;
Logger = logger;
ProviderManager = providerManager;
FileSystem = fileSystem;
LibraryManager = libraryManager;
PathManager = pathManager;
KeyframeManager = keyframeManager;
MediaSegmentManager = mediaSegmentManager;
ExternalDataManager = externalDataManager;
ImageProvider = new ItemImageProvider(Logger, ProviderManager, FileSystem);
}
@@ -62,11 +56,7 @@ namespace MediaBrowser.Providers.Manager
protected ILibraryManager LibraryManager { get; }
protected IPathManager PathManager { get; }
protected IKeyframeManager KeyframeManager { get; }
protected IMediaSegmentManager MediaSegmentManager { get; }
protected IExternalDataManager ExternalDataManager { get; }
protected virtual bool EnableUpdatingPremiereDateFromChildren => false;
@@ -344,27 +334,10 @@ namespace MediaBrowser.Providers.Manager
if (item is Video video)
{
var videoType = video.VideoType;
var sizeChanged = size != (video.Size ?? 0);
if (videoType == VideoType.BluRay || video.VideoType == VideoType.Dvd || sizeChanged)
if (videoType == VideoType.BluRay || video.VideoType == VideoType.Dvd)
{
if (sizeChanged)
{
item.Size = size;
Logger.LogDebug("File size changed from {Then} to {Now}: {Path}", video.Size, size, itemPath);
}
var validPaths = PathManager.GetExtractedDataPaths(video).Where(Directory.Exists).ToList();
if (validPaths.Count > 0)
{
Logger.LogInformation("File changed, pruning extracted data: {Path}", itemPath);
foreach (var path in validPaths)
{
Directory.Delete(path, true);
}
}
KeyframeManager.DeleteKeyframeDataAsync(video.Id, CancellationToken.None).GetAwaiter().GetResult();
MediaSegmentManager.DeleteSegmentsAsync(item.Id).GetAwaiter().GetResult();
Logger.LogInformation("File changed, pruning extracted data: {Path}", item.Path);
ExternalDataManager.DeleteExternalItemDataAsync(video, CancellationToken.None).GetAwaiter().GetResult();
}
}