aboutsummaryrefslogtreecommitdiff
path: root/src/Maintenance/updatestats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Maintenance/updatestats.cpp')
-rw-r--r--src/Maintenance/updatestats.cpp41
1 files changed, 14 insertions, 27 deletions
diff --git a/src/Maintenance/updatestats.cpp b/src/Maintenance/updatestats.cpp
index a19e7d9..21ef213 100644
--- a/src/Maintenance/updatestats.cpp
+++ b/src/Maintenance/updatestats.cpp
@@ -18,36 +18,23 @@ int Maintenance::updateStats()
// get next gamename
QString gamename = gamenameQuery.value(0).toString();
- // determine beacon and server counts
- QString selectStats = "SELECT COUNT(CASE WHEN f_direct THEN 1 END) AS num_direct, "
- "count(*) AS num_total "
- "FROM serverlist "
- "WHERE gamename = :gamename AND dt_updated > :timestamp";
+ // hotfix hf4
+ // update number of servers directly
+ QString numStatsAll = "UPDATE gameinfo "
+ "SET num_total = ( "
+ "SELECT COUNT(gamename) FROM serverlist "
+ "WHERE gamename = :gamename AND dt_updated > :timestamp "
+ "), "
+ "num_direct = ( "
+ "SELECT COUNT(gamename) FROM serverlist "
+ "WHERE gamename = :gamename AND dt_updated > :timestamp AND f_direct"
+ ") WHERE gamename = :gamename";
+
QSqlQuery statQuery;
- statQuery.prepare(selectStats);
+ statQuery.prepare(numStatsAll);
statQuery.bindValue(":gamename", gamename);
statQuery.bindValue(":timestamp", QDateTime::currentDateTime()
- .addSecs(-_coreObject->Settings.ListenServerSettings.serverttl_s).toSecsSinceEpoch());
- if ( ! statQuery.exec() )
- return reportQuery(statQuery);
-
- // get values
- int num_direct = -1;
- int num_total = -1;
- if ( statQuery.next() )
- {
- num_direct = statQuery.value("num_direct").toInt();
- num_total = statQuery.value("num_total").toInt();
- }
-
- // write to db
- QString updateStatQuery = "UPDATE gameinfo "
- "SET num_direct = :num_direct, num_total = :num_total "
- "WHERE gamename = :gamename ";
- statQuery.prepare(updateStatQuery);
- statQuery.bindValue(":num_direct", num_direct);
- statQuery.bindValue(":num_total", num_total);
- statQuery.bindValue(":gamename", gamename);
+ .addSecs(-_coreObject->Settings.ListenServerSettings.serverttl_s).toSecsSinceEpoch());
if ( ! statQuery.exec() )
return reportQuery(statQuery);