aboutsummaryrefslogtreecommitdiff
path: root/units/ping.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'units/ping.zsh')
-rw-r--r--units/ping.zsh44
1 files changed, 44 insertions, 0 deletions
diff --git a/units/ping.zsh b/units/ping.zsh
new file mode 100644
index 0000000..3fe85b5
--- /dev/null
+++ b/units/ping.zsh
@@ -0,0 +1,44 @@
+# Copyright (C) 2024-2026 Maria Lisina
+# Copyright (C) 2024-2026 Danil Lisin
+# SPDX-License-Identifier: Apache-2.0
+
+uptime_table=(
+ 604800 w
+ 86400 d
+ 3600 h
+ 60 m
+ 1 s
+)
+
+uptime_time=$(($(strftime %s) - startup_time + 1))
+
+while [[ ${uptime_time} -gt 0 && ${#uptime_table} -ge 2 ]]
+do
+ uptime_unit=$((uptime_time / uptime_table[1]))
+
+ if [[ ${uptime_unit} -eq 0 ]]
+ then
+ shift 2 uptime_table
+ continue
+ fi
+
+ uptime_text="${uptime_text} ${uptime_unit}${uptime_table[2]}"
+
+ uptime_time=$((uptime_time - (uptime_unit * uptime_table[1])))
+ shift 2 uptime_table
+done
+
+latency_text=$(((latency_fin - latency_init) / 1000000))
+
+output_text="$(printf "<b>Uptime:</b>%s" "${uptime_text}")"
+output_text="$(printf "%s\n<b>Latency:</b> %ums" "${output_text}" "${latency_text}")"
+
+keyboard_text1="Refresh"
+keyboard_data1="ping"
+
+reply_markup="$(
+ jq --null-input --compact-output \
+ --arg text1 "${keyboard_text1}" \
+ --arg data1 "${keyboard_data1}" \
+ '{"inline_keyboard": [[{"text": $text1, "callback_data": $data1}]]}'
+)"