itLoad flag values from database - 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 b1a8eb06be6bde0ee97f6e16c37c4f7f0330e09f /scm/scoreboard/commit/b1a8eb06be6bde0ee97f6e16c37c4f7f0330e09f.gph z3bra.org 70 1parent 68e71a2910f055a0365daf3662d2cab878a3501d /scm/scoreboard/commit/68e71a2910f055a0365daf3662d2cab878a3501d.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:dev@z3bra.org z3bra.org 70 iDate: Thu, 5 Jan 2023 12:33:56 +0100 Err z3bra.org 70 i Err z3bra.org 70 iLoad flag values from database Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M db.go | 29 ++++++++++++++++++++++++++++- Err z3bra.org 70 i M main.go | 17 ++++++----------- Err z3bra.org 70 i Err z3bra.org 70 i2 files changed, 34 insertions(+), 12 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/db.go b/db.go /scm/scoreboard/file/db.go.gph z3bra.org 70 it@@ -29,7 +29,13 @@ const ( Err z3bra.org 70 i flag INT, Err z3bra.org 70 i score INT, Err z3bra.org 70 i ts INT Err z3bra.org 70 i- );` Err z3bra.org 70 i+ ); Err z3bra.org 70 i+ CREATE TABLE IF NOT EXISTS Err z3bra.org 70 i+ flag( Err z3bra.org 70 i+ chapter INT, Err z3bra.org 70 i+ value TEXT Err z3bra.org 70 i+ ); Err z3bra.org 70 i+ ` Err z3bra.org 70 i ) Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 it@@ -131,3 +137,24 @@ func db_ranked_players(db *sql.DB, offset, limit int) ([]Player, error) { Err z3bra.org 70 i Err z3bra.org 70 i return players, nil Err z3bra.org 70 i } Err z3bra.org 70 i+ Err z3bra.org 70 i+func db_flags(db *sql.DB) ([]string, error) { Err z3bra.org 70 i+ query := `SELECT value FROM flag ORDER BY chapter;` Err z3bra.org 70 i+ Err z3bra.org 70 i+ rows, err := db.Query(query) Err z3bra.org 70 i+ if err != nil { Err z3bra.org 70 i+ return nil, err Err z3bra.org 70 i+ } Err z3bra.org 70 i+ Err z3bra.org 70 i+ flags := make([]string, 0) Err z3bra.org 70 i+ for rows.Next() { Err z3bra.org 70 i+ var flag string Err z3bra.org 70 i+ err := rows.Scan(&flag) Err z3bra.org 70 i+ if err != nil { Err z3bra.org 70 i+ return nil, err Err z3bra.org 70 i+ } Err z3bra.org 70 i+ flags = append(flags, flag) Err z3bra.org 70 i+ } Err z3bra.org 70 i+ Err z3bra.org 70 i+ return flags, nil 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@@ -42,6 +42,7 @@ Good bye hunter. Good luck. Err z3bra.org 70 i Err z3bra.org 70 i type Application struct { Err z3bra.org 70 i flag int Err z3bra.org 70 i+ flag_ref []string Err z3bra.org 70 i db *sql.DB Err z3bra.org 70 i app *tview.Application Err z3bra.org 70 i html string Err z3bra.org 70 it@@ -51,14 +52,6 @@ type Application struct { Err z3bra.org 70 i player *Player Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i-var flag_sha256 = [...]string { Err z3bra.org 70 i- "FLAG0", // web cookie value Err z3bra.org 70 i- "FLAG1", // garden account password Err z3bra.org 70 i- "FLAG2", Err z3bra.org 70 i- "FLAG3", Err z3bra.org 70 i- "FLAG4"} Err z3bra.org 70 i- Err z3bra.org 70 i- Err z3bra.org 70 i var cyboard Application Err z3bra.org 70 i Err z3bra.org 70 i func usage() { Err z3bra.org 70 it@@ -68,8 +61,8 @@ func usage() { Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i func flagid(hash string) int { Err z3bra.org 70 i- for i := 0; i