various NFOguard versions
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user