From 8024722bd5db50bc3ec602b807819a87bd65035e Mon Sep 17 00:00:00 2001 From: raven Date: Tue, 10 Feb 2026 17:22:58 -0600 Subject: channel read status --- server/channel/command.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'server/channel/command.go') diff --git a/server/channel/command.go b/server/channel/command.go index 92ae2cc..23acccb 100644 --- a/server/channel/command.go +++ b/server/channel/command.go @@ -260,6 +260,26 @@ func (c *Channel) SendRequest(r session.Request) { r.ReplyInvalid() } + case "read": + if len(r.Cmd.Args) != 0 { + r.ReplyInvalid() + return + } + if !c.GetMembership(r.From.UserId).See { + r.Reply(proto.Fail{"forbidden", "", nil}.Cmd()) + return + } + c.SetRead(r.From.UserId) + + u := c.kind.world.GetObject(r.From.UserId).(*user.User) + for s := range u.PrivateStream.Subscribers { + if s != r.From { + s.Event(proto.NewCmd("read", c.id)) + } + } + + r.ReplyOk() + default: r.ReplyInvalid() } -- cgit v1.2.3