From 4c105b6c68c8e32426098cf93130ce0cb930cd00 Mon Sep 17 00:00:00 2001 From: HueByte Date: Thu, 19 Feb 2026 21:50:22 +0000 Subject: [PATCH] deploy: dfa1b21d323f84bcd9a5f85d0355c852c0eea6e1 --- api/client-articles/index.html | 1 + ...choHub.Client.Commands.CommandHandler.html | 244 +- .../EchoHub.Client.Config.ClientConfig.html | 31 + ...oHub.Client.Config.NotificationConfig.html | 303 ++ api/client/EchoHub.Client.Config.html | 4 + .../EchoHub.Client.Services.ApiClient.html | 324 +- ...Hub.Client.Services.EchoHubConnection.html | 152 +- ...ent.Services.NotificationSoundService.html | 340 ++ ...EchoHub.Client.Services.UpdateChecker.html | 213 ++ api/client/EchoHub.Client.Services.html | 8 + .../EchoHub.Client.UI.ChannelListSource.html | 554 +++ api/client/EchoHub.Client.UI.ChatColors.html | 224 ++ api/client/EchoHub.Client.UI.ChatLine.html | 150 +- .../EchoHub.Client.UI.ChatListSource.html | 4 +- ...EchoHub.Client.UI.CreateChannelResult.html | 47 +- api/client/EchoHub.Client.UI.EmojiHelper.html | 221 ++ api/client/EchoHub.Client.UI.MainWindow.html | 220 ++ .../EchoHub.Client.UI.ProfileEditDialog.html | 10 +- .../EchoHub.Client.UI.ProfileEditResult.html | 127 +- .../EchoHub.Client.UI.UserListSource.html | 549 +++ api/client/EchoHub.Client.UI.html | 20 +- .../EchoHub.Core.Constants.HubConstants.html | 212 +- ...hoHub.Core.Contracts.IChatBroadcaster.html | 190 + ...EchoHub.Core.Contracts.IEchoHubClient.html | 188 + .../EchoHub.Core.DTOs.AssignRoleRequest.html | 625 ++++ api/core/EchoHub.Core.DTOs.BanRequest.html | 590 +++ api/core/EchoHub.Core.DTOs.ChannelDto.html | 47 +- ...choHub.Core.DTOs.CreateChannelRequest.html | 47 +- api/core/EchoHub.Core.DTOs.EmbedDto.html | 730 ++++ api/core/EchoHub.Core.DTOs.KickRequest.html | 590 +++ api/core/EchoHub.Core.DTOs.MessageDto.html | 47 +- api/core/EchoHub.Core.DTOs.MuteRequest.html | 625 ++++ .../EchoHub.Core.DTOs.UserPresenceDto.html | 47 +- .../EchoHub.Core.DTOs.UserProfileDto.html | 47 +- api/core/EchoHub.Core.DTOs.html | 20 + api/core/EchoHub.Core.Models.Channel.html | 31 + ...EchoHub.Core.Models.ChannelMembership.html | 303 ++ api/core/EchoHub.Core.Models.Message.html | 31 + api/core/EchoHub.Core.Models.ServerRole.html | 159 + api/core/EchoHub.Core.Models.User.html | 124 + api/core/EchoHub.Core.Models.html | 8 + .../EchoHub.Server.Irc.IrcBroadcaster.html | 190 + .../EchoHub.Server.Irc.IrcGatewayService.html | 31 + ...choHub.Server.Irc.IrcMessageFormatter.html | 38 + ...Server.Controllers.ChannelsController.html | 16 +- ...rver.Controllers.ModerationController.html | 528 +++ api/server/EchoHub.Server.Controllers.html | 4 + .../EchoHub.Server.Data.EchoHubDbContext.html | 31 + ...er.Data.Migrations.AddChannelIsPublic.html | 306 ++ ....Data.Migrations.AddChannelMembership.html | 306 ++ ...erver.Data.Migrations.AddMessageEmbed.html | 306 ++ ...er.Data.Migrations.AddModerationRoles.html | 306 ++ .../EchoHub.Server.Data.Migrations.html | 16 + api/server/EchoHub.Server.Hubs.ChatHub.html | 2 +- .../EchoHub.Server.Services.ChatService.html | 8 +- ...b.Server.Services.ImageToAsciiService.html | 47 +- ...oHub.Server.Services.LinkEmbedService.html | 256 ++ ...hoHub.Server.Services.PresenceTracker.html | 38 + ...ub.Server.Services.SignalRBroadcaster.html | 190 + api/server/EchoHub.Server.Services.html | 4 + ...Hub.Server.Setup.DataMigrationService.html | 254 ++ api/server/EchoHub.Server.Setup.html | 4 + api/toc.html | 60 + api/toc.json | 2 +- articles/notification-sounds.html | 142 + changelog/index.html | 1 + changelog/toc.html | 3 + changelog/toc.json | 2 +- changelog/v0.2.3.html | 209 ++ index.json | 196 +- manifest.json | 302 +- xrefmap.yml | 3333 ++++++++++++++++- 72 files changed, 15202 insertions(+), 336 deletions(-) create mode 100644 api/client/EchoHub.Client.Config.NotificationConfig.html create mode 100644 api/client/EchoHub.Client.Services.NotificationSoundService.html create mode 100644 api/client/EchoHub.Client.Services.UpdateChecker.html create mode 100644 api/client/EchoHub.Client.UI.ChannelListSource.html create mode 100644 api/client/EchoHub.Client.UI.EmojiHelper.html create mode 100644 api/client/EchoHub.Client.UI.UserListSource.html create mode 100644 api/core/EchoHub.Core.DTOs.AssignRoleRequest.html create mode 100644 api/core/EchoHub.Core.DTOs.BanRequest.html create mode 100644 api/core/EchoHub.Core.DTOs.EmbedDto.html create mode 100644 api/core/EchoHub.Core.DTOs.KickRequest.html create mode 100644 api/core/EchoHub.Core.DTOs.MuteRequest.html create mode 100644 api/core/EchoHub.Core.Models.ChannelMembership.html create mode 100644 api/core/EchoHub.Core.Models.ServerRole.html create mode 100644 api/server/EchoHub.Server.Controllers.ModerationController.html create mode 100644 api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html create mode 100644 api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html create mode 100644 api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html create mode 100644 api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html create mode 100644 api/server/EchoHub.Server.Services.LinkEmbedService.html create mode 100644 api/server/EchoHub.Server.Setup.DataMigrationService.html create mode 100644 articles/notification-sounds.html create mode 100644 changelog/v0.2.3.html diff --git a/api/client-articles/index.html b/api/client-articles/index.html index 43207f5..85d3cc3 100644 --- a/api/client-articles/index.html +++ b/api/client-articles/index.html @@ -94,6 +94,7 @@
  • Theme system and customization
  • Command system reference
  • Configuration management
  • +
  • Notification sounds
  • diff --git a/api/client/EchoHub.Client.Commands.CommandHandler.html b/api/client/EchoHub.Client.Commands.CommandHandler.html index 9e11425..9864e0b 100644 --- a/api/client/EchoHub.Client.Commands.CommandHandler.html +++ b/api/client/EchoHub.Client.Commands.CommandHandler.html @@ -259,6 +259,66 @@ Class CommandHandler + OnAssignRole + + + +
    +
    + +
    +
    public event Func<string, string, Task>? OnAssignRole
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, string, Task>
    +
    +
    + + + + + + + + +

    + OnBanUser + +

    + +
    +
    + +
    +
    public event Func<string, string?, Task>? OnBanUser
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, string, Task>
    +
    +
    + + + + + + + +

    OnHelp @@ -319,6 +379,36 @@ Class CommandHandler + OnKickUser + +

    + +
    +
    + +
    +
    public event Func<string, string?, Task>? OnKickUser
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, string, Task>
    +
    +
    + + + + + + + +

    OnLeaveChannel @@ -379,6 +469,66 @@ Class CommandHandler + OnMuteUser + +

    + +
    +
    + +
    +
    public event Func<string, int?, Task>? OnMuteUser
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, int?, Task>
    +
    +
    + + + + + + + + +

    + OnNukeChannel + +

    + +
    +
    + +
    +
    public event Func<Task>? OnNukeChannel
    +
    + + + + + + +

    Event Type

    +
    +
    Func<Task>
    +
    +
    + + + + + + + +

    OnOpenProfile @@ -478,7 +628,7 @@ Class CommandHandler
    -
    public event Func<string, Task>? OnSendFile
    +
    public event Func<string, string?, Task>? OnSendFile
    @@ -488,7 +638,7 @@ Class CommandHandler
    Event Type

    -
    Func<string, Task>
    +
    Func<string, string, Task>
    @@ -679,6 +829,96 @@ Class CommandHandler + OnTestSound + + + +
    +
    + +
    +
    public event Func<Task>? OnTestSound
    +
    + + + + + + +

    Event Type

    +
    +
    Func<Task>
    +
    +
    + + + + + + + + +

    + OnUnbanUser + +

    + +
    +
    + +
    +
    public event Func<string, Task>? OnUnbanUser
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, Task>
    +
    +
    + + + + + + + + +

    + OnUnmuteUser + +

    + +
    +
    + +
    +
    public event Func<string, Task>? OnUnmuteUser
    +
    + + + + + + +

    Event Type

    +
    +
    Func<string, Task>
    +
    +
    + + + + + + + +
    diff --git a/api/client/EchoHub.Client.Config.ClientConfig.html b/api/client/EchoHub.Client.Config.ClientConfig.html index 30c88be..52100b2 100644 --- a/api/client/EchoHub.Client.Config.ClientConfig.html +++ b/api/client/EchoHub.Client.Config.ClientConfig.html @@ -244,6 +244,37 @@ Class ClientConfig + +

    + Notifications + +

    + +
    +
    + +
    +
    public NotificationConfig Notifications { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    NotificationConfig
    +
    +
    + + + + + + + +

    diff --git a/api/client/EchoHub.Client.Config.NotificationConfig.html b/api/client/EchoHub.Client.Config.NotificationConfig.html new file mode 100644 index 0000000..733990e --- /dev/null +++ b/api/client/EchoHub.Client.Config.NotificationConfig.html @@ -0,0 +1,303 @@ + + + + + Class NotificationConfig | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class NotificationConfig +

    + +
    +
    Namespace
    EchoHub.Client.Config
    +
    Assembly
    EchoHub.Client.dll
    +
    + +
    +
    + +
    +
    public class NotificationConfig
    +
    + + + + +
    +
    Inheritance
    +
    + +
    NotificationConfig
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + NotificationConfig() + +

    + +
    +
    + +
    +
    public NotificationConfig()
    +
    + + + + + + + + + + + + + +

    Properties +

    + + + + +

    + Enabled + +

    + +
    +
    + +
    +
    public bool Enabled { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + + + + +

    + SoundFile + +

    + +
    +
    + +
    +
    public string? SoundFile { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    + Volume + +

    + +
    +
    + +
    +
    public byte Volume { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    byte
    +
    +
    + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.Config.html b/api/client/EchoHub.Client.Config.html index e1755f4..f63a479 100644 --- a/api/client/EchoHub.Client.Config.html +++ b/api/client/EchoHub.Client.Config.html @@ -106,6 +106,10 @@ Classes
    ConfigManager
    +
    +
    NotificationConfig
    +
    +
    SavedServer
    diff --git a/api/client/EchoHub.Client.Services.ApiClient.html b/api/client/EchoHub.Client.Services.ApiClient.html index 96793b1..4d809a9 100644 --- a/api/client/EchoHub.Client.Services.ApiClient.html +++ b/api/client/EchoHub.Client.Services.ApiClient.html @@ -287,10 +287,10 @@ Class ApiClient - + -

    - CreateChannelAsync(string, string?) +

    + AssignRoleAsync(string, ServerRole)

    @@ -298,7 +298,83 @@ Class ApiClient

    -
    public Task<ChannelDto?> CreateChannelAsync(string name, string? topic = null)
    +
    public Task AssignRoleAsync(string username, ServerRole role)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    role ServerRole
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + BanUserAsync(string, string?) + +

    + +
    +
    + +
    +
    public Task BanUserAsync(string username, string? reason = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + CreateChannelAsync(string, string?, bool) + +

    + +
    +
    + +
    +
    public Task<ChannelDto?> CreateChannelAsync(string name, string? topic = null, bool isPublic = true)

    Parameters

    @@ -307,6 +383,8 @@ Class ApiClient
    topic string
    +
    isPublic bool
    +

    Returns

    @@ -361,6 +439,42 @@ Class ApiClient + +

    + DeleteMessageAsync(Guid) + +

    + +
    +
    + +
    +
    public Task DeleteMessageAsync(Guid messageId)
    +
    + +

    Parameters

    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -518,6 +632,44 @@ Used by EchoHubConnection for SignalR token provider.

    + + +

    + KickUserAsync(string, string?) + +

    + +
    +
    + +
    +
    public Task KickUserAsync(string username, string? reason = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -587,6 +739,82 @@ Used by EchoHubConnection for SignalR token provider.

    + + +

    + MuteUserAsync(string, int?, string?) + +

    + +
    +
    + +
    +
    public Task MuteUserAsync(string username, int? durationMinutes = null, string? reason = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    durationMinutes int?
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + NukeChannelAsync(string) + +

    + +
    +
    + +
    +
    public Task NukeChannelAsync(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -660,8 +888,8 @@ Used by EchoHubConnection for SignalR token provider.

    -

    - SendUrlAsync(string, string) +

    + SendUrlAsync(string, string, string?)

    @@ -669,7 +897,7 @@ Used by EchoHubConnection for SignalR token provider.

    -
    public Task<MessageDto?> SendUrlAsync(string channelName, string url)
    +
    public Task<MessageDto?> SendUrlAsync(string channelName, string url, string? size = null)

    Parameters

    @@ -678,6 +906,8 @@ Used by EchoHubConnection for SignalR token provider.

    url string
    +
    size string
    +

    Returns

    @@ -696,6 +926,78 @@ Used by EchoHubConnection for SignalR token provider.

    + + +

    + UnbanUserAsync(string) + +

    + +
    +
    + +
    +
    public Task UnbanUserAsync(string username)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + UnmuteUserAsync(string) + +

    + +
    +
    + +
    +
    public Task UnmuteUserAsync(string username)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -810,8 +1112,8 @@ Used by EchoHubConnection for SignalR token provider.

    -

    - UploadFileAsync(string, Stream, string) +

    + UploadFileAsync(string, Stream, string, string?)

    @@ -819,7 +1121,7 @@ Used by EchoHubConnection for SignalR token provider.

    -
    public Task<MessageDto?> UploadFileAsync(string channelName, Stream fileStream, string fileName)
    +
    public Task<MessageDto?> UploadFileAsync(string channelName, Stream fileStream, string fileName, string? size = null)

    Parameters

    @@ -830,6 +1132,8 @@ Used by EchoHubConnection for SignalR token provider.

    fileName string
    +
    size string
    +

    Returns

    diff --git a/api/client/EchoHub.Client.Services.EchoHubConnection.html b/api/client/EchoHub.Client.Services.EchoHubConnection.html index 55ab47e..5ebbae5 100644 --- a/api/client/EchoHub.Client.Services.EchoHubConnection.html +++ b/api/client/EchoHub.Client.Services.EchoHubConnection.html @@ -331,7 +331,7 @@ Class EchoHubConnection
    -
    public Task<List<MessageDto>> GetHistoryAsync(string channelName, int count = 50)
    +
    public Task<List<MessageDto>> GetHistoryAsync(string channelName, int count = 100)

    Parameters

    @@ -547,6 +547,36 @@ Class EchoHubConnection
    + OnChannelNuked + + + +
    +
    + +
    +
    public event Action<string>? OnChannelNuked
    +
    + + + + + + +

    Event Type

    +
    +
    Action<string>
    +
    +
    + + + + + + + +

    OnChannelUpdated @@ -637,6 +667,66 @@ Class EchoHubConnection + OnForceDisconnect + +

    + +
    +
    + +
    +
    public event Action<string>? OnForceDisconnect
    +
    + + + + + + +

    Event Type

    +
    +
    Action<string>
    +
    +
    + + + + + + + + +

    + OnMessageDeleted + +

    + +
    +
    + +
    +
    public event Action<string, Guid>? OnMessageDeleted
    +
    + + + + + + +

    Event Type

    +
    +
    Action<string, Guid>
    +
    +
    + + + + + + + +

    OnMessageReceived @@ -697,6 +787,36 @@ Class EchoHubConnection + OnUserBanned + +

    + +
    +
    + +
    +
    public event Action<string, string?>? OnUserBanned
    +
    + + + + + + +

    Event Type

    +
    +
    Action<string, string>
    +
    +
    + + + + + + + +

    OnUserJoined @@ -727,6 +847,36 @@ Class EchoHubConnection + OnUserKicked + +

    + +
    +
    + +
    +
    public event Action<string, string, string?>? OnUserKicked
    +
    + + + + + + +

    Event Type

    +
    +
    Action<string, string, string>
    +
    +
    + + + + + + + +

    OnUserLeft diff --git a/api/client/EchoHub.Client.Services.NotificationSoundService.html b/api/client/EchoHub.Client.Services.NotificationSoundService.html new file mode 100644 index 0000000..0339cea --- /dev/null +++ b/api/client/EchoHub.Client.Services.NotificationSoundService.html @@ -0,0 +1,340 @@ + + + + + Class NotificationSoundService | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class NotificationSoundService +

    + +
    +
    Namespace
    EchoHub.Client.Services
    +
    Assembly
    EchoHub.Client.dll
    +
    + +
    +
    + +
    +
    public class NotificationSoundService
    +
    + + + + +
    +
    Inheritance
    +
    + +
    NotificationSoundService
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + NotificationSoundService(NotificationConfig) + +

    + +
    +
    + +
    +
    public NotificationSoundService(NotificationConfig config)
    +
    + +

    Parameters

    +
    +
    config NotificationConfig
    +
    +
    + + + + + + + + + + + + +

    Methods +

    + + + + +

    + PlayAsync() + +

    + +
    +
    + +
    +
    public Task PlayAsync()
    +
    + + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + PlayTestAsync() + +

    + +

    Plays the notification sound regardless of the Enabled setting (for /test-sound).

    +
    +
    + +
    +
    public Task PlayTestAsync()
    +
    + + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + SetEnabled(bool) + +

    + +
    +
    + +
    +
    public void SetEnabled(bool enabled)
    +
    + +

    Parameters

    +
    +
    enabled bool
    +
    +
    + + + + + + + + + + + + + + +

    + SetVolume(byte) + +

    + +
    +
    + +
    +
    public void SetVolume(byte volume)
    +
    + +

    Parameters

    +
    +
    volume byte
    +
    +
    + + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.Services.UpdateChecker.html b/api/client/EchoHub.Client.Services.UpdateChecker.html new file mode 100644 index 0000000..15f8d69 --- /dev/null +++ b/api/client/EchoHub.Client.Services.UpdateChecker.html @@ -0,0 +1,213 @@ + + + + + Class UpdateChecker | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class UpdateChecker +

    + +
    +
    Namespace
    EchoHub.Client.Services
    +
    Assembly
    EchoHub.Client.dll
    +
    + +
    +
    + +
    +
    public static class UpdateChecker
    +
    + + + + +
    +
    Inheritance
    +
    + +
    UpdateChecker
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Methods +

    + + + + +

    + CheckForUpdateAsync() + +

    + +

    Checks GitHub for a newer release. Returns the new version string if one exists, or null. +Never throws — all errors are silently swallowed.

    +
    +
    + +
    +
    public static Task<string?> CheckForUpdateAsync()
    +
    + + +

    Returns

    +
    +
    Task<string>
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.Services.html b/api/client/EchoHub.Client.Services.html index 448263d..69d707a 100644 --- a/api/client/EchoHub.Client.Services.html +++ b/api/client/EchoHub.Client.Services.html @@ -102,6 +102,14 @@ Classes
    EchoHubConnection
    +
    +
    NotificationSoundService
    +
    +
    +
    +
    UpdateChecker
    +
    +
    diff --git a/api/client/EchoHub.Client.UI.ChannelListSource.html b/api/client/EchoHub.Client.UI.ChannelListSource.html new file mode 100644 index 0000000..65be082 --- /dev/null +++ b/api/client/EchoHub.Client.UI.ChannelListSource.html @@ -0,0 +1,554 @@ + + + + + Class ChannelListSource | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class ChannelListSource +

    + +
    +
    Namespace
    EchoHub.Client.UI
    +
    Assembly
    EchoHub.Client.dll
    +
    + +

    Custom list data source for colored channel list rendering. +Active channel gets a > indicator, unread channels are bright with a count badge.

    +
    +
    + +
    +
    public class ChannelListSource : IListDataSource, IDisposable
    +
    + + + + +
    +
    Inheritance
    +
    + +
    ChannelListSource
    +
    +
    + +
    +
    Implements
    +
    +
    IListDataSource
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + ChannelListSource() + +

    + +
    +
    + +
    +
    public ChannelListSource()
    +
    + + + + + + + + + + + + + +

    Properties +

    + + + + +

    + Count + +

    + +
    +
    + +
    +
    public int Count { get; }
    +
    + + + + + +

    Property Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + MaxItemLength + +

    + +
    +
    + +
    +
    public int MaxItemLength { get; }
    +
    + + + + + +

    Property Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + SuspendCollectionChangedEvent + +

    + +
    +
    + +
    +
    public bool SuspendCollectionChangedEvent { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Dispose() + +

    + +
    +
    + +
    +
    public void Dispose()
    +
    + + + + + + + + + + + + + + + +

    + IsMarked(int) + +

    + +
    +
    + +
    +
    public bool IsMarked(int item)
    +
    + +

    Parameters

    +
    +
    item int
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Render(ListView, bool, int, int, int, int, int) + +

    + +
    +
    + +
    +
    public void Render(ListView listView, bool selected, int item, int col, int row, int width, int viewportX = 0)
    +
    + +

    Parameters

    +
    +
    listView ListView
    +
    +
    selected bool
    +
    +
    item int
    +
    +
    col int
    +
    +
    row int
    +
    +
    width int
    +
    +
    viewportX int
    +
    +
    + + + + + + + + + + + + + + +

    + SetMark(int, bool) + +

    + +
    +
    + +
    +
    public void SetMark(int item, bool value)
    +
    + +

    Parameters

    +
    +
    item int
    +
    +
    value bool
    +
    +
    + + + + + + + + + + + + + + +

    + ToList() + +

    + +
    +
    + +
    +
    public IList ToList()
    +
    + + +

    Returns

    +
    +
    IList
    +
    +
    + + + + + + + + + + + + + +

    + Update(List<string>, Dictionary<string, int>, string) + +

    + +
    +
    + +
    +
    public void Update(List<string> channels, Dictionary<string, int> unread, string activeChannel)
    +
    + +

    Parameters

    +
    +
    channels List<string>
    +
    +
    unread Dictionary<string, int>
    +
    +
    activeChannel string
    +
    +
    + + + + + + + + + + + + +

    Events +

    + + + +

    + CollectionChanged + +

    + +
    +
    + +
    +
    public event NotifyCollectionChangedEventHandler? CollectionChanged
    +
    + + + + + + +

    Event Type

    +
    +
    NotifyCollectionChangedEventHandler
    +
    +
    + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.UI.ChatColors.html b/api/client/EchoHub.Client.UI.ChatColors.html index feee8ef..20fcb69 100644 --- a/api/client/EchoHub.Client.UI.ChatColors.html +++ b/api/client/EchoHub.Client.UI.ChatColors.html @@ -154,6 +154,186 @@ Class ChatColors + EmbedBorderAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute EmbedBorderAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + + +

    + EmbedDescAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute EmbedDescAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + + +

    + EmbedTitleAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute EmbedTitleAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + + +

    + EmbedUrlAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute EmbedUrlAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + + +

    + MentionHighlightAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute MentionHighlightAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + + +

    + MentionTextAttr + +

    + +
    +
    + +
    +
    public static readonly Attribute MentionTextAttr
    +
    + + + + +

    Field Value

    +
    +
    Attribute
    +
    +
    + + + + + + + + + +

    SystemAttr @@ -213,6 +393,50 @@ Class ChatColors Methods +

    + + + + +

    + SplitMentions(string, Attribute?) + +

    + +

    Split text around @mentions, giving each @word the MentionTextAttr accent color. +Non-mention text uses the provided default color.

    +
    +
    + +
    +
    public static List<ChatSegment> SplitMentions(string text, Attribute? defaultColor = null)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    defaultColor Attribute?
    +
    +
    + +

    Returns

    +
    +
    List<ChatSegment>
    +
    +
    + + + + + + + + + + + diff --git a/api/client/EchoHub.Client.UI.ChatLine.html b/api/client/EchoHub.Client.UI.ChatLine.html index e038acd..3b627cf 100644 --- a/api/client/EchoHub.Client.UI.ChatLine.html +++ b/api/client/EchoHub.Client.UI.ChatLine.html @@ -216,6 +216,68 @@ Class ChatLine + + +

    + IsMention + +

    + +
    +
    + +
    +
    public bool IsMention { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + + + + +

    + MessageId + +

    + +
    +
    + +
    +
    public Guid? MessageId { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    Guid?
    +
    +
    + + + + + + + +

    @@ -282,25 +344,25 @@ Class ChatLine - + -

    - FromAnsi(string, Attribute?) +

    + FromColoredText(string, Attribute?)

    -

    Parse a string containing ANSI 24-bit color escape codes into colored segments. -Format: \x1b[38;2;R;G;Bm (foreground color), \x1b[0m (reset)

    +

    Parse a string containing printable color tags into colored segments. +Format: {F:RRGGBB} (foreground), {B:RRGGBB} (background), {X} (reset).

    -
    public static ChatLine FromAnsi(string ansiText, Attribute? defaultAttr = null)
    +
    public static ChatLine FromColoredText(string text, Attribute? defaultAttr = null)

    Parameters

    -
    ansiText string
    +
    text string
    defaultAttr Attribute?
    @@ -322,6 +384,80 @@ Format: \x1b[38;2;R;G;Bm (foreground color), \x1b[0m (reset)

    + + +

    + HasColorTags(string) + +

    + +

    Returns true if a line contains printable color tags.

    +
    +
    + +
    +
    public static bool HasColorTags(string text)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + StripColorTags(string) + +

    + +

    Remove all color tags from text, returning only the visible characters.

    +
    +
    + +
    +
    public static string StripColorTags(string text)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    diff --git a/api/client/EchoHub.Client.UI.ChatListSource.html b/api/client/EchoHub.Client.UI.ChatListSource.html index 119e542..d250a94 100644 --- a/api/client/EchoHub.Client.UI.ChatListSource.html +++ b/api/client/EchoHub.Client.UI.ChatListSource.html @@ -6,7 +6,7 @@ - + @@ -97,7 +97,7 @@ Class ChatListSource

    Custom list data source for chat messages with per-character coloring.

    +

    Custom list data source for chat messages with per-segment coloring.

    diff --git a/api/client/EchoHub.Client.UI.CreateChannelResult.html b/api/client/EchoHub.Client.UI.CreateChannelResult.html index d579f80..e19eede 100644 --- a/api/client/EchoHub.Client.UI.CreateChannelResult.html +++ b/api/client/EchoHub.Client.UI.CreateChannelResult.html @@ -182,8 +182,8 @@ Class CreateChannelResult
    -

    - CreateChannelResult(string, string?) +

    + CreateChannelResult(string, string?, bool)

    @@ -191,7 +191,7 @@ Class CreateChannelResult
    -
    public CreateChannelResult(string Name, string? Topic)
    +
    public CreateChannelResult(string Name, string? Topic, bool IsPublic)

    Parameters

    @@ -200,6 +200,8 @@ Class CreateChannelResult
    string
    +
    IsPublic bool
    +
    @@ -248,6 +250,37 @@ Class CreateChannelResult + +

    + IsPublic + +

    + +
    +
    + +
    +
    public bool IsPublic { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + +

    @@ -316,8 +349,8 @@ Class CreateChannelResult -

    - Deconstruct(out string, out string?) +

    + Deconstruct(out string, out string?, out bool)

    @@ -325,7 +358,7 @@ Class CreateChannelResult
    -
    public void Deconstruct(out string Name, out string? Topic)
    +
    public void Deconstruct(out string Name, out string? Topic, out bool IsPublic)

    Parameters

    @@ -334,6 +367,8 @@ Class CreateChannelResult
    string
    +
    IsPublic bool
    +
    diff --git a/api/client/EchoHub.Client.UI.EmojiHelper.html b/api/client/EchoHub.Client.UI.EmojiHelper.html new file mode 100644 index 0000000..a714708 --- /dev/null +++ b/api/client/EchoHub.Client.UI.EmojiHelper.html @@ -0,0 +1,221 @@ + + + + + Class EmojiHelper | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class EmojiHelper +

    + +
    +
    Namespace
    EchoHub.Client.UI
    +
    Assembly
    EchoHub.Client.dll
    +
    + +

    Converts emoji grapheme clusters to text shortcodes for safe TUI rendering. +Terminal width calculations for emoji are unreliable across different terminals, +so we replace them with fixed-width ASCII shortcodes for display only.

    +
    +
    + +
    +
    public static class EmojiHelper
    +
    + + + + +
    +
    Inheritance
    +
    + +
    EmojiHelper
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Methods +

    + + + + +

    + ReplaceEmoji(string) + +

    + +

    Replace emoji graphemes in the text with :shortcode: equivalents. +Non-emoji text passes through unchanged.

    +
    +
    + +
    +
    public static string ReplaceEmoji(string text)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.UI.MainWindow.html b/api/client/EchoHub.Client.UI.MainWindow.html index 1b3682c..8b4824e 100644 --- a/api/client/EchoHub.Client.UI.MainWindow.html +++ b/api/client/EchoHub.Client.UI.MainWindow.html @@ -1027,6 +1027,70 @@ Call after theme changes to refresh colors.

    + + +

    + ClearChannelMessages(string) + +

    + +

    Clear all messages from a specific channel.

    +
    +
    + +
    +
    public void ClearChannelMessages(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + + + + + + + + + + + + + + +

    + EnsureChannelInList(string) + +

    + +

    Ensure a channel exists in the left panel list (used for private channels joined via /join).

    +
    +
    + +
    +
    public void EnsureChannelInList(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + + + + + + + + + + + +

    @@ -1147,6 +1211,72 @@ Call after theme changes to refresh colors.

    + + +

    + RemoveChannel(string) + +

    + +

    Remove a channel from the left panel list.

    +
    +
    + +
    +
    public void RemoveChannel(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + + + + + + + + + + + + + + +

    + RemoveMessage(string, Guid) + +

    + +

    Remove all lines associated with a specific message ID.

    +
    +
    + +
    +
    public void RemoveMessage(string channelName, Guid messageId)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    messageId Guid
    +
    +
    + + + + + + + + + + + +

    @@ -1309,6 +1439,65 @@ Call after theme changes to refresh colors.

    + + +

    + ToggleUsersPanel() + +

    + +

    Toggle the online users panel visibility (F2).

    +
    +
    + +
    +
    public void ToggleUsersPanel()
    +
    + + + + + + + + + + + + + + + +

    + UpdateOnlineUsers(List<UserPresenceDto>) + +

    + +

    Update the online users list display.

    +
    +
    + +
    +
    public void UpdateOnlineUsers(List<UserPresenceDto> users)
    +
    + +

    Parameters

    +
    +
    users List<UserPresenceDto>
    +
    +
    + + + + + + + + + + + +

    @@ -1439,6 +1628,37 @@ Call after theme changes to refresh colors.

    +

    + OnDeleteChannelRequested + +

    + +

    Fired when the user requests to delete the current channel.

    +
    +
    + +
    +
    public event Action? OnDeleteChannelRequested
    +
    + + + + + + +

    Event Type

    +
    +
    Action
    +
    +
    + + + + + + + +

    OnDisconnectRequested diff --git a/api/client/EchoHub.Client.UI.ProfileEditDialog.html b/api/client/EchoHub.Client.UI.ProfileEditDialog.html index 08a9f73..bf9926c 100644 --- a/api/client/EchoHub.Client.UI.ProfileEditDialog.html +++ b/api/client/EchoHub.Client.UI.ProfileEditDialog.html @@ -182,8 +182,8 @@ Class ProfileEditDialog -

    - Show(IApplication, string?, string?, string?) +

    + Show(IApplication, string?, string?, string?, bool, byte)

    @@ -192,7 +192,7 @@ Class ProfileEditDialog
    -
    public static ProfileEditResult? Show(IApplication app, string? currentDisplayName, string? currentBio, string? currentColor)
    +
    public static ProfileEditResult? Show(IApplication app, string? currentDisplayName, string? currentBio, string? currentColor, bool notificationSoundEnabled = false, byte notificationVolume = 30)

    Parameters

    @@ -205,6 +205,10 @@ Class ProfileEditDialog
    string
    +
    notificationSoundEnabled bool
    +
    +
    notificationVolume byte
    +

    Returns

    diff --git a/api/client/EchoHub.Client.UI.ProfileEditResult.html b/api/client/EchoHub.Client.UI.ProfileEditResult.html index 699bb66..b8501d6 100644 --- a/api/client/EchoHub.Client.UI.ProfileEditResult.html +++ b/api/client/EchoHub.Client.UI.ProfileEditResult.html @@ -183,8 +183,8 @@ Class ProfileEditResult -

    - ProfileEditResult(string?, string?, string?) +

    + ProfileEditResult(string?, string?, string?, string?, bool?, byte?)

    @@ -193,7 +193,7 @@ Class ProfileEditResult
    -
    public ProfileEditResult(string? DisplayName, string? Bio, string? NicknameColor)
    +
    public ProfileEditResult(string? DisplayName, string? Bio, string? NicknameColor, string? AvatarPath, bool? NotificationSoundEnabled, byte? NotificationVolume)

    Parameters

    @@ -204,6 +204,12 @@ Class ProfileEditResult
    string
    +
    AvatarPath string
    +
    +
    NotificationSoundEnabled bool?
    +
    +
    NotificationVolume byte?
    +
    @@ -221,6 +227,37 @@ Class ProfileEditResult + +

    + AvatarPath + +

    + +
    +
    + +
    +
    public string? AvatarPath { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + +

    @@ -345,14 +382,10 @@ Class ProfileEditResult Methods -

    + - - - -

    - Deconstruct(out string?, out string?, out string?) +

    + NotificationSoundEnabled

    @@ -360,7 +393,73 @@ Class ProfileEditResult
    -
    public void Deconstruct(out string? DisplayName, out string? Bio, out string? NicknameColor)
    +
    public bool? NotificationSoundEnabled { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    bool?
    +
    +
    + + + + + + + + + + +

    + NotificationVolume + +

    + +
    +
    + +
    +
    public byte? NotificationVolume { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    byte?
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string?, out string?, out string?, out string?, out bool?, out byte?) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string? DisplayName, out string? Bio, out string? NicknameColor, out string? AvatarPath, out bool? NotificationSoundEnabled, out byte? NotificationVolume)

    Parameters

    @@ -371,6 +470,12 @@ Class ProfileEditResult string
    +
    AvatarPath string
    +
    +
    NotificationSoundEnabled bool?
    +
    +
    NotificationVolume byte?
    +
    diff --git a/api/client/EchoHub.Client.UI.UserListSource.html b/api/client/EchoHub.Client.UI.UserListSource.html new file mode 100644 index 0000000..440054f --- /dev/null +++ b/api/client/EchoHub.Client.UI.UserListSource.html @@ -0,0 +1,549 @@ + + + + + Class UserListSource | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class UserListSource +

    + +
    +
    Namespace
    EchoHub.Client.UI
    +
    Assembly
    EchoHub.Client.dll
    +
    + +

    Custom list data source for the online users panel with per-user nickname colors.

    +
    +
    + +
    +
    public class UserListSource : IListDataSource, IDisposable
    +
    + + + + +
    +
    Inheritance
    +
    + +
    UserListSource
    +
    +
    + +
    +
    Implements
    +
    +
    IListDataSource
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + UserListSource() + +

    + +
    +
    + +
    +
    public UserListSource()
    +
    + + + + + + + + + + + + + +

    Properties +

    + + + + +

    + Count + +

    + +
    +
    + +
    +
    public int Count { get; }
    +
    + + + + + +

    Property Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + MaxItemLength + +

    + +
    +
    + +
    +
    public int MaxItemLength { get; }
    +
    + + + + + +

    Property Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + SuspendCollectionChangedEvent + +

    + +
    +
    + +
    +
    public bool SuspendCollectionChangedEvent { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Dispose() + +

    + +
    +
    + +
    +
    public void Dispose()
    +
    + + + + + + + + + + + + + + + +

    + IsMarked(int) + +

    + +
    +
    + +
    +
    public bool IsMarked(int item)
    +
    + +

    Parameters

    +
    +
    item int
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Render(ListView, bool, int, int, int, int, int) + +

    + +
    +
    + +
    +
    public void Render(ListView listView, bool selected, int item, int col, int row, int width, int viewportX = 0)
    +
    + +

    Parameters

    +
    +
    listView ListView
    +
    +
    selected bool
    +
    +
    item int
    +
    +
    col int
    +
    +
    row int
    +
    +
    width int
    +
    +
    viewportX int
    +
    +
    + + + + + + + + + + + + + + +

    + SetMark(int, bool) + +

    + +
    +
    + +
    +
    public void SetMark(int item, bool value)
    +
    + +

    Parameters

    +
    +
    item int
    +
    +
    value bool
    +
    +
    + + + + + + + + + + + + + + +

    + ToList() + +

    + +
    +
    + +
    +
    public IList ToList()
    +
    + + +

    Returns

    +
    +
    IList
    +
    +
    + + + + + + + + + + + + + +

    + Update(List<(string Text, Attribute? NameColor)>) + +

    + +
    +
    + +
    +
    public void Update(List<(string Text, Attribute? NameColor)> users)
    +
    + +

    Parameters

    +
    +
    users List<(string Text, Attribute? NameColor)>
    +
    +
    + + + + + + + + + + + + +

    Events +

    + + + +

    + CollectionChanged + +

    + +
    +
    + +
    +
    public event NotifyCollectionChangedEventHandler? CollectionChanged
    +
    + + + + + + +

    Event Type

    +
    +
    NotifyCollectionChangedEventHandler
    +
    +
    + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/client/EchoHub.Client.UI.html b/api/client/EchoHub.Client.UI.html index 2a761c4..0d4714c 100644 --- a/api/client/EchoHub.Client.UI.html +++ b/api/client/EchoHub.Client.UI.html @@ -94,6 +94,12 @@

    Classes

    +
    +
    ChannelListSource
    +

    Custom list data source for colored channel list rendering. +Active channel gets a > indicator, unread channels are bright with a count badge.

    +
    +
    ChatColors

    Shared color attributes for chat rendering (timestamps, system messages).

    @@ -106,7 +112,7 @@ Classes
    ChatListSource
    -

    Custom list data source for chat messages with per-character coloring.

    +

    Custom list data source for chat messages with per-segment coloring.

    @@ -138,6 +144,13 @@ Includes a saved servers selector when saved servers are available.

    CreateChannelResult
    +
    +
    EmojiHelper
    +

    Converts emoji grapheme clusters to text shortcodes for safe TUI rendering. +Terminal width calculations for emoji are unreliable across different terminals, +so we replace them with fixed-width ASCII shortcodes for display only.

    +
    +
    MainWindow

    Main Terminal.Gui window for the EchoHub chat client.

    @@ -167,6 +180,11 @@ Shows Edit Profile / Set Status buttons when viewing own profile.

    StatusDialogResult

    Result returned from the status dialog.

    +
    +
    +
    +
    UserListSource
    +

    Custom list data source for the online users panel with per-user nickname colors.

    diff --git a/api/core/EchoHub.Core.Constants.HubConstants.html b/api/core/EchoHub.Core.Constants.HubConstants.html index 846e1a1..36593e8 100644 --- a/api/core/EchoHub.Core.Constants.HubConstants.html +++ b/api/core/EchoHub.Core.Constants.HubConstants.html @@ -183,6 +183,36 @@ Class HubConstants + AsciiArtHeightHalfBlock + +

    + +
    +
    + +
    +
    public const int AsciiArtHeightHalfBlock = 80
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + +

    AsciiArtWidth @@ -282,7 +312,127 @@ Class HubConstants
    -
    public const int DefaultHistoryCount = 50
    +
    public const int DefaultHistoryCount = 100
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + EmbedFetchTimeoutSeconds + +

    + +
    +
    + +
    +
    public const int EmbedFetchTimeoutSeconds = 5
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + EmbedMaxDescriptionLength + +

    + +
    +
    + +
    +
    public const int EmbedMaxDescriptionLength = 500
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + EmbedMaxHtmlBytes + +

    + +
    +
    + +
    +
    public const int EmbedMaxHtmlBytes = 65536
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + + +

    + EmbedMaxUrlsPerMessage + +

    + +
    +
    + +
    +
    public const int EmbedMaxUrlsPerMessage = 3
    @@ -333,6 +483,36 @@ Class HubConstants + MaxConsecutiveNewlines + + + +
    +
    + +
    +
    public const int MaxConsecutiveNewlines = 1
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + +

    MaxFileSizeBytes @@ -393,6 +573,36 @@ Class HubConstants + MaxMessageNewlines + +

    + +
    +
    + +
    +
    public const int MaxMessageNewlines = 30
    +
    + + + + +

    Field Value

    +
    +
    int
    +
    +
    + + + + + + + + + +
    diff --git a/api/core/EchoHub.Core.Contracts.IChatBroadcaster.html b/api/core/EchoHub.Core.Contracts.IChatBroadcaster.html index 3d78fa6..7e0cefc 100644 --- a/api/core/EchoHub.Core.Contracts.IChatBroadcaster.html +++ b/api/core/EchoHub.Core.Contracts.IChatBroadcaster.html @@ -120,6 +120,80 @@ Interface IChatBroadcaster + +

    + ForceDisconnectUserAsync(List<string>, string) + +

    + +
    +
    + +
    +
    Task ForceDisconnectUserAsync(List<string> connectionIds, string reason)
    +
    + +

    Parameters

    +
    +
    connectionIds List<string>
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + SendChannelNukedAsync(string) + +

    + +
    +
    + +
    +
    Task SendChannelNukedAsync(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -196,6 +270,44 @@ Interface IChatBroadcaster + +

    + SendMessageDeletedAsync(string, Guid) + +

    + +
    +
    + +
    +
    Task SendMessageDeletedAsync(string channelName, Guid messageId)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -234,6 +346,44 @@ Interface IChatBroadcaster + +

    + SendUserBannedAsync(string, string?) + +

    + +
    +
    + +
    +
    Task SendUserBannedAsync(string username, string? reason)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -274,6 +424,46 @@ Interface IChatBroadcaster + +

    + SendUserKickedAsync(string, string, string?) + +

    + +
    +
    + +
    +
    Task SendUserKickedAsync(string channelName, string username, string? reason)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    diff --git a/api/core/EchoHub.Core.Contracts.IEchoHubClient.html b/api/core/EchoHub.Core.Contracts.IEchoHubClient.html index 6c520f1..b75cef0 100644 --- a/api/core/EchoHub.Core.Contracts.IEchoHubClient.html +++ b/api/core/EchoHub.Core.Contracts.IEchoHubClient.html @@ -121,6 +121,42 @@ Interface IEchoHubClient + +

    + ChannelNuked(string) + +

    + +
    +
    + +
    +
    Task ChannelNuked(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -193,6 +229,80 @@ Interface IEchoHubClient + +

    + ForceDisconnect(string) + +

    + +
    +
    + +
    +
    Task ForceDisconnect(string reason)
    +
    + +

    Parameters

    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + MessageDeleted(string, Guid) + +

    + +
    +
    + +
    +
    Task MessageDeleted(string channelName, Guid messageId)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -229,6 +339,44 @@ Interface IEchoHubClient + +

    + UserBanned(string, string?) + +

    + +
    +
    + +
    +
    Task UserBanned(string username, string? reason)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -267,6 +415,46 @@ Interface IEchoHubClient + +

    + UserKicked(string, string, string?) + +

    + +
    +
    + +
    +
    Task UserKicked(string channelName, string username, string? reason)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    diff --git a/api/core/EchoHub.Core.DTOs.AssignRoleRequest.html b/api/core/EchoHub.Core.DTOs.AssignRoleRequest.html new file mode 100644 index 0000000..04d39de --- /dev/null +++ b/api/core/EchoHub.Core.DTOs.AssignRoleRequest.html @@ -0,0 +1,625 @@ + + + + + Class AssignRoleRequest | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class AssignRoleRequest +

    + +
    +
    Namespace
    EchoHub.Core.DTOs
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public record AssignRoleRequest : IEquatable<AssignRoleRequest>
    +
    + + + + +
    +
    Inheritance
    +
    + +
    AssignRoleRequest
    +
    +
    + +
    +
    Implements
    +
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + AssignRoleRequest(AssignRoleRequest) + +

    + +
    +
    + +
    +
    protected AssignRoleRequest(AssignRoleRequest original)
    +
    + +

    Parameters

    +
    +
    original AssignRoleRequest
    +
    +
    + + + + + + + + + + + + + + +

    + AssignRoleRequest(string, ServerRole) + +

    + +
    +
    + +
    +
    public AssignRoleRequest(string Username, ServerRole Role)
    +
    + +

    Parameters

    +
    +
    Username string
    +
    +
    Role ServerRole
    +
    +
    + + + + + + + + + + + + +

    Properties +

    + + + + +

    + EqualityContract + +

    + +
    +
    + +
    +
    protected virtual Type EqualityContract { get; }
    +
    + + + + + +

    Property Value

    +
    +
    Type
    +
    +
    + + + + + + + + + + +

    + Role + +

    + +
    +
    + +
    +
    public ServerRole Role { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    ServerRole
    +
    +
    + + + + + + + + + + +

    + Username + +

    + +
    +
    + +
    +
    public string Username { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string, out ServerRole) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string Username, out ServerRole Role)
    +
    + +

    Parameters

    +
    +
    Username string
    +
    +
    Role ServerRole
    +
    +
    + + + + + + + + + + + + + + +

    + Equals(AssignRoleRequest?) + +

    + +
    +
    + +
    +
    public virtual bool Equals(AssignRoleRequest? other)
    +
    + +

    Parameters

    +
    +
    other AssignRoleRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Equals(object?) + +

    + +
    +
    + +
    +
    public override bool Equals(object? obj)
    +
    + +

    Parameters

    +
    +
    obj object
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + GetHashCode() + +

    + +
    +
    + +
    +
    public override int GetHashCode()
    +
    + + +

    Returns

    +
    +
    int
    +
    +
    + + + + + + + + + + + + + +

    + PrintMembers(StringBuilder) + +

    + +
    +
    + +
    +
    protected virtual bool PrintMembers(StringBuilder builder)
    +
    + +

    Parameters

    +
    +
    builder StringBuilder
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + ToString() + +

    + +
    +
    + +
    +
    public override string ToString()
    +
    + + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + +

    Operators +

    + + + + +

    + operator ==(AssignRoleRequest?, AssignRoleRequest?) + +

    + +
    +
    + +
    +
    public static bool operator ==(AssignRoleRequest? left, AssignRoleRequest? right)
    +
    + +

    Parameters

    +
    +
    left AssignRoleRequest
    +
    +
    right AssignRoleRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + operator !=(AssignRoleRequest?, AssignRoleRequest?) + +

    + +
    +
    + +
    +
    public static bool operator !=(AssignRoleRequest? left, AssignRoleRequest? right)
    +
    + +

    Parameters

    +
    +
    left AssignRoleRequest
    +
    +
    right AssignRoleRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.DTOs.BanRequest.html b/api/core/EchoHub.Core.DTOs.BanRequest.html new file mode 100644 index 0000000..4f866a5 --- /dev/null +++ b/api/core/EchoHub.Core.DTOs.BanRequest.html @@ -0,0 +1,590 @@ + + + + + Class BanRequest | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class BanRequest +

    + +
    +
    Namespace
    EchoHub.Core.DTOs
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public record BanRequest : IEquatable<BanRequest>
    +
    + + + + +
    +
    Inheritance
    +
    + +
    BanRequest
    +
    +
    + +
    +
    Implements
    +
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + BanRequest(BanRequest) + +

    + +
    +
    + +
    +
    protected BanRequest(BanRequest original)
    +
    + +

    Parameters

    +
    +
    original BanRequest
    +
    +
    + + + + + + + + + + + + + + +

    + BanRequest(string?) + +

    + +
    +
    + +
    +
    public BanRequest(string? Reason = null)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    + + + + + + + + + + + + +

    Properties +

    + + + + +

    + EqualityContract + +

    + +
    +
    + +
    +
    protected virtual Type EqualityContract { get; }
    +
    + + + + + +

    Property Value

    +
    +
    Type
    +
    +
    + + + + + + + + + + +

    + Reason + +

    + +
    +
    + +
    +
    public string? Reason { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string?) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string? Reason)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    + + + + + + + + + + + + + + +

    + Equals(BanRequest?) + +

    + +
    +
    + +
    +
    public virtual bool Equals(BanRequest? other)
    +
    + +

    Parameters

    +
    +
    other BanRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Equals(object?) + +

    + +
    +
    + +
    +
    public override bool Equals(object? obj)
    +
    + +

    Parameters

    +
    +
    obj object
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + GetHashCode() + +

    + +
    +
    + +
    +
    public override int GetHashCode()
    +
    + + +

    Returns

    +
    +
    int
    +
    +
    + + + + + + + + + + + + + +

    + PrintMembers(StringBuilder) + +

    + +
    +
    + +
    +
    protected virtual bool PrintMembers(StringBuilder builder)
    +
    + +

    Parameters

    +
    +
    builder StringBuilder
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + ToString() + +

    + +
    +
    + +
    +
    public override string ToString()
    +
    + + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + +

    Operators +

    + + + + +

    + operator ==(BanRequest?, BanRequest?) + +

    + +
    +
    + +
    +
    public static bool operator ==(BanRequest? left, BanRequest? right)
    +
    + +

    Parameters

    +
    +
    left BanRequest
    +
    +
    right BanRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + operator !=(BanRequest?, BanRequest?) + +

    + +
    +
    + +
    +
    public static bool operator !=(BanRequest? left, BanRequest? right)
    +
    + +

    Parameters

    +
    +
    left BanRequest
    +
    +
    right BanRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.DTOs.ChannelDto.html b/api/core/EchoHub.Core.DTOs.ChannelDto.html index fda9092..c98a492 100644 --- a/api/core/EchoHub.Core.DTOs.ChannelDto.html +++ b/api/core/EchoHub.Core.DTOs.ChannelDto.html @@ -182,8 +182,8 @@ Class ChannelDto -

    - ChannelDto(Guid, string, string?, int, DateTimeOffset) +

    + ChannelDto(Guid, string, string?, bool, int, DateTimeOffset)

    @@ -191,7 +191,7 @@ Class ChannelDto
    -
    public ChannelDto(Guid Id, string Name, string? Topic, int MessageCount, DateTimeOffset CreatedAt)
    +
    public ChannelDto(Guid Id, string Name, string? Topic, bool IsPublic, int MessageCount, DateTimeOffset CreatedAt)

    Parameters

    @@ -202,6 +202,8 @@ Class ChannelDto
    Topic string
    +
    IsPublic bool
    +
    MessageCount int
    CreatedAt DateTimeOffset
    @@ -316,6 +318,37 @@ Class ChannelDto + +

    + IsPublic + +

    + +
    +
    + +
    +
    public bool IsPublic { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + +

    @@ -415,8 +448,8 @@ Class ChannelDto -

    - Deconstruct(out Guid, out string, out string?, out int, out DateTimeOffset) +

    + Deconstruct(out Guid, out string, out string?, out bool, out int, out DateTimeOffset)

    @@ -424,7 +457,7 @@ Class ChannelDto
    -
    public void Deconstruct(out Guid Id, out string Name, out string? Topic, out int MessageCount, out DateTimeOffset CreatedAt)
    +
    public void Deconstruct(out Guid Id, out string Name, out string? Topic, out bool IsPublic, out int MessageCount, out DateTimeOffset CreatedAt)

    Parameters

    @@ -435,6 +468,8 @@ Class ChannelDto
    Topic string
    +
    IsPublic bool
    +
    MessageCount int
    CreatedAt DateTimeOffset
    diff --git a/api/core/EchoHub.Core.DTOs.CreateChannelRequest.html b/api/core/EchoHub.Core.DTOs.CreateChannelRequest.html index 6a54af8..cd145c7 100644 --- a/api/core/EchoHub.Core.DTOs.CreateChannelRequest.html +++ b/api/core/EchoHub.Core.DTOs.CreateChannelRequest.html @@ -182,8 +182,8 @@ Class CreateChannelRequest -

    - CreateChannelRequest(string, string?) +

    + CreateChannelRequest(string, string?, bool)

    @@ -191,7 +191,7 @@ Class CreateChannelRequest
    -
    public CreateChannelRequest(string Name, string? Topic = null)
    +
    public CreateChannelRequest(string Name, string? Topic = null, bool IsPublic = true)

    Parameters

    @@ -200,6 +200,8 @@ Class CreateChannelRequest
    string
    +
    IsPublic bool
    +
    @@ -248,6 +250,37 @@ Class CreateChannelRequest + +

    + IsPublic + +

    + +
    +
    + +
    +
    public bool IsPublic { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + +

    @@ -316,8 +349,8 @@ Class CreateChannelRequest -

    - Deconstruct(out string, out string?) +

    + Deconstruct(out string, out string?, out bool)

    @@ -325,7 +358,7 @@ Class CreateChannelRequest
    -
    public void Deconstruct(out string Name, out string? Topic)
    +
    public void Deconstruct(out string Name, out string? Topic, out bool IsPublic)

    Parameters

    @@ -334,6 +367,8 @@ Class CreateChannelRequest
    string
    +
    IsPublic bool
    +
    diff --git a/api/core/EchoHub.Core.DTOs.EmbedDto.html b/api/core/EchoHub.Core.DTOs.EmbedDto.html new file mode 100644 index 0000000..4ba3d03 --- /dev/null +++ b/api/core/EchoHub.Core.DTOs.EmbedDto.html @@ -0,0 +1,730 @@ + + + + + Class EmbedDto | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class EmbedDto +

    + +
    +
    Namespace
    EchoHub.Core.DTOs
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public record EmbedDto : IEquatable<EmbedDto>
    +
    + + + + +
    +
    Inheritance
    +
    + +
    EmbedDto
    +
    +
    + +
    +
    Implements
    +
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + EmbedDto(EmbedDto) + +

    + +
    +
    + +
    +
    protected EmbedDto(EmbedDto original)
    +
    + +

    Parameters

    +
    +
    original EmbedDto
    +
    +
    + + + + + + + + + + + + + + +

    + EmbedDto(string?, string?, string?, string?, string) + +

    + +
    +
    + +
    +
    public EmbedDto(string? SiteName, string? Title, string? Description, string? ImageAscii, string Url)
    +
    + +

    Parameters

    +
    +
    SiteName string
    +
    +
    Title string
    +
    +
    Description string
    +
    +
    ImageAscii string
    +
    +
    Url string
    +
    +
    + + + + + + + + + + + + +

    Properties +

    + + + + +

    + Description + +

    + +
    +
    + +
    +
    public string? Description { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    + EqualityContract + +

    + +
    +
    + +
    +
    protected virtual Type EqualityContract { get; }
    +
    + + + + + +

    Property Value

    +
    +
    Type
    +
    +
    + + + + + + + + + + +

    + ImageAscii + +

    + +
    +
    + +
    +
    public string? ImageAscii { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    + SiteName + +

    + +
    +
    + +
    +
    public string? SiteName { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    + Title + +

    + +
    +
    + +
    +
    public string? Title { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    + Url + +

    + +
    +
    + +
    +
    public string Url { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string?, out string?, out string?, out string?, out string) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string? SiteName, out string? Title, out string? Description, out string? ImageAscii, out string Url)
    +
    + +

    Parameters

    +
    +
    SiteName string
    +
    +
    Title string
    +
    +
    Description string
    +
    +
    ImageAscii string
    +
    +
    Url string
    +
    +
    + + + + + + + + + + + + + + +

    + Equals(EmbedDto?) + +

    + +
    +
    + +
    +
    public virtual bool Equals(EmbedDto? other)
    +
    + +

    Parameters

    +
    +
    other EmbedDto
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Equals(object?) + +

    + +
    +
    + +
    +
    public override bool Equals(object? obj)
    +
    + +

    Parameters

    +
    +
    obj object
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + GetHashCode() + +

    + +
    +
    + +
    +
    public override int GetHashCode()
    +
    + + +

    Returns

    +
    +
    int
    +
    +
    + + + + + + + + + + + + + +

    + PrintMembers(StringBuilder) + +

    + +
    +
    + +
    +
    protected virtual bool PrintMembers(StringBuilder builder)
    +
    + +

    Parameters

    +
    +
    builder StringBuilder
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + ToString() + +

    + +
    +
    + +
    +
    public override string ToString()
    +
    + + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + +

    Operators +

    + + + + +

    + operator ==(EmbedDto?, EmbedDto?) + +

    + +
    +
    + +
    +
    public static bool operator ==(EmbedDto? left, EmbedDto? right)
    +
    + +

    Parameters

    +
    +
    left EmbedDto
    +
    +
    right EmbedDto
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + operator !=(EmbedDto?, EmbedDto?) + +

    + +
    +
    + +
    +
    public static bool operator !=(EmbedDto? left, EmbedDto? right)
    +
    + +

    Parameters

    +
    +
    left EmbedDto
    +
    +
    right EmbedDto
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.DTOs.KickRequest.html b/api/core/EchoHub.Core.DTOs.KickRequest.html new file mode 100644 index 0000000..c2f5832 --- /dev/null +++ b/api/core/EchoHub.Core.DTOs.KickRequest.html @@ -0,0 +1,590 @@ + + + + + Class KickRequest | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class KickRequest +

    + +
    +
    Namespace
    EchoHub.Core.DTOs
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public record KickRequest : IEquatable<KickRequest>
    +
    + + + + +
    +
    Inheritance
    +
    + +
    KickRequest
    +
    +
    + +
    +
    Implements
    +
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + KickRequest(KickRequest) + +

    + +
    +
    + +
    +
    protected KickRequest(KickRequest original)
    +
    + +

    Parameters

    +
    +
    original KickRequest
    +
    +
    + + + + + + + + + + + + + + +

    + KickRequest(string?) + +

    + +
    +
    + +
    +
    public KickRequest(string? Reason = null)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    + + + + + + + + + + + + +

    Properties +

    + + + + +

    + EqualityContract + +

    + +
    +
    + +
    +
    protected virtual Type EqualityContract { get; }
    +
    + + + + + +

    Property Value

    +
    +
    Type
    +
    +
    + + + + + + + + + + +

    + Reason + +

    + +
    +
    + +
    +
    public string? Reason { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string?) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string? Reason)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    + + + + + + + + + + + + + + +

    + Equals(KickRequest?) + +

    + +
    +
    + +
    +
    public virtual bool Equals(KickRequest? other)
    +
    + +

    Parameters

    +
    +
    other KickRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Equals(object?) + +

    + +
    +
    + +
    +
    public override bool Equals(object? obj)
    +
    + +

    Parameters

    +
    +
    obj object
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + GetHashCode() + +

    + +
    +
    + +
    +
    public override int GetHashCode()
    +
    + + +

    Returns

    +
    +
    int
    +
    +
    + + + + + + + + + + + + + +

    + PrintMembers(StringBuilder) + +

    + +
    +
    + +
    +
    protected virtual bool PrintMembers(StringBuilder builder)
    +
    + +

    Parameters

    +
    +
    builder StringBuilder
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + ToString() + +

    + +
    +
    + +
    +
    public override string ToString()
    +
    + + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + +

    Operators +

    + + + + +

    + operator ==(KickRequest?, KickRequest?) + +

    + +
    +
    + +
    +
    public static bool operator ==(KickRequest? left, KickRequest? right)
    +
    + +

    Parameters

    +
    +
    left KickRequest
    +
    +
    right KickRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + operator !=(KickRequest?, KickRequest?) + +

    + +
    +
    + +
    +
    public static bool operator !=(KickRequest? left, KickRequest? right)
    +
    + +

    Parameters

    +
    +
    left KickRequest
    +
    +
    right KickRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.DTOs.MessageDto.html b/api/core/EchoHub.Core.DTOs.MessageDto.html index ad0c27e..3b3657f 100644 --- a/api/core/EchoHub.Core.DTOs.MessageDto.html +++ b/api/core/EchoHub.Core.DTOs.MessageDto.html @@ -182,8 +182,8 @@ Class MessageDto -

    - MessageDto(Guid, string, string, string?, string, MessageType, string?, string?, DateTimeOffset) +

    + MessageDto(Guid, string, string, string?, string, MessageType, string?, string?, DateTimeOffset, List<EmbedDto>?)

    @@ -191,7 +191,7 @@ Class MessageDto
    -
    public MessageDto(Guid Id, string Content, string SenderUsername, string? SenderNicknameColor, string ChannelName, MessageType Type, string? AttachmentUrl, string? AttachmentFileName, DateTimeOffset SentAt)
    +
    public MessageDto(Guid Id, string Content, string SenderUsername, string? SenderNicknameColor, string ChannelName, MessageType Type, string? AttachmentUrl, string? AttachmentFileName, DateTimeOffset SentAt, List<EmbedDto>? Embeds = null)

    Parameters

    @@ -214,6 +214,8 @@ Class MessageDto
    SentAt DateTimeOffset
    +
    Embeds List<EmbedDto>
    +
    @@ -355,6 +357,37 @@ Class MessageDto + +

    + Embeds + +

    + +
    +
    + +
    +
    public List<EmbedDto>? Embeds { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    List<EmbedDto>
    +
    +
    + + + + + + + +

    @@ -547,8 +580,8 @@ Class MessageDto -

    - Deconstruct(out Guid, out string, out string, out string?, out string, out MessageType, out string?, out string?, out DateTimeOffset) +

    + Deconstruct(out Guid, out string, out string, out string?, out string, out MessageType, out string?, out string?, out DateTimeOffset, out List<EmbedDto>?)

    @@ -556,7 +589,7 @@ Class MessageDto
    -
    public void Deconstruct(out Guid Id, out string Content, out string SenderUsername, out string? SenderNicknameColor, out string ChannelName, out MessageType Type, out string? AttachmentUrl, out string? AttachmentFileName, out DateTimeOffset SentAt)
    +
    public void Deconstruct(out Guid Id, out string Content, out string SenderUsername, out string? SenderNicknameColor, out string ChannelName, out MessageType Type, out string? AttachmentUrl, out string? AttachmentFileName, out DateTimeOffset SentAt, out List<EmbedDto>? Embeds)

    Parameters

    @@ -579,6 +612,8 @@ Class MessageDto
    SentAt DateTimeOffset
    +
    Embeds List<EmbedDto>
    +
    diff --git a/api/core/EchoHub.Core.DTOs.MuteRequest.html b/api/core/EchoHub.Core.DTOs.MuteRequest.html new file mode 100644 index 0000000..5d43231 --- /dev/null +++ b/api/core/EchoHub.Core.DTOs.MuteRequest.html @@ -0,0 +1,625 @@ + + + + + Class MuteRequest | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class MuteRequest +

    + +
    +
    Namespace
    EchoHub.Core.DTOs
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public record MuteRequest : IEquatable<MuteRequest>
    +
    + + + + +
    +
    Inheritance
    +
    + +
    MuteRequest
    +
    +
    + +
    +
    Implements
    +
    + +
    +
    + + +
    +
    Inherited Members
    +
    + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + MuteRequest(MuteRequest) + +

    + +
    +
    + +
    +
    protected MuteRequest(MuteRequest original)
    +
    + +

    Parameters

    +
    +
    original MuteRequest
    +
    +
    + + + + + + + + + + + + + + +

    + MuteRequest(string?, int?) + +

    + +
    +
    + +
    +
    public MuteRequest(string? Reason = null, int? DurationMinutes = null)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    DurationMinutes int?
    +
    +
    + + + + + + + + + + + + +

    Properties +

    + + + + +

    + DurationMinutes + +

    + +
    +
    + +
    +
    public int? DurationMinutes { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    int?
    +
    +
    + + + + + + + + + + +

    + EqualityContract + +

    + +
    +
    + +
    +
    protected virtual Type EqualityContract { get; }
    +
    + + + + + +

    Property Value

    +
    +
    Type
    +
    +
    + + + + + + + + + + +

    + Reason + +

    + +
    +
    + +
    +
    public string? Reason { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + + +

    Methods +

    + + + + +

    + Deconstruct(out string?, out int?) + +

    + +
    +
    + +
    +
    public void Deconstruct(out string? Reason, out int? DurationMinutes)
    +
    + +

    Parameters

    +
    +
    Reason string
    +
    +
    DurationMinutes int?
    +
    +
    + + + + + + + + + + + + + + +

    + Equals(MuteRequest?) + +

    + +
    +
    + +
    +
    public virtual bool Equals(MuteRequest? other)
    +
    + +

    Parameters

    +
    +
    other MuteRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + Equals(object?) + +

    + +
    +
    + +
    +
    public override bool Equals(object? obj)
    +
    + +

    Parameters

    +
    +
    obj object
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + GetHashCode() + +

    + +
    +
    + +
    +
    public override int GetHashCode()
    +
    + + +

    Returns

    +
    +
    int
    +
    +
    + + + + + + + + + + + + + +

    + PrintMembers(StringBuilder) + +

    + +
    +
    + +
    +
    protected virtual bool PrintMembers(StringBuilder builder)
    +
    + +

    Parameters

    +
    +
    builder StringBuilder
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + ToString() + +

    + +
    +
    + +
    +
    public override string ToString()
    +
    + + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + +

    Operators +

    + + + + +

    + operator ==(MuteRequest?, MuteRequest?) + +

    + +
    +
    + +
    +
    public static bool operator ==(MuteRequest? left, MuteRequest? right)
    +
    + +

    Parameters

    +
    +
    left MuteRequest
    +
    +
    right MuteRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + + +

    + operator !=(MuteRequest?, MuteRequest?) + +

    + +
    +
    + +
    +
    public static bool operator !=(MuteRequest? left, MuteRequest? right)
    +
    + +

    Parameters

    +
    +
    left MuteRequest
    +
    +
    right MuteRequest
    +
    +
    + +

    Returns

    +
    +
    bool
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.DTOs.UserPresenceDto.html b/api/core/EchoHub.Core.DTOs.UserPresenceDto.html index 44abd71..48b45c1 100644 --- a/api/core/EchoHub.Core.DTOs.UserPresenceDto.html +++ b/api/core/EchoHub.Core.DTOs.UserPresenceDto.html @@ -182,8 +182,8 @@ Class UserPresenceDto -

    - UserPresenceDto(string, string?, string?, UserStatus, string?) +

    + UserPresenceDto(string, string?, string?, UserStatus, string?, ServerRole)

    @@ -191,7 +191,7 @@ Class UserPresenceDto
    -
    public UserPresenceDto(string Username, string? DisplayName, string? NicknameColor, UserStatus Status, string? StatusMessage)
    +
    public UserPresenceDto(string Username, string? DisplayName, string? NicknameColor, UserStatus Status, string? StatusMessage, ServerRole Role)

    Parameters

    @@ -206,6 +206,8 @@ Class UserPresenceDto
    string
    +
    Role ServerRole
    +
    @@ -316,6 +318,37 @@ Class UserPresenceDto + +

    + Role + +

    + +
    +
    + +
    +
    public ServerRole Role { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    ServerRole
    +
    +
    + + + + + + + +

    @@ -415,8 +448,8 @@ Class UserPresenceDto -

    - Deconstruct(out string, out string?, out string?, out UserStatus, out string?) +

    + Deconstruct(out string, out string?, out string?, out UserStatus, out string?, out ServerRole)

    @@ -424,7 +457,7 @@ Class UserPresenceDto
    -
    public void Deconstruct(out string Username, out string? DisplayName, out string? NicknameColor, out UserStatus Status, out string? StatusMessage)
    +
    public void Deconstruct(out string Username, out string? DisplayName, out string? NicknameColor, out UserStatus Status, out string? StatusMessage, out ServerRole Role)

    Parameters

    @@ -439,6 +472,8 @@ Class UserPresenceDto
    string
    +
    Role ServerRole
    +
    diff --git a/api/core/EchoHub.Core.DTOs.UserProfileDto.html b/api/core/EchoHub.Core.DTOs.UserProfileDto.html index e742784..9e5faa5 100644 --- a/api/core/EchoHub.Core.DTOs.UserProfileDto.html +++ b/api/core/EchoHub.Core.DTOs.UserProfileDto.html @@ -182,8 +182,8 @@ Class UserProfileDto -

    - UserProfileDto(Guid, string, string?, string?, string?, string?, UserStatus, string?, DateTimeOffset, DateTimeOffset) +

    + UserProfileDto(Guid, string, string?, string?, string?, string?, UserStatus, string?, ServerRole, DateTimeOffset, DateTimeOffset)

    @@ -191,7 +191,7 @@ Class UserProfileDto
    -
    public UserProfileDto(Guid Id, string Username, string? DisplayName, string? Bio, string? NicknameColor, string? AvatarAscii, UserStatus Status, string? StatusMessage, DateTimeOffset CreatedAt, DateTimeOffset LastSeenAt)
    +
    public UserProfileDto(Guid Id, string Username, string? DisplayName, string? Bio, string? NicknameColor, string? AvatarAscii, UserStatus Status, string? StatusMessage, ServerRole Role, DateTimeOffset CreatedAt, DateTimeOffset LastSeenAt)

    Parameters

    @@ -212,6 +212,8 @@ Class UserProfileDto
    string
    +
    Role ServerRole
    +
    CreatedAt DateTimeOffset
    LastSeenAt DateTimeOffset
    @@ -481,6 +483,37 @@ Class UserProfileDto + +

    + Role + +

    + +
    +
    + +
    +
    public ServerRole Role { get; init; }
    +
    + + + + + +

    Property Value

    +
    +
    ServerRole
    +
    +
    + + + + + + + +

    @@ -580,8 +613,8 @@ Class UserProfileDto -

    - Deconstruct(out Guid, out string, out string?, out string?, out string?, out string?, out UserStatus, out string?, out DateTimeOffset, out DateTimeOffset) +

    + Deconstruct(out Guid, out string, out string?, out string?, out string?, out string?, out UserStatus, out string?, out ServerRole, out DateTimeOffset, out DateTimeOffset)

    @@ -589,7 +622,7 @@ Class UserProfileDto
    -
    public void Deconstruct(out Guid Id, out string Username, out string? DisplayName, out string? Bio, out string? NicknameColor, out string? AvatarAscii, out UserStatus Status, out string? StatusMessage, out DateTimeOffset CreatedAt, out DateTimeOffset LastSeenAt)
    +
    public void Deconstruct(out Guid Id, out string Username, out string? DisplayName, out string? Bio, out string? NicknameColor, out string? AvatarAscii, out UserStatus Status, out string? StatusMessage, out ServerRole Role, out DateTimeOffset CreatedAt, out DateTimeOffset LastSeenAt)

    Parameters

    @@ -610,6 +643,8 @@ Class UserProfileDto
    string
    +
    Role ServerRole
    +
    CreatedAt DateTimeOffset
    LastSeenAt DateTimeOffset
    diff --git a/api/core/EchoHub.Core.DTOs.html b/api/core/EchoHub.Core.DTOs.html index ba2658c..911af21 100644 --- a/api/core/EchoHub.Core.DTOs.html +++ b/api/core/EchoHub.Core.DTOs.html @@ -94,10 +94,18 @@

    Classes

    +
    +
    AssignRoleRequest
    +
    +
    AvatarUploadResponse
    +
    +
    BanRequest
    +
    +
    ChannelDto
    @@ -106,10 +114,18 @@ Classes
    CreateChannelRequest
    +
    +
    EmbedDto
    +
    +
    ErrorResponse
    +
    +
    KickRequest
    +
    +
    LoginRequest
    @@ -122,6 +138,10 @@ Classes
    MessageDto
    +
    +
    MuteRequest
    +
    +
    PaginatedResponse<T>
    diff --git a/api/core/EchoHub.Core.Models.Channel.html b/api/core/EchoHub.Core.Models.Channel.html index 9e28956..260046e 100644 --- a/api/core/EchoHub.Core.Models.Channel.html +++ b/api/core/EchoHub.Core.Models.Channel.html @@ -275,6 +275,37 @@ Class Channel + +

    + IsPublic + +

    + +
    +
    + +
    +
    public bool IsPublic { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + +

    diff --git a/api/core/EchoHub.Core.Models.ChannelMembership.html b/api/core/EchoHub.Core.Models.ChannelMembership.html new file mode 100644 index 0000000..4a41441 --- /dev/null +++ b/api/core/EchoHub.Core.Models.ChannelMembership.html @@ -0,0 +1,303 @@ + + + + + Class ChannelMembership | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class ChannelMembership +

    + +
    +
    Namespace
    EchoHub.Core.Models
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public class ChannelMembership
    +
    + + + + +
    +
    Inheritance
    +
    + +
    ChannelMembership
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + ChannelMembership() + +

    + +
    +
    + +
    +
    public ChannelMembership()
    +
    + + + + + + + + + + + + + +

    Properties +

    + + + + +

    + ChannelId + +

    + +
    +
    + +
    +
    public Guid ChannelId { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    Guid
    +
    +
    + + + + + + + + + + +

    + JoinedAt + +

    + +
    +
    + +
    +
    public DateTimeOffset JoinedAt { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    DateTimeOffset
    +
    +
    + + + + + + + + + + +

    + UserId + +

    + +
    +
    + +
    +
    public Guid UserId { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    Guid
    +
    +
    + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.Models.Message.html b/api/core/EchoHub.Core.Models.Message.html index 2579b68..f9550da 100644 --- a/api/core/EchoHub.Core.Models.Message.html +++ b/api/core/EchoHub.Core.Models.Message.html @@ -337,6 +337,37 @@ Class Message + +

    + EmbedJson + +

    + +
    +
    + +
    +
    public string? EmbedJson { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    string
    +
    +
    + + + + + + + +

    diff --git a/api/core/EchoHub.Core.Models.ServerRole.html b/api/core/EchoHub.Core.Models.ServerRole.html new file mode 100644 index 0000000..56572f8 --- /dev/null +++ b/api/core/EchoHub.Core.Models.ServerRole.html @@ -0,0 +1,159 @@ + + + + + Enum ServerRole | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + + +

    +Enum ServerRole +

    + +
    +
    Namespace
    EchoHub.Core.Models
    +
    Assembly
    EchoHub.Core.dll
    +
    + +
    +
    + +
    +
    public enum ServerRole
    +
    + + + + + + + + + +

    Fields +

    +
    +
    Admin = 2
    + +
    +
    Member = 0
    + +
    +
    Mod = 1
    + +
    +
    Owner = 3
    + +
    +
    + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/core/EchoHub.Core.Models.User.html b/api/core/EchoHub.Core.Models.User.html index b800361..edf4618 100644 --- a/api/core/EchoHub.Core.Models.User.html +++ b/api/core/EchoHub.Core.Models.User.html @@ -337,6 +337,68 @@ Class User + +

    + IsBanned + +

    + +
    +
    + +
    +
    public bool IsBanned { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + + + + +

    + IsMuted + +

    + +
    +
    + +
    +
    public bool IsMuted { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    bool
    +
    +
    + + + + + + + +

    @@ -368,6 +430,37 @@ Class User + +

    + MutedUntil + +

    + +
    +
    + +
    +
    public DateTimeOffset? MutedUntil { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    DateTimeOffset?
    +
    +
    + + + + + + + +

    @@ -430,6 +523,37 @@ Class User + +

    + Role + +

    + +
    +
    + +
    +
    public ServerRole Role { get; set; }
    +
    + + + + + +

    Property Value

    +
    +
    ServerRole
    +
    +
    + + + + + + + +

    diff --git a/api/core/EchoHub.Core.Models.html b/api/core/EchoHub.Core.Models.html index 3733426..825affc 100644 --- a/api/core/EchoHub.Core.Models.html +++ b/api/core/EchoHub.Core.Models.html @@ -98,6 +98,10 @@ Classes
    Channel

    +
    +
    ChannelMembership
    +
    +
    Message
    @@ -117,6 +121,10 @@ Enums
    MessageType
    +
    +
    ServerRole
    +
    +
    UserStatus
    diff --git a/api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html b/api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html index edb3a92..8b94bfd 100644 --- a/api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html +++ b/api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html @@ -193,6 +193,80 @@ Class IrcBroadcaster + +

    + ForceDisconnectUserAsync(List<string>, string) + +

    + +
    +
    + +
    +
    public Task ForceDisconnectUserAsync(List<string> connectionIds, string reason)
    +
    + +

    Parameters

    +
    +
    connectionIds List<string>
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + SendChannelNukedAsync(string) + +

    + +
    +
    + +
    +
    public Task SendChannelNukedAsync(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -269,6 +343,44 @@ Class IrcBroadcaster + +

    + SendMessageDeletedAsync(string, Guid) + +

    + +
    +
    + +
    +
    public Task SendMessageDeletedAsync(string channelName, Guid messageId)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -307,6 +419,44 @@ Class IrcBroadcaster + +

    + SendUserBannedAsync(string, string?) + +

    + +
    +
    + +
    +
    public Task SendUserBannedAsync(string username, string? reason)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -347,6 +497,46 @@ Class IrcBroadcaster + +

    + SendUserKickedAsync(string, string, string?) + +

    + +
    +
    + +
    +
    public Task SendUserKickedAsync(string channelName, string username, string? reason)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    diff --git a/api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html b/api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html index 189070e..cdb5f13 100644 --- a/api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html +++ b/api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html @@ -297,6 +297,37 @@ Class IrcGatewayService + +

    + GetAllConnections() + +

    + +
    +
    + +
    +
    public IEnumerable<IrcClientConnection> GetAllConnections()
    +
    + + +

    Returns

    +
    +
    IEnumerable<IrcClientConnection>
    +
    +
    + + + + + + + + + + +

    diff --git a/api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html b/api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html index d07d222..03a4612 100644 --- a/api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html +++ b/api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html @@ -152,6 +152,44 @@ Class IrcMessageFormatter + +

    + ColorTagsToAnsi(string) + +

    + +

    Convert printable color tags ({F:RRGGBB}, {B:RRGGBB}, {X}) to ANSI escape codes for IRC clients. +Also passes through content that already uses ANSI codes unchanged.

    +
    +
    + +
    +
    public static string ColorTagsToAnsi(string text)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + +

    diff --git a/api/server/EchoHub.Server.Controllers.ChannelsController.html b/api/server/EchoHub.Server.Controllers.ChannelsController.html index eb00339..112b2d8 100644 --- a/api/server/EchoHub.Server.Controllers.ChannelsController.html +++ b/api/server/EchoHub.Server.Controllers.ChannelsController.html @@ -315,8 +315,8 @@ public Task<IActionResult> GetChannels(int offset = 0, int limit = 50) -

    - SendUrl(string, SendUrlRequest) +

    + SendUrl(string, SendUrlRequest, string?)

    @@ -326,7 +326,7 @@ public Task<IActionResult> GetChannels(int offset = 0, int limit = 50)
    [HttpPost("{channel}/send-url")]
     [EnableRateLimiting("upload")]
    -public Task<IActionResult> SendUrl(string channel, SendUrlRequest request)
    +public Task<IActionResult> SendUrl(string channel, SendUrlRequest request, string? size = null)

    Parameters

    @@ -335,6 +335,8 @@ public Task<IActionResult> SendUrl(string channel, SendUrlRequest request)
    request SendUrlRequest
    +
    size string
    +

    Returns

    @@ -394,8 +396,8 @@ public Task<IActionResult> UpdateTopic(string channel, UpdateTopicRequest -

    - Upload(string) +

    + Upload(string, string?)

    @@ -405,13 +407,15 @@ public Task<IActionResult> UpdateTopic(string channel, UpdateTopicRequest
    [HttpPost("{channel}/upload")]
     [EnableRateLimiting("upload")]
    -public Task<IActionResult> Upload(string channel)
    +public Task<IActionResult> Upload(string channel, string? size = null)

    Parameters

    channel string
    +
    size string
    +

    Returns

    diff --git a/api/server/EchoHub.Server.Controllers.ModerationController.html b/api/server/EchoHub.Server.Controllers.ModerationController.html new file mode 100644 index 0000000..682f33a --- /dev/null +++ b/api/server/EchoHub.Server.Controllers.ModerationController.html @@ -0,0 +1,528 @@ + + + + + Class ModerationController | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class ModerationController +

    + +
    +
    Namespace
    EchoHub.Server.Controllers
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    [ApiController]
    +[Route("api/moderation")]
    +[Authorize]
    +[EnableRateLimiting("general")]
    +public class ModerationController : ControllerBase
    +
    + + + + +
    +
    Inheritance
    +
    + +
    ControllerBase
    +
    ModerationController
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + ModerationController(EchoHubDbContext, IChatService, PresenceTracker, IEnumerable<IChatBroadcaster>) + +

    + +
    +
    + +
    +
    public ModerationController(EchoHubDbContext db, IChatService chatService, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters)
    +
    + +

    Parameters

    +
    +
    db EchoHubDbContext
    +
    +
    chatService IChatService
    +
    +
    presenceTracker PresenceTracker
    +
    +
    broadcasters IEnumerable<IChatBroadcaster>
    +
    +
    + + + + + + + + + + + + +

    Methods +

    + + + + +

    + AssignRole(AssignRoleRequest) + +

    + +
    +
    + +
    +
    [HttpPost("role")]
    +public Task<IActionResult> AssignRole(AssignRoleRequest request)
    +
    + +

    Parameters

    +
    +
    request AssignRoleRequest
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + BanUser(string, BanRequest?) + +

    + +
    +
    + +
    +
    [HttpPost("ban/{username}")]
    +public Task<IActionResult> BanUser(string username, BanRequest? request = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    request BanRequest
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + DeleteMessage(Guid) + +

    + +
    +
    + +
    +
    [HttpDelete("messages/{messageId:guid}")]
    +public Task<IActionResult> DeleteMessage(Guid messageId)
    +
    + +

    Parameters

    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + KickUser(string, KickRequest?) + +

    + +
    +
    + +
    +
    [HttpPost("kick/{username}")]
    +public Task<IActionResult> KickUser(string username, KickRequest? request = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    request KickRequest
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + MuteUser(string, MuteRequest?) + +

    + +
    +
    + +
    +
    [HttpPost("mute/{username}")]
    +public Task<IActionResult> MuteUser(string username, MuteRequest? request = null)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    request MuteRequest
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + NukeChannel(string) + +

    + +
    +
    + +
    +
    [HttpDelete("channels/{channel}/nuke")]
    +public Task<IActionResult> NukeChannel(string channel)
    +
    + +

    Parameters

    +
    +
    channel string
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + UnbanUser(string) + +

    + +
    +
    + +
    +
    [HttpPost("unban/{username}")]
    +public Task<IActionResult> UnbanUser(string username)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + + +

    + UnmuteUser(string) + +

    + +
    +
    + +
    +
    [HttpPost("unmute/{username}")]
    +public Task<IActionResult> UnmuteUser(string username)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    + +

    Returns

    +
    +
    Task<IActionResult>
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Controllers.html b/api/server/EchoHub.Server.Controllers.html index 7fcffae..5a92415 100644 --- a/api/server/EchoHub.Server.Controllers.html +++ b/api/server/EchoHub.Server.Controllers.html @@ -106,6 +106,10 @@ Classes
    FilesController
    +
    +
    ModerationController
    +
    +
    ServerController
    diff --git a/api/server/EchoHub.Server.Data.EchoHubDbContext.html b/api/server/EchoHub.Server.Data.EchoHubDbContext.html index 47a5c40..c009b80 100644 --- a/api/server/EchoHub.Server.Data.EchoHubDbContext.html +++ b/api/server/EchoHub.Server.Data.EchoHubDbContext.html @@ -195,6 +195,37 @@ Class EchoHubDbContext + +

    + ChannelMemberships + +

    + +
    +
    + +
    +
    public DbSet<ChannelMembership> ChannelMemberships { get; }
    +
    + + + + + +

    Property Value

    +
    +
    DbSet<ChannelMembership>
    +
    +
    + + + + + + + +

    diff --git a/api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html b/api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html new file mode 100644 index 0000000..8b5d914 --- /dev/null +++ b/api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html @@ -0,0 +1,306 @@ + + + + + Class AddChannelIsPublic | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class AddChannelIsPublic +

    + +
    +
    Namespace
    EchoHub.Server.Data.Migrations
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    [DbContext(typeof(EchoHubDbContext))]
    +[Migration("20260219172834_AddChannelIsPublic")]
    +public class AddChannelIsPublic : Migration
    +
    + + + + +
    +
    Inheritance
    +
    + +
    Migration
    +
    AddChannelIsPublic
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + AddChannelIsPublic() + +

    + +
    +
    + +
    +
    public AddChannelIsPublic()
    +
    + + + + + + + + + + + + + +

    Methods +

    + + + + +

    + BuildTargetModel(ModelBuilder) + +

    + +
    +
    + +
    +
    protected override void BuildTargetModel(ModelBuilder modelBuilder)
    +
    + +

    Parameters

    +
    +
    modelBuilder ModelBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Down(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Down(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Up(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Up(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html b/api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html new file mode 100644 index 0000000..f5532ee --- /dev/null +++ b/api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html @@ -0,0 +1,306 @@ + + + + + Class AddChannelMembership | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class AddChannelMembership +

    + +
    +
    Namespace
    EchoHub.Server.Data.Migrations
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    [DbContext(typeof(EchoHubDbContext))]
    +[Migration("20260219181720_AddChannelMembership")]
    +public class AddChannelMembership : Migration
    +
    + + + + +
    +
    Inheritance
    +
    + +
    Migration
    +
    AddChannelMembership
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + AddChannelMembership() + +

    + +
    +
    + +
    +
    public AddChannelMembership()
    +
    + + + + + + + + + + + + + +

    Methods +

    + + + + +

    + BuildTargetModel(ModelBuilder) + +

    + +
    +
    + +
    +
    protected override void BuildTargetModel(ModelBuilder modelBuilder)
    +
    + +

    Parameters

    +
    +
    modelBuilder ModelBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Down(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Down(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Up(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Up(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html b/api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html new file mode 100644 index 0000000..0a1569e --- /dev/null +++ b/api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html @@ -0,0 +1,306 @@ + + + + + Class AddMessageEmbed | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class AddMessageEmbed +

    + +
    +
    Namespace
    EchoHub.Server.Data.Migrations
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    [DbContext(typeof(EchoHubDbContext))]
    +[Migration("20260219201704_AddMessageEmbed")]
    +public class AddMessageEmbed : Migration
    +
    + + + + +
    +
    Inheritance
    +
    + +
    Migration
    +
    AddMessageEmbed
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + AddMessageEmbed() + +

    + +
    +
    + +
    +
    public AddMessageEmbed()
    +
    + + + + + + + + + + + + + +

    Methods +

    + + + + +

    + BuildTargetModel(ModelBuilder) + +

    + +
    +
    + +
    +
    protected override void BuildTargetModel(ModelBuilder modelBuilder)
    +
    + +

    Parameters

    +
    +
    modelBuilder ModelBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Down(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Down(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Up(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Up(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html b/api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html new file mode 100644 index 0000000..5bc044e --- /dev/null +++ b/api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html @@ -0,0 +1,306 @@ + + + + + Class AddModerationRoles | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class AddModerationRoles +

    + +
    +
    Namespace
    EchoHub.Server.Data.Migrations
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    [DbContext(typeof(EchoHubDbContext))]
    +[Migration("20260219162414_AddModerationRoles")]
    +public class AddModerationRoles : Migration
    +
    + + + + +
    +
    Inheritance
    +
    + +
    Migration
    +
    AddModerationRoles
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + AddModerationRoles() + +

    + +
    +
    + +
    +
    public AddModerationRoles()
    +
    + + + + + + + + + + + + + +

    Methods +

    + + + + +

    + BuildTargetModel(ModelBuilder) + +

    + +
    +
    + +
    +
    protected override void BuildTargetModel(ModelBuilder modelBuilder)
    +
    + +

    Parameters

    +
    +
    modelBuilder ModelBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Down(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Down(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + + +

    + Up(MigrationBuilder) + +

    + +
    +
    + +
    +
    protected override void Up(MigrationBuilder migrationBuilder)
    +
    + +

    Parameters

    +
    +
    migrationBuilder MigrationBuilder
    +
    +
    + + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Data.Migrations.html b/api/server/EchoHub.Server.Data.Migrations.html index bfe1343..9f757d7 100644 --- a/api/server/EchoHub.Server.Data.Migrations.html +++ b/api/server/EchoHub.Server.Data.Migrations.html @@ -94,6 +94,22 @@

    Classes

    +
    +
    AddChannelIsPublic
    +
    +
    +
    +
    AddChannelMembership
    +
    +
    +
    +
    AddMessageEmbed
    +
    +
    +
    +
    AddModerationRoles
    +
    +
    InitialCreate
    diff --git a/api/server/EchoHub.Server.Hubs.ChatHub.html b/api/server/EchoHub.Server.Hubs.ChatHub.html index ce30e7e..06c360f 100644 --- a/api/server/EchoHub.Server.Hubs.ChatHub.html +++ b/api/server/EchoHub.Server.Hubs.ChatHub.html @@ -209,7 +209,7 @@ public class ChatHub : Hub<IEchoHubClient>, IDisposable
    -
    public Task<List<MessageDto>> GetChannelHistory(string channelName, int count = 50)
    +
    public Task<List<MessageDto>> GetChannelHistory(string channelName, int count = 100)

    Parameters

    diff --git a/api/server/EchoHub.Server.Services.ChatService.html b/api/server/EchoHub.Server.Services.ChatService.html index 1b6dd74..c9ad965 100644 --- a/api/server/EchoHub.Server.Services.ChatService.html +++ b/api/server/EchoHub.Server.Services.ChatService.html @@ -160,8 +160,8 @@ Class ChatService -

    - ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable<IChatBroadcaster>, ILogger<ChatService>) +

    + ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable<IChatBroadcaster>, LinkEmbedService, ILogger<ChatService>)

    @@ -169,7 +169,7 @@ Class ChatService
    -
    public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters, ILogger<ChatService> logger)
    +
    public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters, LinkEmbedService embedService, ILogger<ChatService> logger)

    Parameters

    @@ -180,6 +180,8 @@ Class ChatService
    broadcasters IEnumerable<IChatBroadcaster>
    +
    embedService LinkEmbedService
    +
    logger ILogger<ChatService>
    diff --git a/api/server/EchoHub.Server.Services.ImageToAsciiService.html b/api/server/EchoHub.Server.Services.ImageToAsciiService.html index a2ed735..88a920c 100644 --- a/api/server/EchoHub.Server.Services.ImageToAsciiService.html +++ b/api/server/EchoHub.Server.Services.ImageToAsciiService.html @@ -189,11 +189,16 @@ Class ImageToAsciiService -
    +

    Converts an image to ASCII art using half-block characters (▀▄█) with +printable color tags for 2x vertical resolution. +Each character cell represents two vertical pixels. +Format: {F:RRGGBB} foreground, {B:RRGGBB} background, {X} reset. +Uses only printable ASCII — no terminal escape bytes.

    +
    -
    public string ConvertToAscii(Stream imageStream, int width = 80, int height = 40)
    +
    public string ConvertToAscii(Stream imageStream, int width = 80, int height = 80)

    Parameters

    @@ -222,6 +227,44 @@ Class ImageToAsciiService + +

    + GetDimensions(string?) + +

    + +

    Returns (width, height) dimensions for the given size code. +s = small (40x40), m = medium/default (80x80), l = large (120x120).

    +
    +
    + +
    +
    public static (int Width, int Height) GetDimensions(string? size)
    +
    + +

    Parameters

    +
    +
    size string
    +
    +
    + +

    Returns

    +
    +
    (int Width, int Height)
    +
    +
    + + + + + + + + + + + diff --git a/api/server/EchoHub.Server.Services.LinkEmbedService.html b/api/server/EchoHub.Server.Services.LinkEmbedService.html new file mode 100644 index 0000000..3c29687 --- /dev/null +++ b/api/server/EchoHub.Server.Services.LinkEmbedService.html @@ -0,0 +1,256 @@ + + + + + Class LinkEmbedService | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class LinkEmbedService +

    + +
    +
    Namespace
    EchoHub.Server.Services
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    public class LinkEmbedService
    +
    + + + + +
    +
    Inheritance
    +
    + +
    LinkEmbedService
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Constructors +

    + + + + +

    + LinkEmbedService(IHttpClientFactory, ILogger<LinkEmbedService>) + +

    + +
    +
    + +
    +
    public LinkEmbedService(IHttpClientFactory httpClientFactory, ILogger<LinkEmbedService> logger)
    +
    + +

    Parameters

    +
    +
    httpClientFactory IHttpClientFactory
    +
    +
    logger ILogger<LinkEmbedService>
    +
    +
    + + + + + + + + + + + + +

    Methods +

    + + + + +

    + TryGetEmbedsAsync(string) + +

    + +

    Detect all URLs in message content and attempt to fetch OG embed data for each. +Returns null if no URLs found or all fetches fail. +Never throws — all errors are caught internally.

    +
    +
    + +
    +
    public Task<List<EmbedDto>?> TryGetEmbedsAsync(string content)
    +
    + +

    Parameters

    +
    +
    content string
    +
    +
    + +

    Returns

    +
    +
    Task<List<EmbedDto>>
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Services.PresenceTracker.html b/api/server/EchoHub.Server.Services.PresenceTracker.html index 8db84ef..ef7efd2 100644 --- a/api/server/EchoHub.Server.Services.PresenceTracker.html +++ b/api/server/EchoHub.Server.Services.PresenceTracker.html @@ -182,6 +182,44 @@ Class PresenceTracker + +

    + ForceRemoveUser(string) + +

    + +

    Forcibly remove a user from all tracking. Returns their connection IDs and channels +so the caller can broadcast departures and force-disconnect connections.

    +
    +
    + +
    +
    public (List<string> ConnectionIds, List<string> Channels) ForceRemoveUser(string username)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    + +

    Returns

    +
    +
    (List<string> ConnectionIds, List<string> Channels)
    +
    +
    + + + + + + + + + + +

    diff --git a/api/server/EchoHub.Server.Services.SignalRBroadcaster.html b/api/server/EchoHub.Server.Services.SignalRBroadcaster.html index 5258dc2..5845cfc 100644 --- a/api/server/EchoHub.Server.Services.SignalRBroadcaster.html +++ b/api/server/EchoHub.Server.Services.SignalRBroadcaster.html @@ -195,6 +195,80 @@ Class SignalRBroadcaster + +

    + ForceDisconnectUserAsync(List<string>, string) + +

    + +
    +
    + +
    +
    public Task ForceDisconnectUserAsync(List<string> connectionIds, string reason)
    +
    + +

    Parameters

    +
    +
    connectionIds List<string>
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + + +

    + SendChannelNukedAsync(string) + +

    + +
    +
    + +
    +
    public Task SendChannelNukedAsync(string channelName)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -271,6 +345,44 @@ Class SignalRBroadcaster + +

    + SendMessageDeletedAsync(string, Guid) + +

    + +
    +
    + +
    +
    public Task SendMessageDeletedAsync(string channelName, Guid messageId)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    messageId Guid
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -309,6 +421,44 @@ Class SignalRBroadcaster + +

    + SendUserBannedAsync(string, string?) + +

    + +
    +
    + +
    +
    public Task SendUserBannedAsync(string username, string? reason)
    +
    + +

    Parameters

    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    @@ -349,6 +499,46 @@ Class SignalRBroadcaster + +

    + SendUserKickedAsync(string, string, string?) + +

    + +
    +
    + +
    +
    public Task SendUserKickedAsync(string channelName, string username, string? reason)
    +
    + +

    Parameters

    +
    +
    channelName string
    +
    +
    username string
    +
    +
    reason string
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + +

    diff --git a/api/server/EchoHub.Server.Services.html b/api/server/EchoHub.Server.Services.html index 8f237df..4829c60 100644 --- a/api/server/EchoHub.Server.Services.html +++ b/api/server/EchoHub.Server.Services.html @@ -110,6 +110,10 @@ Classes
    ImageToAsciiService

    +
    +
    LinkEmbedService
    +
    +
    PresenceTracker
    diff --git a/api/server/EchoHub.Server.Setup.DataMigrationService.html b/api/server/EchoHub.Server.Setup.DataMigrationService.html new file mode 100644 index 0000000..df3300d --- /dev/null +++ b/api/server/EchoHub.Server.Setup.DataMigrationService.html @@ -0,0 +1,254 @@ + + + + + Class DataMigrationService | EchoHub Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    + + + +

    +Class DataMigrationService +

    + +
    +
    Namespace
    EchoHub.Server.Setup
    +
    Assembly
    EchoHub.Server.dll
    +
    + +
    +
    + +
    +
    public static class DataMigrationService
    +
    + + + + +
    +
    Inheritance
    +
    + +
    DataMigrationService
    +
    +
    + + + +
    +
    Inherited Members
    +
    + + + + + + + +
    + + + + + + +

    Methods +

    + + + + +

    + AnsiToColorTags(string) + +

    + +

    Convert ANSI escape codes to printable color tags. +\x1b[38;2;R;G;Bm → {F:RRGGBB}, \x1b[48;2;R;G;Bm → {B:RRGGBB}, \x1b[0m → {X}

    +
    +
    + +
    +
    public static string AnsiToColorTags(string text)
    +
    + +

    Parameters

    +
    +
    text string
    +
    +
    + +

    Returns

    +
    +
    string
    +
    +
    + + + + + + + + + + + + + +

    + RunAsync(IServiceProvider) + +

    + +
    +
    + +
    +
    public static Task RunAsync(IServiceProvider services)
    +
    + +

    Parameters

    +
    +
    services IServiceProvider
    +
    +
    + +

    Returns

    +
    +
    Task
    +
    +
    + + + + + + + + + + + + +
    + + + + +
    + +
    + +
    +
    + +
    + + + + diff --git a/api/server/EchoHub.Server.Setup.html b/api/server/EchoHub.Server.Setup.html index 5db4eef..b8e5b21 100644 --- a/api/server/EchoHub.Server.Setup.html +++ b/api/server/EchoHub.Server.Setup.html @@ -94,6 +94,10 @@

    Classes

    +
    +
    DataMigrationService
    +
    +
    DatabaseSetup
    diff --git a/api/toc.html b/api/toc.html index ba55cc0..d5f30da 100644 --- a/api/toc.html +++ b/api/toc.html @@ -62,6 +62,9 @@
  • ConfigManager
  • +
  • + NotificationConfig +
  • SavedServer
  • @@ -78,6 +81,12 @@
  • EchoHubConnection
  • +
  • + NotificationSoundService +
  • +
  • + UpdateChecker +
  • @@ -101,6 +110,9 @@ EchoHub.Client.UI
  • @@ -205,18 +223,30 @@ EchoHub.Core.DTOs