]> git.sesse.net Git - pkanalytics/blobdiff - json.cpp
Goals were double-counted as touches.
[pkanalytics] / json.cpp
index 09b2c4d29569220980e632ef1c7147e277de46d6..2e3398d9057d8f431aa3251ad3bb2eea42f45b38 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;
@@ -116,7 +121,7 @@ QJsonArray export_matches_to_json(sqlite3 *db)
        }
 
        // Load the matches themselves.
-       ret = sqlite3_prepare_v2(db, "SELECT match, description FROM match ORDER BY match", -1, &stmt, 0);
+       ret = sqlite3_prepare_v2(db, "SELECT match, description, gender_rule_a, gender_pull_rule FROM match ORDER BY match", -1, &stmt, 0);
        if (ret != SQLITE_OK) {
                fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db));
                abort();
@@ -128,6 +133,8 @@ QJsonArray export_matches_to_json(sqlite3 *db)
                        QJsonObject m;
                        m.insert("match_id", match);
                        m.insert("description", (const char *)sqlite3_column_text(stmt, 1));
+                       m.insert("gender_rule_a", (bool)sqlite3_column_int64(stmt, 2));
+                       m.insert("gender_pull_rule", (bool)sqlite3_column_int64(stmt, 3));
                        if (events_per_match.count(match)) {
                                m.insert("events", std::move(*events_per_match[match]));
                                delete events_per_match[match];