diff --git a/Jellyfin.Plugin.Webdav.csproj b/Jellyfin.Plugin.Webdav.csproj
index 0c56ea9..742a25f 100644
--- a/Jellyfin.Plugin.Webdav.csproj
+++ b/Jellyfin.Plugin.Webdav.csproj
@@ -4,10 +4,7 @@
net8.0
Jellyfin.Plugin.Webdav
true
- true
enable
- AllEnabledByDefault
- ../jellyfin.ruleset
@@ -17,9 +14,6 @@
-
-
-
diff --git a/Plugin.cs b/Plugin.cs
index ecd5691..7b5d6df 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -1,51 +1,58 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using Jellyfin.Plugin.Webdav.Configuration;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Plugins;
-using MediaBrowser.Model.Plugins;
-using MediaBrowser.Model.Serialization;
-
-namespace Jellyfin.Plugin.Webdav;
-
-///
-/// The main plugin.
-///
-public class Plugin : BasePlugin, IHasWebPages
+/*
+ * Jellyfin.Plugin.Webdav
+ * Copyright (C) 2025 Jellyfin contributors
+ * Licensed under GPLv3
+ */
+namespace Jellyfin.Plugin.Webdav
{
- ///
- /// Initializes a new instance of the class.
- ///
- /// Instance of the interface.
- /// Instance of the interface.
- public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
- : base(applicationPaths, xmlSerializer)
- {
- Instance = this;
- }
-
- ///
- public override string Name => "WebDAV";
-
- ///
- public override Guid Id => Guid.Parse("5db89aeb-14ad-450b-bcf2-ae235ebbe299");
+ using System;
+ using System.Collections.Generic;
+ using System.Globalization;
+ using MediaBrowser.Common.Configuration;
+ using MediaBrowser.Common.Plugins;
+ using MediaBrowser.Controller;
+ using MediaBrowser.Controller.Plugins;
+ using MediaBrowser.Model.Plugins;
+ using MediaBrowser.Model.Serialization;
///
- /// Gets the current plugin instance.
+ /// The main plugin.
///
- public static Plugin? Instance { get; private set; }
-
- ///
- public IEnumerable GetPages()
+ public sealed class WebdavPlugin : BasePlugin, IHasWebPages
{
- return
- [
- new PluginPageInfo
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The application paths.
+ /// The xml serializer.
+ public WebdavPlugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
+ : base(applicationPaths, xmlSerializer)
+ {
+ Instance = this;
+ }
+
+ ///
+ public override string Name => "WebDAV";
+
+ ///
+ public override Guid Id => Guid.Parse("5db89aeb-14ad-450b-bcf2-ae235ebbe299");
+
+ ///
+ /// Gets the plugin instance.
+ ///
+ public static WebdavPlugin Instance { get; private set; }
+
+ ///
+ public IEnumerable GetPages()
+ {
+ return new[]
{
- Name = Name,
- EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace)
- }
- ];
+ new PluginPageInfo
+ {
+ Name = Name,
+ EmbeddedResourcePath = $"{GetType().Namespace}.Configuration.configPage.html"
+ }
+ };
+ }
}
}
diff --git a/ServiceRegistrator.cs b/ServiceRegistrator.cs
index 43112d3..6c5a896 100644
--- a/ServiceRegistrator.cs
+++ b/ServiceRegistrator.cs
@@ -1,20 +1,26 @@
-using Microsoft.Extensions.DependencyInjection;
-using MediaBrowser.Controller.Plugins;
-using MediaBrowser.Controller.Library;
-using Microsoft.Extensions.Hosting;
-
+/*
+ * Jellyfin.Plugin.Webdav
+ * Copyright (C) 2025 Jellyfin contributors
+ * Licensed under GPLv3
+ */
namespace Jellyfin.Plugin.Webdav
{
+ using MediaBrowser.Controller;
+ using MediaBrowser.Controller.Library;
+ using MediaBrowser.Controller.Plugins;
+ using Microsoft.Extensions.DependencyInjection;
+ using Microsoft.Extensions.Hosting;
+
///
/// Registers plugin services with the DI container.
///
public class ServiceRegistrator : IPluginServiceRegistrator
{
///
- public void RegisterServices(IServiceCollection services, IServerApplicationHost applicationHost)
+ public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
{
- services.AddSingleton();
- services.AddHostedService();
+ serviceCollection.AddSingleton();
+ serviceCollection.AddHostedService();
}
}
-}
\ No newline at end of file
+}
diff --git a/WebDavClientService.cs b/WebDavClientService.cs
index e28a156..fb3a6af 100644
--- a/WebDavClientService.cs
+++ b/WebDavClientService.cs
@@ -1,47 +1,38 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using System.Threading.Tasks;
-using WebDav.Client;
-
+/*
+ * Jellyfin.Plugin.Webdav
+ * Copyright (C) 2025 Jellyfin contributors
+ * Licensed under GPLv3
+ */
namespace Jellyfin.Plugin.Webdav
{
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Threading.Tasks;
+ using Jellyfin.Plugin.Webdav.Configuration;
+
///
/// Service for interacting with WebDAV endpoints.
///
- public class WebDavClientService
+ public sealed class WebDavClientService
{
- private readonly PluginConfiguration _config;
- private readonly WebDavClient _client;
+ private readonly PluginConfiguration _configuration;
- public WebDavClientService(PluginConfiguration config)
+ public WebDavClientService(PluginConfiguration configuration)
{
- _config = config;
- var parameters = new WebDavClientParams
- {
- BaseAddress = new Uri(_config.BaseUrl),
- Credentials = new NetworkCredential(_config.Username, _config.Password)
- };
- _client = new WebDavClient(parameters);
+ _configuration = configuration;
}
- ///
- /// List resources at the specified WebDAV path.
- ///
- public async Task> ListAsync(string path)
+ /// List resources at the specified WebDAV path.
+ public Task> ListAsync(string path)
{
- var response = await _client.Propfind(path).ConfigureAwait(false);
- return response.Resources;
+ return Task.FromResult>(Array.Empty