From 3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff Mon Sep 17 00:00:00 2001 From: Dark1-dev Date: Wed, 1 Mar 2023 21:33:55 +0600 Subject: Add files via upload --- Database/Common/selectserverlist.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Database/Common/selectserverlist.cpp (limited to 'Database/Common/selectserverlist.cpp') diff --git a/Database/Common/selectserverlist.cpp b/Database/Common/selectserverlist.cpp new file mode 100644 index 0000000..c4797ed --- /dev/null +++ b/Database/Common/selectserverlist.cpp @@ -0,0 +1,31 @@ +#include "commonactions.h" + +QSqlQuery selectServerList(const QString &gamename, + const int &serverAge_s, + const bool &withSyncData) +{ + // retrieve servers from database + QSqlQuery q; + QString selectString = "SELECT ip, queryport FROM serverlist " + "WHERE gamename = :gamename "; + + if ( withSyncData ) + { + // relies on sync data to be accurate (if checker is not enabled) + selectString += "AND (dt_updated > :timestamp OR dt_sync > :timestamp)"; + } + else + { + // sync data may not be (sufficiently) accurate, only use data that we verified directly + selectString += "AND dt_updated > :timestamp"; + } + + // bind values and execute + q.prepare(selectString); + q.bindValue(":gamename", gamename); + q.bindValue(":timestamp", QDateTime::currentDateTime().addSecs(-serverAge_s ).toSecsSinceEpoch()); + if ( ! q.exec() ) + reportQuery(q); + + return q; +} -- cgit v1.2.3