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
+55
View File
@@ -26,6 +26,9 @@ namespace NFOGuard.Emby.Plugin
try
{
// Initialize tier settings based on build configuration
InitializeTierSettings();
_eventHandler = new LibraryEventHandler(_libraryManager, _itemRepository, _logger);
_logger.Info("NFOGuard :: Event handlers registered successfully");
}
@@ -35,6 +38,58 @@ namespace NFOGuard.Emby.Plugin
}
}
private void InitializeTierSettings()
{
var freeTierManager = new FreeTierManager(_logger, _libraryManager);
var config = Plugin.Instance.Configuration;
// Initialize as percentage-based free tier by default if not configured
if (config.MonthlyProcessingLimit == 0 && !config.LicenseValid)
{
freeTierManager.SetPercentageBasedLimits(); // 2% episodes, 5% movies
_logger.Info("NFOGuard :: Free tier initialized - 2% of TV episodes + 5% of movies per month. Subscribe to unlock unlimited processing.");
}
else if (config.LicenseValid)
{
_logger.Info("NFOGuard :: Licensed version active - unlimited processing enabled");
}
else
{
_logger.Info($"NFOGuard :: Free tier active - {freeTierManager.GetUsageInfo()}");
}
// Start periodic license checking
StartPeriodicLicenseCheck();
}
private async void StartPeriodicLicenseCheck()
{
try
{
// Check every 24 hours for subscription changes
var timer = new System.Threading.Timer(async _ =>
{
try
{
var licenseManager = new LicenseManager(_logger);
await licenseManager.CheckAndActivateLicenseAsync();
var config = Plugin.Instance.Configuration;
config.LastLicenseCheck = DateTime.UtcNow;
Plugin.Instance.SaveConfiguration();
}
catch (Exception ex)
{
_logger.ErrorException("NFOGuard :: Periodic license check failed", ex);
}
}, null, TimeSpan.FromHours(1), TimeSpan.FromHours(24)); // First check in 1 hour, then every 24 hours
}
catch (Exception ex)
{
_logger.ErrorException("NFOGuard :: Failed to start periodic license check", ex);
}
}
public void Dispose()
{
_logger.Info("NFOGuard :: Plugin shutting down");