]> git.sesse.net Git - pkanalytics/commitdiff
Fix formation JSON export.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 29 May 2023 17:08:56 +0000 (19:08 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 29 May 2023 17:09:23 +0000 (19:09 +0200)
json.cpp

index 09b2c4d29569220980e632ef1c7147e277de46d6..0bd24522e839bdcbfa64fa33b295ed5d3aa88fd6 100644 (file)
--- a/json.cpp
+++ b/json.cpp
@@ -80,7 +80,7 @@ QJsonArray export_matches_to_json(sqlite3 *db)
        // Load the events, splitting them into matches as we go.
        std::map<int, QJsonArray *> events_per_match;
        sqlite3_stmt *stmt;
-       int ret = sqlite3_prepare_v2(db, "SELECT match, t, player, type FROM event ORDER BY t", -1, &stmt, 0);
+       int ret = sqlite3_prepare_v2(db, "SELECT match, t, player, formation, type FROM event ORDER BY t", -1, &stmt, 0);
        if (ret != SQLITE_OK) {
                fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db));
                abort();
@@ -100,7 +100,12 @@ QJsonArray export_matches_to_json(sqlite3 *db)
                        } else {
                                e.insert("player", QJsonValue());  // null
                        }
-                       e.insert("type", (const char *)sqlite3_column_text(stmt, 3));
+                       if (sqlite3_column_type(stmt, 3) == SQLITE_INTEGER) {
+                               e.insert("formation", sqlite3_column_int(stmt, 3));
+                       } else {
+                               e.insert("formation", QJsonValue());  // null
+                       }
+                       e.insert("type", (const char *)sqlite3_column_text(stmt, 4));
                        events_per_match[match]->push_back(std::move(e));
                } else if (ret == SQLITE_DONE) {
                        break;