commit a76ea1feb18fbab89d1af1e37c8b492ade0df70b
parent b054fb176a064547e528d3faf3c52e0b9920eb81
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sat, 17 Jun 2023 23:48:31 -0700
cleanup
Diffstat:
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
}