using System; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Logging; namespace NFOGuard.Emby.Plugin { public class PluginEntryPoint : IServerEntryPoint { private readonly ILibraryManager _libraryManager; private readonly IItemRepository _itemRepository; private readonly ILogger _logger; private LibraryEventHandler _eventHandler; public PluginEntryPoint(ILibraryManager libraryManager, IItemRepository itemRepository, ILogManager logManager) { _libraryManager = libraryManager; _itemRepository = itemRepository; _logger = logManager.GetLogger("NFOGuard"); } public void Run() { _logger.Info("NFOGuard :: Plugin starting up"); try { _eventHandler = new LibraryEventHandler(_libraryManager, _itemRepository, _logger); _logger.Info("NFOGuard :: Event handlers registered successfully"); } catch (Exception ex) { _logger.ErrorException("NFOGuard :: Failed to initialize event handlers", ex); } } public void Dispose() { _logger.Info("NFOGuard :: Plugin shutting down"); _eventHandler?.Dispose(); } } }