/* * Jellyfin.Plugin.Webdav * Copyright (C) 2025 Jellyfin contributors * Licensed under GPLv3 */ namespace Jellyfin.Plugin.Webdav { using System.IO; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Configuration; using Microsoft.Extensions.Hosting; /// /// Hosted service that registers the WebDAV cache as a virtual folder on startup. /// public sealed class WebDavSyncService : IHostedService { private readonly IServerApplicationPaths appPaths; private readonly ILibraryManager libraryManager; /// /// Initializes a new instance of the class. /// /// Server application paths. /// Library manager. public WebDavSyncService(IServerApplicationPaths appPaths, ILibraryManager libraryManager) { this.appPaths = appPaths; this.libraryManager = libraryManager; } /// public async Task StartAsync(CancellationToken cancellationToken) { var localRoot = Path.Combine(this.appPaths.DefaultUserViewsPath, "WebDAV"); Directory.CreateDirectory(localRoot); var options = new LibraryOptions(); await this.libraryManager .AddVirtualFolder("WebDAV", null, options, true) .ConfigureAwait(false); } /// public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; } }