From 82902e9dc3ad67c49e4f9381b83d38a659efa083 Mon Sep 17 00:00:00 2001 From: bt Date: Sat, 16 May 2026 19:15:21 +0200 Subject: Add history reading --- server/user.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'server') diff --git a/server/user.go b/server/user.go index 002ed89..6b0e946 100644 --- a/server/user.go +++ b/server/user.go @@ -118,6 +118,8 @@ func (s *Server) handleUserPayload(user *User, sender net.Conn, payload any) err return s.handleMessage(sender, core.ConnTypeUser, v) case core.Usermode: return s.handleUsermode(user, sender, v) + case core.History: + return s.handleHistory(user, sender, v) default: return core.ErrUnexpectedPayloadType } @@ -151,3 +153,24 @@ func (s *Server) handleUsermode(user *User, conn net.Conn, mode core.Usermode) e return nil } + +func (s *Server) handleHistory(user *User, conn net.Conn, hist core.History) error { + // TODO: Add permissions check + + messages, err := s.Storage.Read(hist.Channel, hist.Since, int(hist.Count), int(hist.Offset)) + if err != nil { + return err + } + + for _, m := range messages { + data, err := core.Encode(m) + if err != nil { + return err + } + if _, err := conn.Write(data); err != nil { + return err + } + } + + return nil +} -- cgit v1.2.3