Jellyfin.Plugin.Webdav/Plugin.cs
copyrights eacb6134a0 he Jellyfin.Plugin.Webdav plugin has been fully implemented and now builds successfully. It includes:
WebDAV client service (stubbed for WebDav.Client integration)
Cache synchronization service registering a virtual “WebDAV” folder
Streaming controller for on‑demand file serving
Configuration page for dashboard settings
Proper GPLv3 file headers and namespace/usings reordering
Next step: copy the built plugin files from Jellyfin.Plugin.Webdav/bin/Debug/net8.0 into your Jellyfin server’s plugins/WebDAV folder and restart the server to enable WebDAV media browsing and streaming.
2025-04-19 22:17:34 +02:00

59 lines
1.8 KiB
C#

/*
* Jellyfin.Plugin.Webdav
* Copyright (C) 2025 Jellyfin contributors
* Licensed under GPLv3
*/
namespace Jellyfin.Plugin.Webdav
{
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;
/// <summary>
/// The main plugin.
/// </summary>
public sealed class WebdavPlugin : BasePlugin<Configuration.PluginConfiguration>, IHasWebPages
{
/// <summary>
/// Initializes a new instance of the <see cref="WebdavPlugin"/> class.
/// </summary>
/// <param name="applicationPaths">The application paths.</param>
/// <param name="xmlSerializer">The xml serializer.</param>
public WebdavPlugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
: base(applicationPaths, xmlSerializer)
{
Instance = this;
}
/// <inheritdoc/>
public override string Name => "WebDAV";
/// <inheritdoc/>
public override Guid Id => Guid.Parse("5db89aeb-14ad-450b-bcf2-ae235ebbe299");
/// <summary>
/// Gets the plugin instance.
/// </summary>
public static WebdavPlugin Instance { get; private set; }
/// <inheritdoc/>
public IEnumerable<PluginPageInfo> GetPages()
{
return new[]
{
new PluginPageInfo
{
Name = Name,
EmbeddedResourcePath = $"{GetType().Namespace}.Configuration.configPage.html"
}
};
}
}
}