dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit b8e7fc235da45d1bac87bf4603be90b76edac910
parent 2782c4d0af6906e01be2a215393042a56570d8cc
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 19 Dec 2023 11:18:21 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker.go | 9++-------
Mpkg/web/handlers/poker/poker.go | 14++++++++++++--
2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/pkg/web/handlers/poker.go b/pkg/web/handlers/poker.go @@ -373,7 +373,6 @@ func PokerLogsHandler(c echo.Context) error { if g == nil { return c.Redirect(http.StatusFound, "/") } - ongoing := g.Ongoing roomLogsTopic := roomID.LogsTopic() sub := poker.PokerPubSub.Subscribe([]string{roomLogsTopic}) defer sub.Close() @@ -388,12 +387,8 @@ func PokerLogsHandler(c echo.Context) error { send(hutils.HtmlCssReset) send(`<style>body { background-color: #ccc; }</style><div style="display:flex;flex-direction:column-reverse;">`) - if ongoing != nil { - ongoing.LogEvents.RWith(func(v *[]poker.LogEvent) { - for _, evt := range *v { - send(fmt.Sprintf(`<div>%s</div>`, evt.Message)) - } - }) + for _, evt := range g.GetLogs() { + send(fmt.Sprintf(`<div>%s</div>`, evt.Message)) } c.Response().Flush() diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -107,7 +107,7 @@ func (e playerEvent) getAction() PlayerAction { var PokerInstance = NewPoker() type Ongoing struct { - LogEvents utils.RWMtx[[]LogEvent] + logEvents utils.RWMtx[[]LogEvent] deck []string players []*pokerPlayer events utils.RWMtx[[]PokerEvent] @@ -225,6 +225,16 @@ type gameResult struct { players []*pokerPlayer } +func (g *PokerGame) GetLogs() (out []LogEvent) { + if g.Ongoing != nil { + g.Ongoing.logEvents.RWith(func(logEvents *[]LogEvent) { + out = make([]LogEvent, len(*logEvents)) + copy(out, *logEvents) + }) + } + return +} + func (g *PokerGame) Check(userID database.UserID) { g.sendPlayerEvent(playerEvent{UserID: userID, Check: true}) } @@ -553,7 +563,7 @@ func (g *PokerGame) newLogEvent(msg string) { logEvt := LogEvent{Message: msg} PokerPubSub.Pub(g.roomID.LogsTopic(), logEvt) if ongoing != nil { - ongoing.LogEvents.With(func(v *[]LogEvent) { + ongoing.logEvents.With(func(v *[]LogEvent) { *v = append(*v, logEvt) }) }