diff --git a/Jellyfin.Plugin.MediaCleaner/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.MediaCleaner/Configuration.cs similarity index 83% rename from Jellyfin.Plugin.MediaCleaner/Configuration/PluginConfiguration.cs rename to Jellyfin.Plugin.MediaCleaner/Configuration.cs index 2138eb1..dd7dadb 100644 --- a/Jellyfin.Plugin.MediaCleaner/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.MediaCleaner/Configuration.cs @@ -3,20 +3,13 @@ using System.Collections.ObjectModel; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Plugins; -namespace Jellyfin.Plugin.MediaCleaner.Configuration; +namespace Jellyfin.Plugin.MediaCleaner; /// /// Plugin configuration. /// -public class PluginConfiguration : BasePluginConfiguration +public class Configuration : BasePluginConfiguration { - /// - /// Initializes a new instance of the class. - /// - public PluginConfiguration() - { - } - /// /// Gets or sets the http address for your Radarr instance. /// diff --git a/Jellyfin.Plugin.MediaCleaner/Configuration/settings.html b/Jellyfin.Plugin.MediaCleaner/Configuration/settings.html deleted file mode 100644 index 27aa260..0000000 --- a/Jellyfin.Plugin.MediaCleaner/Configuration/settings.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Media Cleaner - - -
-
-
-
-
- - -
The http address of your radarr instance.
-
-
- - -
The port of your radarr instance.
-
-
- - -
The api key used by your radarr instance
-
-
- - -
The http address of your sonarr instance.
-
-
- - -
The port of your sonarr instance.
-
-
- - -
The api key used by your sonarr instance
-
-
- - -
How many days to wait before marking files as stale
-
-
- -
- -
- -
-
-
-
- -
- - diff --git a/Jellyfin.Plugin.MediaCleaner/Controllers/StateController.cs b/Jellyfin.Plugin.MediaCleaner/Controllers/StateController.cs index 5e3833b..589fbed 100644 --- a/Jellyfin.Plugin.MediaCleaner/Controllers/StateController.cs +++ b/Jellyfin.Plugin.MediaCleaner/Controllers/StateController.cs @@ -2,7 +2,6 @@ using Jellyfin.Plugin.MediaCleaner.Data; using Jellyfin.Plugin.MediaCleaner; using Jellyfin.Plugin.MediaCleaner.Models; using Microsoft.AspNetCore.Mvc; -using Jellyfin.Plugin.MediaCleaner.Configuration; namespace Jellyfin.Plugin.MediaCleaner.Controllers; @@ -10,7 +9,7 @@ namespace Jellyfin.Plugin.MediaCleaner.Controllers; public class StateController(MediaCleanerState state) : Controller { private readonly MediaCleanerState _state = state; - private static PluginConfiguration Configuration => + private static Configuration Configuration => Plugin.Instance!.Configuration; [HttpGet("getSeriesInfo")] diff --git a/Jellyfin.Plugin.MediaCleaner/Helpers/LoggingHelper.cs b/Jellyfin.Plugin.MediaCleaner/Helpers/LoggingHelper.cs index c78aadf..96787cc 100644 --- a/Jellyfin.Plugin.MediaCleaner/Helpers/LoggingHelper.cs +++ b/Jellyfin.Plugin.MediaCleaner/Helpers/LoggingHelper.cs @@ -1,12 +1,5 @@ using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; -using Jellyfin.Plugin.MediaCleaner.Configuration; -using Jellyfin.Plugin.MediaCleaner.Models; -using Jellyfin.Plugin.MediaCleaner.ScheduledTasks; -using MediaBrowser.Controller.Entities; using Microsoft.Extensions.Logging; namespace Jellyfin.Plugin.MediaCleaner.Helpers; @@ -30,6 +23,6 @@ public class LoggingHelper(ILogger logger) _logger.LogInformation(message, args); } - private static PluginConfiguration Configuration => + private static Configuration Configuration => Plugin.Instance!.Configuration; } diff --git a/Jellyfin.Plugin.MediaCleaner/Helpers/MovieHelper.cs b/Jellyfin.Plugin.MediaCleaner/Helpers/MovieHelper.cs index 86a9c06..9185ffb 100644 --- a/Jellyfin.Plugin.MediaCleaner/Helpers/MovieHelper.cs +++ b/Jellyfin.Plugin.MediaCleaner/Helpers/MovieHelper.cs @@ -1,8 +1,6 @@ using System; using System.Linq; -using System.Threading; using Jellyfin.Database.Implementations.Entities; -using Jellyfin.Plugin.MediaCleaner.Configuration; using MediaBrowser.Controller.Entities; using Microsoft.Extensions.Logging; @@ -12,7 +10,7 @@ public class MovieHelper(ILogger logger) { private readonly LoggingHelper _loggingHelper = new(logger); - private static PluginConfiguration Configuration => + private static Configuration Configuration => Plugin.Instance!.Configuration; public bool IsMovieStale(BaseItem movie) diff --git a/Jellyfin.Plugin.MediaCleaner/Helpers/SeriesHelper.cs b/Jellyfin.Plugin.MediaCleaner/Helpers/SeriesHelper.cs index cbd8c3d..07b7afa 100644 --- a/Jellyfin.Plugin.MediaCleaner/Helpers/SeriesHelper.cs +++ b/Jellyfin.Plugin.MediaCleaner/Helpers/SeriesHelper.cs @@ -1,10 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Threading; using Jellyfin.Database.Implementations.Entities; -using Jellyfin.Database.Implementations.Entities.Libraries; -using Jellyfin.Plugin.MediaCleaner.Configuration; using MediaBrowser.Controller.Entities; using Microsoft.Extensions.Logging; @@ -15,7 +12,7 @@ public class SeriesHelper(ILogger logger) { private readonly LoggingHelper _loggingHelper = new(logger); - private static PluginConfiguration Configuration => + private static Configuration Configuration => Plugin.Instance!.Configuration; private List ProcessEpisodes(IReadOnlyCollection episodes) diff --git a/Jellyfin.Plugin.MediaCleaner/Jellyfin.Plugin.MediaCleaner.csproj b/Jellyfin.Plugin.MediaCleaner/Jellyfin.Plugin.MediaCleaner.csproj index 68b496e..81ec1ec 100644 --- a/Jellyfin.Plugin.MediaCleaner/Jellyfin.Plugin.MediaCleaner.csproj +++ b/Jellyfin.Plugin.MediaCleaner/Jellyfin.Plugin.MediaCleaner.csproj @@ -20,8 +20,6 @@ - - diff --git a/Jellyfin.Plugin.MediaCleaner/Pages/configuration.html b/Jellyfin.Plugin.MediaCleaner/Pages/configuration.html new file mode 100644 index 0000000..335b48e --- /dev/null +++ b/Jellyfin.Plugin.MediaCleaner/Pages/configuration.html @@ -0,0 +1,55 @@ +
+
+
+
+

Media Cleaner Configuration

+
+ + +
The http address of your radarr instance.
+
+
+ + +
The port of your radarr instance.
+
+
+ + +
The api key used by your radarr instance
+
+
+ + +
The http address of your sonarr instance.
+
+
+ + +
The port of your sonarr instance.
+
+
+ + +
The api key used by your sonarr instance
+
+
+ + +
How many days to wait before marking files as stale
+
+
+ +
+
+ +
+
+
+
+
diff --git a/Jellyfin.Plugin.MediaCleaner/Pages/configuration.js b/Jellyfin.Plugin.MediaCleaner/Pages/configuration.js new file mode 100644 index 0000000..7e70fcc --- /dev/null +++ b/Jellyfin.Plugin.MediaCleaner/Pages/configuration.js @@ -0,0 +1,40 @@ +var MediaCleanerConfig = { + pluginUniqueId: 'fef007a8-3e8f-4aa8-a22e-486a387f4192' +}; + +document.querySelector('#MediaCleanerConfigPage') + .addEventListener('pageshow', function() { + Dashboard.showLoadingMsg(); + ApiClient.getPluginConfiguration(MediaCleanerConfig.pluginUniqueId).then(function (config) { + document.querySelector('#RadarrHTTPAddress').value = config.RadarrHTTPAddress; + document.querySelector('#RadarrPort').value = config.RadarrPort; + document.querySelector('#RadarrAPIKey').value = config.RadarrAPIKey; + document.querySelector('#SonarrHTTPAddress').value = config.SonarrHTTPAddress; + document.querySelector('#SonarrPort').value = config.SonarrPort; + document.querySelector('#SonarrAPIKey').value = config.SonarrAPIKey; + document.querySelector('#StaleMediaCutoff').value = config.StaleMediaCutoff; + document.querySelector('#DebugMode').checked = config.DebugMode; + Dashboard.hideLoadingMsg(); + }); + }); + +document.querySelector('#MediaCleanerConfigForm') + .addEventListener('submit', function(e) { + Dashboard.showLoadingMsg(); + ApiClient.getPluginConfiguration(MediaCleanerConfig.pluginUniqueId).then(function (config) { + config.RadarrHTTPAddress = document.querySelector('#RadarrHTTPAddress').value; + config.RadarrPort = document.querySelector('#RadarrPort').value; + config.RadarrAPIKey = document.querySelector('#RadarrAPIKey').value; + config.SonarrHTTPAddress = document.querySelector('#SonarrHTTPAddress').value; + config.SonarrPort = document.querySelector('#SonarrPort').value; + config.SonarrAPIKey = document.querySelector('#SonarrAPIKey').value; + config.StaleMediaCutoff = document.querySelector('#StaleMediaCutoff').value; + config.DebugMode = document.querySelector('#DebugMode').checked; + ApiClient.updatePluginConfiguration(MediaCleanerConfig.pluginUniqueId, config).then(function (result) { + Dashboard.processPluginConfigurationUpdateResult(result); + }); + }); + + e.preventDefault(); + return false; +}); diff --git a/Jellyfin.Plugin.MediaCleaner/Pages/home.html b/Jellyfin.Plugin.MediaCleaner/Pages/home.html index e5a58a9..1a614a6 100644 --- a/Jellyfin.Plugin.MediaCleaner/Pages/home.html +++ b/Jellyfin.Plugin.MediaCleaner/Pages/home.html @@ -5,7 +5,7 @@
Loading...