added re-broadcast to the notifications with action buttons, added some regular notifcations to broadcast service

This commit is contained in:
choco
2025-10-16 12:28:34 +02:00
parent 77ff8ae372
commit 10336a829a
4 changed files with 96 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
using LightlessSync.API.Dto.Group;
using LightlessSync.API.Dto.Group;
using LightlessSync.API.Dto.User;
using LightlessSync.LightlessConfiguration;
using LightlessSync.Services.Mediator;
@@ -394,6 +394,10 @@ public class BroadcastService : IHostedService, IMediatorSubscriber
if (!IsLightFinderAvailable)
{
_logger.LogWarning("ToggleBroadcast - Lightfinder is not available.");
_mediator.Publish(new NotificationMessage(
"Broadcast Unavailable",
"Lightfinder is not available on this server.",
LightlessConfiguration.Models.NotificationType.Error));
return;
}
@@ -403,6 +407,10 @@ public class BroadcastService : IHostedService, IMediatorSubscriber
if (!_config.Current.BroadcastEnabled && cooldown is { } cd && cd > TimeSpan.Zero)
{
_logger.LogWarning("Cooldown active. Must wait {Remaining}s before re-enabling.", cd.TotalSeconds);
_mediator.Publish(new NotificationMessage(
"Broadcast Cooldown",
$"Please wait {cd.TotalSeconds:F0} seconds before re-enabling broadcast.",
LightlessConfiguration.Models.NotificationType.Warning));
return;
}
@@ -427,10 +435,19 @@ public class BroadcastService : IHostedService, IMediatorSubscriber
_logger.LogDebug("Toggling broadcast. Server currently broadcasting: {ServerStatus}, setting to: {NewStatus}", isCurrentlyBroadcasting, newStatus);
_mediator.Publish(new EnableBroadcastMessage(hashedCid, newStatus));
_mediator.Publish(new NotificationMessage(
newStatus ? "Broadcast Enabled" : "Broadcast Disabled",
newStatus ? "Your Lightfinder broadcast has been enabled." : "Your Lightfinder broadcast has been disabled.",
LightlessConfiguration.Models.NotificationType.Info));
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to determine current broadcast status for toggle");
_mediator.Publish(new NotificationMessage(
"Broadcast Failed",
$"Failed to toggle broadcast: {ex.Message}",
LightlessConfiguration.Models.NotificationType.Error));
}
}).ConfigureAwait(false);
}
@@ -493,6 +510,7 @@ public class BroadcastService : IHostedService, IMediatorSubscriber
{
_logger.LogDebug("Broadcast TTL expired. Disabling broadcast locally.");
ApplyBroadcastDisabled(forcePublish: true);
_mediator.Publish(new BroadcastExpiredMessage());
}
}
else