Browse Source

Add migration task to "disable-by-default" OmdbEpisodeProvider for existing installations

softworkz 9 years ago
parent
commit
c18b472e37

+ 1 - 0
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -370,6 +370,7 @@ namespace MediaBrowser.Server.Startup.Common
         {
         {
             var migrations = new List<IVersionMigration>
             var migrations = new List<IVersionMigration>
             {
             {
+                new OmdbEpisodeProviderMigration(ServerConfigurationManager),
                 new DbMigration(ServerConfigurationManager, TaskManager)
                 new DbMigration(ServerConfigurationManager, TaskManager)
             };
             };
 
 

+ 1 - 0
MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj

@@ -73,6 +73,7 @@
     <Compile Include="MbLinkShortcutHandler.cs" />
     <Compile Include="MbLinkShortcutHandler.cs" />
     <Compile Include="Migrations\IVersionMigration.cs" />
     <Compile Include="Migrations\IVersionMigration.cs" />
     <Compile Include="Migrations\DbMigration.cs" />
     <Compile Include="Migrations\DbMigration.cs" />
+    <Compile Include="Migrations\OmdbEpisodeProviderMigration.cs" />
     <Compile Include="Migrations\RenameXmlOptions.cs" />
     <Compile Include="Migrations\RenameXmlOptions.cs" />
     <Compile Include="NativeEnvironment.cs" />
     <Compile Include="NativeEnvironment.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />

+ 47 - 0
MediaBrowser.Server.Startup.Common/Migrations/OmdbEpisodeProviderMigration.cs

@@ -0,0 +1,47 @@
+using MediaBrowser.Controller.Configuration;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Server.Startup.Common.Migrations
+{
+    class OmdbEpisodeProviderMigration : IVersionMigration
+    {
+        private readonly IServerConfigurationManager _config;
+        private const string _providerName = "The Open Movie Database";
+
+        public OmdbEpisodeProviderMigration(IServerConfigurationManager config)
+        {
+            _config = config;
+        }
+
+        public void Run()
+        {
+            var migrationKey = this.GetType().FullName;
+            var migrationKeyList = _config.Configuration.Migrations.ToList();
+
+            if (!migrationKeyList.Contains(migrationKey))
+            {
+                foreach (var metaDataOption in _config.Configuration.MetadataOptions)
+                {
+                    if (metaDataOption.ItemType == "Episode")
+                    {
+                        var disabledFetchers = metaDataOption.DisabledMetadataFetchers.ToList();
+                        if (!disabledFetchers.Contains(_providerName))
+                        {
+                            disabledFetchers.Add(_providerName);
+                            metaDataOption.DisabledMetadataFetchers = disabledFetchers.ToArray();
+                        }
+                    }
+                }
+
+                migrationKeyList.Add(migrationKey);
+                _config.Configuration.Migrations = migrationKeyList.ToArray();
+                _config.SaveConfiguration();
+            }
+
+        }
+    }
+}