added re-broadcast to the notifications with action buttons, added some regular notifcations to broadcast service
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user