From 2111f328c1dc619be568e325ce7138c8e6e3b0b2 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Tue, 30 Dec 2025 20:06:25 +0300 Subject: =?UTF-8?q?=D0=BD=D0=B5=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/chat/chan.go | 6 ++++++ internal/server/client.go | 2 +- internal/server/display.go | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'internal') diff --git a/internal/chat/chan.go b/internal/chat/chan.go index ae78bb6..bc2b70f 100644 --- a/internal/chat/chan.go +++ b/internal/chat/chan.go @@ -29,6 +29,12 @@ func (c *Channel) processEvent(ev any) { slog.Info("channel event", slog.String("channel", c.Name), slog.Any("event", ev)) for u := range c.Users { + if ev, ok := ev.(Message); ok { + if ev.User == u { + // Do not return user message to him + continue + } + } select { case u.Events <- ev: default: diff --git a/internal/server/client.go b/internal/server/client.go index dbea5a9..698f7fa 100644 --- a/internal/server/client.go +++ b/internal/server/client.go @@ -11,9 +11,9 @@ import ( func (s *Server) serveClient(ctx context.Context, rw io.ReadWriteCloser, user *chat.User) { t := term.NewTerminal(rw, "[] ") + // TODO resize terminal to user size go func() { - // defer s.bus.Unsubscribe(evCh) for { select { case <-ctx.Done(): diff --git a/internal/server/display.go b/internal/server/display.go index 90d481a..c3450ad 100644 --- a/internal/server/display.go +++ b/internal/server/display.go @@ -33,7 +33,7 @@ func displayMessage(t io.Writer, message chat.Message, user *chat.User) { msg = r.From.ReplaceAllString(msg, r.To) } - fmt.Fprintf(t, "%s%s%s\t[%s]%s: %s\n", + fmt.Fprintf(t, "%s%15s%s [%s]%s: %s\n", escapeCodes[Blue], message.User.NUsername(), escapeCodes[Green], -- cgit v1.2.3