diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-06-13 09:12:14 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-06-13 09:12:14 -0400 |
| commit | dc43b4c55db696304a4045705cb772409f0a67a6 (patch) | |
| tree | 0c474c9455ba7ec6c9b32c8ae5e701d08b49446c /web/revolt/websocket.go | |
| parent | 0ef92708d95d1b3c741a26d5680c9590cf4b97e0 (diff) | |
| download | x-dc43b4c55db696304a4045705cb772409f0a67a6.tar.xz x-dc43b4c55db696304a4045705cb772409f0a67a6.zip | |
web/revolt: thread contexts through, masquerade support
Also start working on integrating ln into the stack
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'web/revolt/websocket.go')
| -rw-r--r-- | web/revolt/websocket.go | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/web/revolt/websocket.go b/web/revolt/websocket.go index 44bf798..c534d45 100644 --- a/web/revolt/websocket.go +++ b/web/revolt/websocket.go @@ -92,7 +92,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { User string `json:"user"` } - ctx = opname.With(ctx, "handleEvents") + ctx = opname.With(ctx, "handleEvents."+rawData.Type) switch rawData.Type { case "Pong", "Authenticated": // ignore these messages @@ -103,7 +103,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { // onReady event if c.OnReadyFunctions != nil { for _, i := range c.OnReadyFunctions { - i() + i(ctx) } } case "Message": @@ -116,7 +116,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnMessageFunctions { - i(msgData) + i(ctx, msgData) } case "MessageAppend": data := struct{ @@ -129,6 +129,10 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { ln.Error(ctx, err, ln.F{"type": rawData.Type}) fmt.Printf("Unexcepted Error: %s", err) } + + for _, i := range c.OnMessageAppendFunctions { + i(ctx, data.ChannelId, data.MessageId, data.Append) + } case "MessageUpdate": // Message update event. data := &struct { @@ -142,7 +146,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnMessageUpdateFunctions { - i(data.ChannelId, data.MessageId, data.Payload) + i(ctx, data.ChannelId, data.MessageId, data.Payload) } case "MessageDelete": // Message delete event. @@ -153,7 +157,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnMessageDeleteFunctions { - i(data.Channel, data.ID) + i(ctx, data.Channel, data.ID) } case "ChannelCreate": // Channel create event. @@ -165,7 +169,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnChannelCreateFunctions { - i(channelData) + i(ctx, channelData) } case "ChannelUpdate": // Channel update event. @@ -180,7 +184,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnChannelUpdateFunctions { - i(data.ChannelId, data.Clear, data.Payload) + i(ctx, data.ChannelId, data.Clear, data.Payload) } case "ChannelDelete": // Channel delete event. @@ -191,7 +195,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnChannelDeleteFunctions { - i(data.ID) + i(ctx, data.ID) } case "GroupCreate": // Group channel create event. @@ -203,7 +207,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnGroupCreateFunctions { - i(groupChannelData) + i(ctx, groupChannelData) } case "GroupMemeberAdded": // Group member added event. @@ -214,7 +218,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnGroupMemberAddedFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } case "GroupMemberRemoved": // Group member removed event. @@ -225,7 +229,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnGroupMemberRemovedFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } case "ChannelStartTyping": // Channel start typing event. @@ -236,7 +240,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnChannelStartTypingFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } case "ChannelStopTyping": // Channel stop typing event. @@ -247,7 +251,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnChannelStopTypingFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } case "ServerCreate": // Server create event. @@ -259,7 +263,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerCreateFunctions { - i(serverData) + i(ctx, serverData) } case "ServerUpdate": // Server update event. @@ -274,7 +278,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerUpdateFunctions { - i(data.ServerId, data.Clear, data.Payload) + i(ctx, data.ServerId, data.Clear, data.Payload) } case "ServerDelete": // Server delete event. @@ -285,7 +289,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerDeleteFunctions { - i(data.ID) + i(ctx, data.ID) } case "ServerMemberUpdate": // Member update event. @@ -300,7 +304,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerMemberUpdateFunctions { - i(data.ServerId, data.Clear, data.Payload) + i(ctx, data.ServerId, data.Clear, data.Payload) } case "ServerMemberJoin": // Member join event. @@ -311,7 +315,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerMemberJoinFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } case "ServerMemberLeave": // Member left event. @@ -322,14 +326,14 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { } for _, i := range c.OnServerMemberLeaveFunctions { - i(data.ID, data.User) + i(ctx, data.ID, data.User) } default: log.Printf("unknown event %s", rawData.Type) // Unknown event. if c.OnUnknownEventFunctions != nil { for _, i := range c.OnUnknownEventFunctions { - i(message) + i(ctx, message) } } } |
