feat: enhance IRC support with display name handling, private channel tracking, and connection identification

This commit is contained in:
HueByte
2026-07-16 18:22:34 +02:00
parent b62729dc95
commit b6c01dab15
11 changed files with 118 additions and 20 deletions
@@ -4,6 +4,12 @@ public static class HubConstants
{
public const string ChatHubPath = "/hubs/chat";
public const string DefaultChannel = "general";
/// <summary>
/// Connection-id prefix for IRC gateway connections. The presence tracker uses it to
/// tell IRC-only users apart from native (SignalR) clients.
/// </summary>
public const string IrcConnectionIdPrefix = "irc-";
public const int DefaultHistoryCount = 100;
public const int MaxMessageLength = 2000;
public const int MaxImageSizeBytes = 10 * 1024 * 1024; // 10 MB
+2 -1
View File
@@ -10,7 +10,8 @@ public record MessageDto(
string ChannelName,
DateTimeOffset SentAt,
List<AttachmentDto>? Attachments = null,
List<EmbedDto>? Embeds = null);
List<EmbedDto>? Embeds = null,
string? SenderDisplayName = null);
/// <summary>
/// A file attached to a message. <see cref="AsciiPreview"/> holds the color-tag art for
+2 -1
View File
@@ -30,6 +30,7 @@ public record UserPresenceDto(
string? NicknameColor,
UserStatus Status,
string? StatusMessage,
ServerRole Role);
ServerRole Role,
bool IsIrc = false);
public record AvatarUploadResponse(string AvatarAscii);