mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 00:26:07 +02:00
- Fix userlist not refreshing after creating a new channel. - Implement unmute timer with a background job to automatically unmute users. - Improve userlist display by filtering invisible users and ensuring proper transitions between statuses. - Add clickable usernames, @mentions, and #channels for easier navigation. - Embed theme colors from source sites for a more cohesive UI. - Introduce a stateful userlist that updates incrementally via SignalR events. - Restrict auto-opening of files to safe types only, enhancing security. - Refactor user management into a dedicated service to reduce code duplication. - Add a MuteExpirationService to handle timed mutes. - Update documentation with Mermaid diagrams for major flows.
19 lines
950 B
C#
19 lines
950 B
C#
using EchoHub.Core.DTOs;
|
|
|
|
namespace EchoHub.Core.Contracts;
|
|
|
|
public interface IChatBroadcaster
|
|
{
|
|
Task SendMessageToChannelAsync(string channelName, MessageDto message);
|
|
Task SendUserJoinedAsync(string channelName, string username, UserPresenceDto? presence, string? excludeConnectionId = null);
|
|
Task SendUserLeftAsync(string channelName, string username);
|
|
Task SendChannelUpdatedAsync(ChannelDto channel, string? channelName = null);
|
|
Task SendUserStatusChangedAsync(List<string> channelNames, UserPresenceDto presence);
|
|
Task SendUserKickedAsync(string channelName, string username, string? reason);
|
|
Task SendUserBannedAsync(string username, string? reason);
|
|
Task SendMessageDeletedAsync(string channelName, Guid messageId);
|
|
Task SendChannelNukedAsync(string channelName);
|
|
Task SendErrorAsync(string connectionId, string message);
|
|
Task ForceDisconnectUserAsync(List<string> connectionIds, string reason);
|
|
}
|