dkforest

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

commit a76ea1feb18fbab89d1af1e37c8b492ade0df70b
parent b054fb176a064547e528d3faf3c52e0b9920eb81
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sat, 17 Jun 2023 23:48:31 -0700

cleanup

Diffstat:
Mpkg/web/handlers/chess.go | 22+++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/pkg/web/handlers/chess.go b/pkg/web/handlers/chess.go @@ -161,13 +161,22 @@ func ChessGameAnalyzeHandler(c echo.Context) error { sub := interceptors.ChessAnalyzeProgressPubSub.Subscribe([]string{"chess_analyze_progress_" + key}) defer sub.Close() + renderProgress := func(progress interceptors.ChessAnalyzeProgress) { + _, _ = c.Response().Write([]byte(fmt.Sprintf(`<style>#progress:after { content: "PROGRESS: %d/%d" }</style>`, progress.Step, progress.Total))) + c.Response().Flush() + } + _, _ = c.Response().Write([]byte(`<style>html, body { background-color: #222; } #progress { color: #eee; } </style>`)) _, _ = c.Response().Write([]byte(`<div id="progress"></div>`)) progress := g.GetAnalyzeProgress() - _, _ = c.Response().Write([]byte(fmt.Sprintf(`<style>#progress:after { content: "PROGRESS: %d/%d" }</style>`, progress.Step, progress.Total))) - c.Response().Flush() + renderProgress(progress) + + defer func() { + _, _ = c.Response().Write([]byte(fmt.Sprintf(`<a href="/chess/%s">Back</a>`, g.Key))) + c.Response().Flush() + }() Loop: for { @@ -177,13 +186,11 @@ Loop: default: } - progress := g.GetAnalyzeProgress() if progress.Step > 0 && progress.Step == progress.Total { - _, _ = c.Response().Write([]byte(fmt.Sprintf(`<style>#progress:after { content: "PROGRESS: %d/%d" }</style>`, progress.Step, progress.Total))) break } - _, payload, err := sub.ReceiveTimeout2(1*time.Second, quit) + _, progress, err = sub.ReceiveTimeout2(1*time.Second, quit) if err != nil { if err == pubsub.ErrCancelled { break Loop @@ -191,12 +198,9 @@ Loop: continue } - _, _ = c.Response().Write([]byte(fmt.Sprintf(`<style>#progress:after { content: "PROGRESS: %d/%d" }</style>`, payload.Step, payload.Total))) - c.Response().Flush() + renderProgress(progress) } - _, _ = c.Response().Write([]byte(fmt.Sprintf(`<a href="/chess/%s">Back</a>`, g.Key))) - c.Response().Flush() return nil }