using System; using System.Collections.Generic; using System.Globalization; using Jellyfin.Plugin.WatchedTogether.Configuration; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Plugins; using MediaBrowser.Model.Plugins; using MediaBrowser.Model.Serialization; namespace Jellyfin.Plugin.WatchedTogether; /// /// The Watched Together plugin: shared viewing accounts whose watched state flows back to each /// member's own account. /// public class Plugin : BasePlugin, IHasWebPages { /// /// 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 => "Watched Together"; /// public override Guid Id => Guid.Parse("aa3288a0-e8c1-43e2-8045-8c3411142a5b"); /// public override string Description => "Lets several users share one viewing account, with watched state syncing back to each member."; /// /// Gets the current plugin instance. /// public static Plugin? Instance { get; private set; } /// public IEnumerable GetPages() { return [ new PluginPageInfo { Name = Name, EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace) } ]; } }