blob: 21ef21370a335e84bb61ff7fbaff6d8422c37d5c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include "maintenance.h"
int Maintenance::updateStats()
{
// result
int numOfUpdatedStats = 0;
// get list of gamenames in database
QString selectGamenames = "SELECT DISTINCT gamename FROM serverlist";
QSqlQuery gamenameQuery;
gamenameQuery.prepare(selectGamenames);
if ( ! gamenameQuery.exec() )
return reportQuery(gamenameQuery);
// update stats for every gamename
while ( gamenameQuery.next() )
{
// get next gamename
QString gamename = gamenameQuery.value(0).toString();
// 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(numStatsAll);
statQuery.bindValue(":gamename", gamename);
statQuery.bindValue(":timestamp", QDateTime::currentDateTime()
.addSecs(-_coreObject->Settings.ListenServerSettings.serverttl_s).toSecsSinceEpoch());
if ( ! statQuery.exec() )
return reportQuery(statQuery);
// update counter
numOfUpdatedStats += statQuery.numRowsAffected();
}
return numOfUpdatedStats;
}
|