diff --git a/.gitignore b/.gitignore index e15f080..cee86b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -project_context.txt \ No newline at end of file +project_context.txt +shagram.db \ No newline at end of file diff --git a/internal/api/websocket.go b/internal/api/websocket.go index c3e87cb..107ec3d 100644 --- a/internal/api/websocket.go +++ b/internal/api/websocket.go @@ -39,14 +39,18 @@ func WebSocketHandler(hub *websocket.Hub, database *db.DB) gin.HandlerFunc { if err != nil { break } + user := msg["user"] + if user == "" { + user = "Anonymous" + } _, err = database.Exec(` INSERT INTO messages (room_id, user, text) - VALUES (?, ?, ?)`, roomID, "user", msg["text"]) + VALUES (?, ?, ?)`, roomID, user, msg["text"]) if err != nil { log.Printf("Save message error: %v", err) } - - message := []byte(msg["text"]) + formattedMsg := user + ": " + msg["text"] + message := []byte(formattedMsg) room.Broadcast(message) } }() diff --git a/project_context.txt b/project_context.txt index 3b8241b..2bd64a1 100644 --- a/project_context.txt +++ b/project_context.txt @@ -257,9 +257,13 @@ func WebSocketHandler(hub *websocket.Hub, database *db.DB) gin.HandlerFunc { if err != nil { break } + user := msg["user"] + if user == "" { + user = "Anonymous" + } _, err = database.Exec(` INSERT INTO messages (room_id, user, text) - VALUES (?, ?, ?)`, roomID, "user", msg["text"]) + VALUES (?, ?, ?)`, roomID, user, msg["text"]) if err != nil { log.Printf("Save message error: %v", err) } @@ -415,7 +419,7 @@ CREATE TABLE IF NOT EXISTS messages ( INSERT OR IGNORE INTO rooms (id, name) VALUES ('general', 'General'); --- shagram.db --- -SQLite format 3 @ . n] P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)otablemessagesmessagesCREATE TABLE messages ( +SQLite format 3 @ . n] P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)otablemessagesmessagesCREATE TABLE messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, room_id TEXT NOT NULL, user TEXT NOT NULL, @@ -427,8 +431,8 @@ SQLite format 3 @ name TEXT NOT NULL ))= indexsqlite_autoindex_rooms_1rooms generalGeneral - general _ [5yS- Z / _ $ 3chatuserAAA2026-01-12 21:59:44( 3chatuserdfgsadf2026-01-12 21:59:35' 3devusertest DB2026-01-12 21:58:42, #3chatusersefsefsefes2026-01-12 21:43:38' 3chatusersefesf2026-01-12 21:43:35) 3chatuserdfbzgdfg2026-01-12 21:43:26( 3chatuserkuykfgh2026-01-12 21:42:52- 3generaluserawfawdfwa2026-01-12 21:28:44' 3devuserwadawdw2026-01-12 21:28:40& 3chatuserefawe2026-01-12 21:28:16' 3chatuserawdwad2026-01-12 21:27:58$ 3chatuserawd2026-01-12 21:27:25$ 3chatuseradw2026-01-12 21:27:23" - 3chatuserd2026-01-12 21:27:20# 3chatuserda2026-01-12 21:27:16# 3chatuserku2026-01-12 21:26:58# 3chatuserhi2026-01-12 21:26:43' 3generaluserASD2026-01-12 21:16:37$ 3chatuserASD2026-01-12 21:16:30" 3devuserHI2026-01-12 21:16:08! 3devuser12026-01-12 20:59:23- '3devuserHi from DB! 22026-01-12 20:58:43- '3devuserHi from DB! 12026-01-12 20:58:34 messages + general 2 [5yS- Z / _2 + !3chatЭмильку2026-01-13 23:23:54$ 3chatuserAAA2026-01-12 21:59:44( 3chatuserdfgsadf2026-01-12 21:59:35' 3devusertest DB2026-01-12 21:58:42, #3chatusersefsefsefes2026-01-12 21:43:38' 3chatusersefesf2026-01-12 21:43:35) 3chatuserdfbzgdfg2026-01-12 21:43:26( 3chatuserkuykfgh2026-01-12 21:42:52- 3generaluserawfawdfwa2026-01-12 21:28:44' 3devuserwadawdw2026-01-12 21:28:40& 3chatuserefawe2026-01-12 21:28:16' 3chatuserawdwad2026-01-12 21:27:58$ 3chatuserawd2026-01-12 21:27:25$ 3chatuseradw2026-01-12 21:27:23" + 3chatuserd2026-01-12 21:27:20# 3chatuserda2026-01-12 21:27:16# 3chatuserku2026-01-12 21:26:58# 3chatuserhi2026-01-12 21:26:43' 3generaluserASD2026-01-12 21:16:37$ 3chatuserASD2026-01-12 21:16:30" 3devuserHI2026-01-12 21:16:08! 3devuser12026-01-12 20:59:23- '3devuserHi from DB! 22026-01-12 20:58:43- '3devuserHi from DB! 12026-01-12 20:58:34 messages --- static/index.html --- @@ -453,21 +457,22 @@ SQLite format 3 @ } input { padding: 8px; width: 300px; } button { padding: 8px 15px; cursor: pointer; } - select { padding: 8px; width: 320px; } /* ← для комнат */ + select { padding: 8px; width: 320px; } #roomsList { margin: 10px 0; }