summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--localization/english.json2
-rw-r--r--localization/russian.json2
-rw-r--r--src/modules/ping.hpp22
3 files changed, 23 insertions, 3 deletions
diff --git a/localization/english.json b/localization/english.json
index 4528cbe..7e84d1a 100644
--- a/localization/english.json
+++ b/localization/english.json
@@ -1,3 +1,3 @@
{
- "ping.response": "Pong!"
+ "ping.response": "{sender.alias_name}: Pong! Uptime: %s · Used memory: %sMB"
}
diff --git a/localization/russian.json b/localization/russian.json
index 5de44e8..9b31fde 100644
--- a/localization/russian.json
+++ b/localization/russian.json
@@ -1,3 +1,3 @@
{
- "ping.response": "Понг!"
+ "ping.response": "{sender.alias_name}: Понг! Время сессии: %s · ОЗУ: %sМБ"
}
diff --git a/src/modules/ping.hpp b/src/modules/ping.hpp
index 724beab..b6409ca 100644
--- a/src/modules/ping.hpp
+++ b/src/modules/ping.hpp
@@ -1,11 +1,17 @@
#pragma once
+#include <sys/resource.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <chrono>
#include <string>
#include <variant>
#include <vector>
#include "../bundle.hpp"
#include "../commands/command.hpp"
+#include "../utils/chrono.hpp"
namespace bot {
namespace mod {
@@ -15,7 +21,21 @@ namespace bot {
std::variant<std::vector<std::string>, std::string> run(
const InstanceBundle &bundle,
const command::Request &request) const override {
- return "pong";
+ auto now = std::chrono::steady_clock::now();
+ auto duration = now - START_TIME;
+ auto seconds =
+ std::chrono::duration_cast<std::chrono::seconds>(duration);
+ std::string uptime = utils::chrono::format_timestamp(seconds.count());
+
+ struct rusage usage;
+ getrusage(RUSAGE_SELF, &usage);
+
+ int used_memory = usage.ru_maxrss / 1024;
+
+ return bundle.localization
+ .get_formatted_line(request, loc::LineId::PingResponse,
+ {uptime, std::to_string(used_memory)})
+ .value();
}
};
}