|
@@ -0,0 +1,46 @@
|
|
|
+using System;
|
|
|
+using MediaBrowser.Controller.Entities;
|
|
|
+using MediaBrowser.Controller.Library;
|
|
|
+using Microsoft.Extensions.Logging;
|
|
|
+
|
|
|
+namespace Jellyfin.Server.Migrations.Routines
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// Removes the old 'RemoveDownloadImagesInAdvance' from library options.
|
|
|
+ /// </summary>
|
|
|
+ internal class RemoveDownloadImagesInAdvance : IMigrationRoutine
|
|
|
+ {
|
|
|
+ private readonly ILogger<RemoveDownloadImagesInAdvance> _logger;
|
|
|
+ private readonly ILibraryManager _libraryManager;
|
|
|
+
|
|
|
+ public RemoveDownloadImagesInAdvance(ILogger<RemoveDownloadImagesInAdvance> logger, ILibraryManager libraryManager)
|
|
|
+ {
|
|
|
+ _logger = logger;
|
|
|
+ _libraryManager = libraryManager;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <inheritdoc/>
|
|
|
+ public Guid Id => Guid.Parse("{A81F75E0-8F43-416F-A5E8-516CCAB4D8CC}");
|
|
|
+
|
|
|
+ /// <inheritdoc/>
|
|
|
+ public string Name => "RemoveDownloadImagesInAdvance";
|
|
|
+
|
|
|
+ /// <inheritdoc/>
|
|
|
+ public bool PerformOnNewInstall => false;
|
|
|
+
|
|
|
+ /// <inheritdoc/>
|
|
|
+ public void Perform()
|
|
|
+ {
|
|
|
+ var virtualFolders = _libraryManager.GetVirtualFolders(false);
|
|
|
+ _logger.LogInformation("Removing 'RemoveDownloadImagesInAdvance' settings in all the libraries");
|
|
|
+ foreach (var virtualFolder in virtualFolders)
|
|
|
+ {
|
|
|
+ var libraryOptions = virtualFolder.LibraryOptions;
|
|
|
+ var collectionFolder = (CollectionFolder)_libraryManager.GetItemById(virtualFolder.ItemId);
|
|
|
+ // The property no longer exists in LibraryOptions, so we just re-save the options to get old data removed.
|
|
|
+ collectionFolder.UpdateLibraryOptions(libraryOptions);
|
|
|
+ _logger.LogInformation("Removed from '{VirtualFolder}'", virtualFolder.Name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|