aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2025-12-30 20:06:25 +0300
committer2025-12-30 20:06:25 +0300
commit2111f328c1dc619be568e325ce7138c8e6e3b0b2 (patch)
treefcb65b69bb75b1146ec7c8e78f9e8ba4d37d4d22
parentначальный коммит (diff)
downloadqchat-2111f328c1dc619be568e325ce7138c8e6e3b0b2.tar.gz
qchat-2111f328c1dc619be568e325ce7138c8e6e3b0b2.tar.bz2
qchat-2111f328c1dc619be568e325ce7138c8e6e3b0b2.tar.xz
qchat-2111f328c1dc619be568e325ce7138c8e6e3b0b2.zip
немного поправил отображение
Diffstat (limited to '')
-rw-r--r--internal/chat/chan.go6
-rw-r--r--internal/server/client.go2
-rw-r--r--internal/server/display.go2
3 files changed, 8 insertions, 2 deletions
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],