mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 23:34:10 +02:00
feat: Implement end-to-end encryption for channels
- Added EncryptionSalt and WrappedRoomKey properties to Channel model. - Introduced RoomCrypto class for client-side encryption and decryption. - Updated ChannelService to handle encrypted channels, including creation and rekeying. - Modified ChannelsController to expose crypto metadata and rekey functionality. - Enhanced IrcCommandHandler to block joining encrypted channels over IRC. - Updated database schema with migration for new encryption fields. - Refactored file validation and image processing services to accommodate encrypted channels. - Added unit tests for RoomCrypto functionality and updated existing tests for channel services.
This commit is contained in:
@@ -255,6 +255,22 @@ public sealed class ChatMessageManager
|
||||
lines.Add(new ChatLine($" {trimmed}"));
|
||||
}
|
||||
}
|
||||
|
||||
// Clickable action to download the original image below the ASCII art
|
||||
if (message.AttachmentUrl is not null)
|
||||
{
|
||||
var imageName = message.AttachmentFileName ?? "image";
|
||||
var imageSize = FormatFileSize(message.AttachmentFileSize);
|
||||
var saveLine = new ChatLine(new List<ChatSegment>
|
||||
{
|
||||
new(" ", null),
|
||||
new($"[↓ save original] {imageName} [{imageSize}]", ChatColors.FileAttr),
|
||||
});
|
||||
saveLine.AttachmentUrl = message.AttachmentUrl;
|
||||
saveLine.AttachmentFileName = imageName;
|
||||
saveLine.Type = MessageType.Image;
|
||||
lines.Add(saveLine);
|
||||
}
|
||||
break;
|
||||
|
||||
case MessageType.Audio:
|
||||
|
||||
Reference in New Issue
Block a user