Split stk version and os string to 2 columns for better statistic purpose
This commit is contained in:
parent
4b23552ea8
commit
42d341a925
@ -247,7 +247,8 @@ CREATE TABLE IF NOT EXISTS (table name above)
|
|||||||
username TEXT NOT NULL, -- First player name in the host (if the host has splitscreen player)
|
username TEXT NOT NULL, -- First player name in the host (if the host has splitscreen player)
|
||||||
player_num INTEGER UNSIGNED NOT NULL, -- Number of player(s) from the host, more than 1 if it has splitscreen player
|
player_num INTEGER UNSIGNED NOT NULL, -- Number of player(s) from the host, more than 1 if it has splitscreen player
|
||||||
country_code TEXT NULL DEFAULT NULL, -- 2-letter country code of the host
|
country_code TEXT NULL DEFAULT NULL, -- 2-letter country code of the host
|
||||||
version TEXT NOT NULL, -- SuperTuxKart version of the host (with OS info)
|
version TEXT NOT NULL, -- SuperTuxKart version of the host
|
||||||
|
os TEXT NOT NULL, -- Operating system of the host
|
||||||
connected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when connected
|
connected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when connected
|
||||||
disconnected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when disconnected (saved when disconnected)
|
disconnected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when disconnected (saved when disconnected)
|
||||||
ping INTEGER UNSIGNED NOT NULL DEFAULT 0 -- Ping of the host
|
ping INTEGER UNSIGNED NOT NULL DEFAULT 0 -- Ping of the host
|
||||||
|
@ -280,7 +280,8 @@ void ServerLobby::initServerStatsTable()
|
|||||||
" username TEXT NOT NULL, -- First player name in the host (if the host has splitscreen player)\n"
|
" username TEXT NOT NULL, -- First player name in the host (if the host has splitscreen player)\n"
|
||||||
" player_num INTEGER UNSIGNED NOT NULL, -- Number of player(s) from the host, more than 1 if it has splitscreen player\n"
|
" player_num INTEGER UNSIGNED NOT NULL, -- Number of player(s) from the host, more than 1 if it has splitscreen player\n"
|
||||||
" country_code TEXT NULL DEFAULT NULL, -- 2-letter country code of the host\n"
|
" country_code TEXT NULL DEFAULT NULL, -- 2-letter country code of the host\n"
|
||||||
" version TEXT NOT NULL, -- SuperTuxKart version of the host (with OS info)\n"
|
" version TEXT NOT NULL, -- SuperTuxKart version of the host\n"
|
||||||
|
" os TEXT NOT NULL, -- Operating system of the host\n"
|
||||||
" connected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when connected\n"
|
" connected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when connected\n"
|
||||||
" disconnected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when disconnected (saved when disconnected)\n"
|
" disconnected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when disconnected (saved when disconnected)\n"
|
||||||
" ping INTEGER UNSIGNED NOT NULL DEFAULT 0, -- Ping of the host\n"
|
" ping INTEGER UNSIGNED NOT NULL DEFAULT 0, -- Ping of the host\n"
|
||||||
@ -336,7 +337,7 @@ void ServerLobby::initServerStatsTable()
|
|||||||
if (ServerConfig::m_ipv6_server)
|
if (ServerConfig::m_ipv6_server)
|
||||||
oss << " ipv6,";
|
oss << " ipv6,";
|
||||||
oss << " port, online_id, username, player_num,\n"
|
oss << " port, online_id, username, player_num,\n"
|
||||||
<< " " << m_server_stats_table << ".country_code AS country_code, country_flag, country_name, version,\n"
|
<< " " << m_server_stats_table << ".country_code AS country_code, country_flag, country_name, version, os,\n"
|
||||||
<< " ROUND((STRFTIME(\"%s\", disconnected_time) - STRFTIME(\"%s\", connected_time)) / 60.0, 2) AS time_played,\n"
|
<< " ROUND((STRFTIME(\"%s\", disconnected_time) - STRFTIME(\"%s\", connected_time)) / 60.0, 2) AS time_played,\n"
|
||||||
<< " connected_time, disconnected_time, ping, packet_loss FROM " << m_server_stats_table << "\n"
|
<< " connected_time, disconnected_time, ping, packet_loss FROM " << m_server_stats_table << "\n"
|
||||||
<< " LEFT JOIN " << country_table_name << " ON "
|
<< " LEFT JOIN " << country_table_name << " ON "
|
||||||
@ -359,7 +360,7 @@ void ServerLobby::initServerStatsTable()
|
|||||||
if (ServerConfig::m_ipv6_server)
|
if (ServerConfig::m_ipv6_server)
|
||||||
oss << " ipv6,";
|
oss << " ipv6,";
|
||||||
oss << " port, online_id, username, player_num,\n"
|
oss << " port, online_id, username, player_num,\n"
|
||||||
<< " " << m_server_stats_table << ".country_code AS country_code, country_flag, country_name, version,\n"
|
<< " " << m_server_stats_table << ".country_code AS country_code, country_flag, country_name, version, os,\n"
|
||||||
<< " ROUND((STRFTIME(\"%s\", 'now') - STRFTIME(\"%s\", connected_time)) / 60.0, 2) AS time_played,\n"
|
<< " ROUND((STRFTIME(\"%s\", 'now') - STRFTIME(\"%s\", connected_time)) / 60.0, 2) AS time_played,\n"
|
||||||
<< " connected_time, ping FROM " << m_server_stats_table << "\n"
|
<< " connected_time, ping FROM " << m_server_stats_table << "\n"
|
||||||
<< " LEFT JOIN " << country_table_name << " ON "
|
<< " LEFT JOIN " << country_table_name << " ON "
|
||||||
@ -397,7 +398,7 @@ void ServerLobby::initServerStatsTable()
|
|||||||
if (ServerConfig::m_ipv6_server)
|
if (ServerConfig::m_ipv6_server)
|
||||||
oss << " a.ipv6,";
|
oss << " a.ipv6,";
|
||||||
oss << " a.port, a.player_num,\n"
|
oss << " a.port, a.player_num,\n"
|
||||||
<< " a.country_code, a.country_flag, a.country_name, a.version, a.ping, a.packet_loss,\n"
|
<< " a.country_code, a.country_flag, a.country_name, a.version, a.os, a.ping, a.packet_loss,\n"
|
||||||
<< " b.num_connections, b.first_connected_time, b.first_disconnected_time,\n"
|
<< " b.num_connections, b.first_connected_time, b.first_disconnected_time,\n"
|
||||||
<< " a.connected_time AS last_connected_time, a.disconnected_time AS last_disconnected_time,\n"
|
<< " a.connected_time AS last_connected_time, a.disconnected_time AS last_disconnected_time,\n"
|
||||||
<< " a.time_played AS last_time_played, b.total_time_played, b.average_time_played,\n"
|
<< " a.time_played AS last_time_played, b.total_time_played, b.average_time_played,\n"
|
||||||
@ -3302,8 +3303,8 @@ void ServerLobby::handleUnencryptedConnection(std::shared_ptr<STKPeer> peer,
|
|||||||
query = StringUtils::insertValues(
|
query = StringUtils::insertValues(
|
||||||
"INSERT INTO %s "
|
"INSERT INTO %s "
|
||||||
"(host_id, ip, ipv6 ,port, online_id, username, player_num, "
|
"(host_id, ip, ipv6 ,port, online_id, username, player_num, "
|
||||||
"country_code, version, ping) "
|
"country_code, version, os, ping) "
|
||||||
"VALUES (%u, 0, \"%s\" ,%u, %u, ?, %u, ?, ?, %u);",
|
"VALUES (%u, 0, \"%s\" ,%u, %u, ?, %u, ?, ?, ?, %u);",
|
||||||
m_server_stats_table.c_str(), peer->getHostId(),
|
m_server_stats_table.c_str(), peer->getHostId(),
|
||||||
peer->getIPV6Address(), peer->getAddress().getPort(), online_id,
|
peer->getIPV6Address(), peer->getAddress().getPort(), online_id,
|
||||||
player_count, peer->getAveragePing());
|
player_count, peer->getAveragePing());
|
||||||
@ -3313,8 +3314,8 @@ void ServerLobby::handleUnencryptedConnection(std::shared_ptr<STKPeer> peer,
|
|||||||
query = StringUtils::insertValues(
|
query = StringUtils::insertValues(
|
||||||
"INSERT INTO %s "
|
"INSERT INTO %s "
|
||||||
"(host_id, ip, port, online_id, username, player_num, "
|
"(host_id, ip, port, online_id, username, player_num, "
|
||||||
"country_code, version, ping) "
|
"country_code, version, os, ping) "
|
||||||
"VALUES (%u, %u, %u, %u, ?, %u, ?, ?, %u);",
|
"VALUES (%u, %u, %u, %u, ?, %u, ?, ?, ?, %u);",
|
||||||
m_server_stats_table.c_str(), peer->getHostId(),
|
m_server_stats_table.c_str(), peer->getHostId(),
|
||||||
peer->getAddress().getIP(), peer->getAddress().getPort(),
|
peer->getAddress().getIP(), peer->getAddress().getPort(),
|
||||||
online_id, player_count, peer->getAveragePing());
|
online_id, player_count, peer->getAveragePing());
|
||||||
@ -3346,11 +3347,19 @@ void ServerLobby::handleUnencryptedConnection(std::shared_ptr<STKPeer> peer,
|
|||||||
country_code.c_str());
|
country_code.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sqlite3_bind_text(stmt, 3, peer->getUserVersion().c_str(),
|
auto version_os =
|
||||||
|
StringUtils::extractVersionOS(peer->getUserVersion());
|
||||||
|
if (sqlite3_bind_text(stmt, 3, version_os.first.c_str(),
|
||||||
-1, SQLITE_TRANSIENT) != SQLITE_OK)
|
-1, SQLITE_TRANSIENT) != SQLITE_OK)
|
||||||
{
|
{
|
||||||
Log::error("easySQLQuery", "Failed to bind %s.",
|
Log::error("easySQLQuery", "Failed to bind %s.",
|
||||||
peer->getUserVersion().c_str());
|
version_os.first.c_str());
|
||||||
|
}
|
||||||
|
if (sqlite3_bind_text(stmt, 4, version_os.second.c_str(),
|
||||||
|
-1, SQLITE_TRANSIENT) != SQLITE_OK)
|
||||||
|
{
|
||||||
|
Log::error("easySQLQuery", "Failed to bind %s.",
|
||||||
|
version_os.second.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user