itPolish token display - scoreboard - Interactive scoreboard for CTF-like games Err z3bra.org 70 hgit clone git://git.z3bra.org/scoreboard.git URL:git://git.z3bra.org/scoreboard.git z3bra.org 70 1Log /scm/scoreboard/log.gph z3bra.org 70 1Files /scm/scoreboard/files.gph z3bra.org 70 1Refs /scm/scoreboard/refs.gph z3bra.org 70 i--- Err z3bra.org 70 1commit f54a4941d53b87921903199974c2b046d3757dfd /scm/scoreboard/commit/f54a4941d53b87921903199974c2b046d3757dfd.gph z3bra.org 70 1parent 3f2e8d5a04c80bf53ecdfc6c4d855e2816be1624 /scm/scoreboard/commit/3f2e8d5a04c80bf53ecdfc6c4d855e2816be1624.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:contact@z3bra.org z3bra.org 70 iDate: Tue, 22 Aug 2023 17:57:19 +0200 Err z3bra.org 70 i Err z3bra.org 70 iPolish token display Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M main.go | 13 ++++++++----- Err z3bra.org 70 i M playerbox.go | 19 +++++++++---------- Err z3bra.org 70 i M ui.go | 9 +++++++++ Err z3bra.org 70 i Err z3bra.org 70 i3 files changed, 26 insertions(+), 15 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/main.go b/main.go /scm/scoreboard/file/main.go.gph z3bra.org 70 it@@ -33,10 +33,12 @@ const ( Err z3bra.org 70 i BOARD_HEIGHT int = 15 Err z3bra.org 70 i HTML string = "score.html" Err z3bra.org 70 i DB string = "score.db" Err z3bra.org 70 i- TOKEN_REMINDER string = `TOKEN FOR %s: %s Err z3bra.org 70 i-This token will be requested when you submit flag #%d. Err z3bra.org 70 i-Save it carefully, and do not share it with anyone. Err z3bra.org 70 i-Good bye hunter. Good luck. Err z3bra.org 70 i+ TOKEN_REMINDER string = ` Err z3bra.org 70 i+%s's token for flag #%d: Err z3bra.org 70 i+ Err z3bra.org 70 i+🔑 %s Err z3bra.org 70 i+ Err z3bra.org 70 i+Save it carefully, do not share it. Err z3bra.org 70 i ` Err z3bra.org 70 i ) Err z3bra.org 70 i Err z3bra.org 70 it@@ -159,6 +161,7 @@ func main() { Err z3bra.org 70 i cyboard.html = *html Err z3bra.org 70 i cyboard.app = tview.NewApplication() Err z3bra.org 70 i cyboard.pages = tview.NewPages() Err z3bra.org 70 i+ //cyboard.frame = tview.NewFrame(tview.NewGrid()) Err z3bra.org 70 i cyboard.board = tview.NewFlex() Err z3bra.org 70 i cyboard.player = &Player{ db: cyboard.db } Err z3bra.org 70 i Err z3bra.org 70 it@@ -211,6 +214,6 @@ func main() { Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i if cyboard.player.token != "" && cyboard.flag < (len(cyboard.flag_ref)) { Err z3bra.org 70 i- fmt.Printf(TOKEN_REMINDER, cyboard.player.name, cyboard.player.token, cyboard.flag + 1) Err z3bra.org 70 i+ fmt.Printf(TOKEN_REMINDER, cyboard.player.name, cyboard.flag + 1, cyboard.player.token) Err z3bra.org 70 i } Err z3bra.org 70 i } Err z3bra.org 70 1diff --git a/playerbox.go b/playerbox.go /scm/scoreboard/file/playerbox.go.gph z3bra.org 70 it@@ -17,20 +17,19 @@ type PlayerBox struct { Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i const ( Err z3bra.org 70 i- SAVE_TOKEN string = `Token for flag #%d: Err z3bra.org 70 i+ TOKEN_WELCOME string = `%s, your progression has Err z3bra.org 70 i+been saved. To update it, Err z3bra.org 70 i+you will need this token: Err z3bra.org 70 i Err z3bra.org 70 i-%s Err z3bra.org 70 i+🔑%s Err z3bra.org 70 i Err z3bra.org 70 i Save it. Err z3bra.org 70 i-Do not share. Err z3bra.org 70 i- Err z3bra.org 70 i- Err z3bra.org 70 i-~~~ Err z3bra.org 70 i+Do not share it. Err z3bra.org 70 i Err z3bra.org 70 i Tokens are single-use. Err z3bra.org 70 i- Err z3bra.org 70 i-A new one will be provided Err z3bra.org 70 i-when submitting next flag. Err z3bra.org 70 i+A new token is generated Err z3bra.org 70 i+and displayed each time Err z3bra.org 70 i+you submit a flag. Err z3bra.org 70 i ` Err z3bra.org 70 i ) Err z3bra.org 70 i Err z3bra.org 70 it@@ -95,7 +94,7 @@ func PlayerBoxName(p *Player) *tview.TextView { Err z3bra.org 70 i } Err z3bra.org 70 i cyboard.HighlightBoard(p.ScoreRank()) Err z3bra.org 70 i cyboard.GenerateHTML() Err z3bra.org 70 i- cyboard.Popup("CONGRATULATIONS", fmt.Sprintf(SAVE_TOKEN, p.flag+1, p.token)); Err z3bra.org 70 i+ cyboard.Popup("CONGRATULATIONS", fmt.Sprintf(TOKEN_WELCOME, p.name, p.token)); Err z3bra.org 70 i } else { Err z3bra.org 70 i cyboard.Popup("NOPE", "Player name unavailable\nPlease pick another one") Err z3bra.org 70 i } Err z3bra.org 70 1diff --git a/ui.go b/ui.go /scm/scoreboard/file/ui.go.gph z3bra.org 70 it@@ -89,6 +89,15 @@ func (a *Application) DrawBoard() { Err z3bra.org 70 i a.board.Clear(). Err z3bra.org 70 i SetDirection(tview.FlexRow). Err z3bra.org 70 i AddItem(RankTable(0, -1, 0, true), BOARD_HEIGHT, 1, true) Err z3bra.org 70 i+ Err z3bra.org 70 i+ // handle additional keys to terminate application Err z3bra.org 70 i+ a.board.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { Err z3bra.org 70 i+ if event.Key() == tcell.KeyEscape || event.Rune() == 'q' { Err z3bra.org 70 i+ a.app.Stop() Err z3bra.org 70 i+ return nil Err z3bra.org 70 i+ } Err z3bra.org 70 i+ return event Err z3bra.org 70 i+ }) Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i func (a *Application) HighlightBoard(line int) { Err z3bra.org 70 .