various NFOguard versions

This commit is contained in:
2025-09-12 10:30:12 -04:00
parent 08cddf7799
commit 77295cc400
48 changed files with 2051 additions and 92 deletions
+23 -7
View File
@@ -14,6 +14,7 @@ namespace NFOGuard.Emby.Plugin
private readonly IItemRepository _itemRepository;
private readonly ILogger _logger;
private readonly LicenseManager _licenseManager;
private readonly FreeTierManager _freeTierManager;
public LibraryEventHandler(ILibraryManager libraryManager, IItemRepository itemRepository, ILogger logger)
{
@@ -21,6 +22,7 @@ namespace NFOGuard.Emby.Plugin
_itemRepository = itemRepository;
_logger = logger;
_licenseManager = new LicenseManager(_logger);
_freeTierManager = new FreeTierManager(_logger);
// Subscribe to library events
_libraryManager.ItemAdded += OnItemAdded;
@@ -45,13 +47,21 @@ namespace NFOGuard.Emby.Plugin
if (!Plugin.Instance.Configuration.EnableRealTimeSync)
return;
// TODO: Re-enable licensing when ready for production
// Check license/trial status
// if (!_licenseManager.CanUseFeature())
// {
// _logger.Info("NFOGuard :: License expired or invalid. Please purchase a license to continue using NFOGuard.");
// return;
// }
// Free tier: disable real-time processing
var config = Plugin.Instance.Configuration;
if (config.MonthlyProcessingLimit > 0 && !config.LicenseValid)
{
if (Plugin.Instance.Configuration.LogVerbose)
_logger.Info($"NFOGuard :: Real-time processing disabled in free tier. Use scheduled task instead.");
return;
}
// Check if we can process this item
if (!_freeTierManager.CanProcessItems(1, out string reason))
{
_logger.Info($"NFOGuard :: Skipping real-time processing: {reason}");
return;
}
// Process TV episodes and Movies
if (item is Episode episode)
@@ -92,6 +102,9 @@ namespace NFOGuard.Emby.Plugin
// Save to repository using ItemUpdateType.MetadataEdit
episode.UpdateToRepository(ItemUpdateType.MetadataEdit);
_logger.Info($"NFOGuard :: Successfully updated episode :: {episode.Name}");
// Record usage for free tier tracking
_freeTierManager.RecordProcessedItems(1);
}
catch (Exception ex)
{
@@ -128,6 +141,9 @@ namespace NFOGuard.Emby.Plugin
// Save to repository using ItemUpdateType.MetadataEdit
movie.UpdateToRepository(ItemUpdateType.MetadataEdit);
_logger.Info($"NFOGuard :: Successfully updated movie :: {movie.Name}");
// Record usage for free tier tracking
_freeTierManager.RecordProcessedItems(1);
}
catch (Exception ex)
{