summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-07-05 12:34:11 +0500
committerilotterytea <iltsu@alright.party>2025-07-05 12:34:11 +0500
commit11ca4bf50b7b14b8be54756cb2a7f37ef31890a8 (patch)
tree63d2a6e629499db49c2cf718a962ee3bdf589c63
parentdb23d7a064db7f5a5c9a5306880e48c709b7d68b (diff)
feat: get bot temperature
-rw-r--r--bot/src/commands/lua.cpp25
-rw-r--r--luamods/ping.lua2
2 files changed, 26 insertions, 1 deletions
diff --git a/bot/src/commands/lua.cpp b/bot/src/commands/lua.cpp
index a35e605..0c02bf5 100644
--- a/bot/src/commands/lua.cpp
+++ b/bot/src/commands/lua.cpp
@@ -8,6 +8,8 @@
#include <chrono>
#include <cmath>
#include <ctime>
+#include <filesystem>
+#include <fstream>
#include <iomanip>
#include <memory>
#include <nlohmann/json.hpp>
@@ -64,6 +66,29 @@ namespace bot::command::lua {
return usage.ru_maxrss;
});
+ state->set_function("bot_get_temperature", []() {
+ float temp = 0.0;
+
+ std::string path = "/sys/class/thermal/thermal_zone0/temp";
+
+ if (!std::filesystem::exists(path)) {
+ return temp;
+ }
+
+ std::ifstream ifs;
+ ifs.open(path);
+
+ std::stringstream buffer;
+ buffer << ifs.rdbuf();
+ ifs.close();
+
+ temp = std::stof(buffer.str());
+ temp /= 1000;
+ temp = std::roundf(temp * 100) / 100;
+
+ return temp;
+ });
+
state->set_function("bot_get_compile_time",
[]() { return BOT_COMPILED_TIMESTAMP; });
diff --git a/luamods/ping.lua b/luamods/ping.lua
index d314cb2..a8b9fd4 100644
--- a/luamods/ping.lua
+++ b/luamods/ping.lua
@@ -12,7 +12,7 @@ return {
bot_get_compiler_version() ..
" · Uptime: " .. time_humanize(bot_get_uptime()) ..
" · Used memory: " .. math.ceil(bot_get_memory_usage() / 1024 / 1024) ..
- "MB · Bot running on v" .. bot_get_version() ..
+ "MB · Temperature: " .. tostring(bot_get_temperature()) .. "°C · Bot running on v" .. bot_get_version() ..
" (Last updated " .. time_humanize(time_current() - bot_get_compile_time()) .. " ago)"
end
}