using System; using System.Collections.Generic; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Plugins; using MediaBrowser.Model.Plugins; using MediaBrowser.Model.Serialization; using Jellyfin.Plugin.ShareLinks.Configuration; namespace Jellyfin.Plugin.ShareLinks; /// /// ShareLinks plugin. Creates expiring guest-share links for Jellyfin items /// without persisting raw tokens. /// public class Plugin : BasePlugin, IHasWebPages { /// Initializes a new instance of the class. public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer) : base(applicationPaths, xmlSerializer) { Instance = this; } /// Gets the current plugin instance. public static Plugin? Instance { get; private set; } /// public override string Name => "ShareLinks"; /// public override string Description => "Secure expiring share links for Jellyfin items with guest-user lockdown."; /// public override Guid Id => Guid.Parse("68540b76-ee74-436d-85ff-2abc884bbea6"); /// public IEnumerable GetPages() => new[] { new PluginPageInfo { Name = "ShareLinks", EmbeddedResourcePath = GetType().Namespace + ".Web.configPage.html", EnableInMainMenu = true, MenuIcon = "share", MenuSection = "server" } }; }