From 5348a6db127e2e30d0e88997da167ca9a87496a2 Mon Sep 17 00:00:00 2001 From: quydang <81231812+quydang04@users.noreply.github.com> Date: Mon, 25 Sep 2023 07:32:08 +0700 Subject: [PATCH] Update tgbot.go --- web/service/tgbot.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/web/service/tgbot.go b/web/service/tgbot.go index aaf6752f..d92f6879 100644 --- a/web/service/tgbot.go +++ b/web/service/tgbot.go @@ -17,6 +17,8 @@ import ( "x-ui/xray" "github.com/mymmrac/telego" + "github.com/shirou/gopsutil/cpu" + "github.com/shirou/gopsutil/disk" th "github.com/mymmrac/telego/telegohandler" tu "github.com/mymmrac/telego/telegoutil" ) @@ -621,6 +623,33 @@ func (t *Tgbot) getServerUsage() string { info += t.I18nBot("tgbot.messages.ipv6", "IPv6=="+ipv6) } + // get CPU usage + percent, err := cpu.Percent(0, false) + if err != nil { + logger.Error("cpu.Percent failed, err: ", err.Error()) + info += t.I18nBot("tgbot.messages.cpuUsage", "CPU Usage=="+t.I18nBot("tgbot.unknown")) + } else { + info += t.I18nBot("tgbot.messages.cpuUsage", "CPU Usage=="+strconv.FormatFloat(percent[0], 'f', 2, 64)+"%") + } + + // get CPU info + cpuInfo, err := cpu.Info() + if err != nil { + logger.Error("cpu.Info failed, err: ", err.Error()) + info += t.I18nBot("tgbot.messages.cpuInfo", "CPU Info=="+t.I18nBot("tgbot.unknown")) + } else { + info += t.I18nBot("tgbot.messages.cpuInfo", "CPU Model=="+cpuInfo[0].ModelName) + } + + // get disk usage + diskStat, err := disk.Usage("/") + if err != nil { + logger.Error("disk.Usage failed, err: ", err.Error()) + info += t.I18nBot("tgbot.messages.diskUsage", "Disk Usage=="+t.I18nBot("tgbot.unknown")) + } else { + info += t.I18nBot("tgbot.messages.diskUsage", "Disk Usage=="+strconv.FormatUint(diskStat.Used/1024/1024/1024, 10)+"/"+strconv.FormatUint(diskStat.Total/1024/1024/1024, 10)+"GB") + } + // get latest status of server t.lastStatus = t.serverService.GetStatus(t.lastStatus) info += t.I18nBot("tgbot.messages.serverUpTime", "UpTime=="+strconv.FormatUint(t.lastStatus.Uptime/86400, 10), "Unit=="+t.I18nBot("tgbot.days")) @@ -633,6 +662,8 @@ func (t *Tgbot) getServerUsage() string { return info } + + func (t *Tgbot) UserLoginNotify(username string, ip string, time string, status LoginStatus) { if !t.IsRunning() { return