mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-27 02:24:40 +00:00 
			
		
		
		
	Update tgbot.go
This commit is contained in:
		
							parent
							
								
									af00ae9470
								
							
						
					
					
						commit
						9989df9595
					
				
					 1 changed files with 47 additions and 30 deletions
				
			
		|  | @ -590,6 +590,30 @@ func (t *Tgbot) SendBackupToAdmins() { | ||||||
| 		t.sendBackup(int64(adminId)) | 		t.sendBackup(int64(adminId)) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | // Get CPU Info
 | ||||||
|  | func getCPUInfo() (string, error) { | ||||||
|  | 	infoStat, err := cpu.Info() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return fmt.Sprintf("CPU Info: %v", infoStat[0]), nil | ||||||
|  | } | ||||||
|  | // Get disk usage
 | ||||||
|  | func getDiskUsage() (string, error) { | ||||||
|  | 	usageStat, err := disk.Usage("/") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return fmt.Sprintf("Disk Usage: %v", usageStat), nil | ||||||
|  | } | ||||||
|  | // Get CPU usage
 | ||||||
|  | func getCPUUsage() (string, error) { | ||||||
|  | 	percent, err := cpu.Percent(time.Second, false) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return fmt.Sprintf("CPU Usage: %.2f%%", percent[0]), nil | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| func (t *Tgbot) getServerUsage() string { | func (t *Tgbot) getServerUsage() string { | ||||||
| 	info, ipv4, ipv6 := "", "", "" | 	info, ipv4, ipv6 := "", "", "" | ||||||
|  | @ -622,34 +646,6 @@ func (t *Tgbot) getServerUsage() string { | ||||||
| 		info += t.I18nBot("tgbot.messages.ipv4", "IPv4=="+ipv4) | 		info += t.I18nBot("tgbot.messages.ipv4", "IPv4=="+ipv4) | ||||||
| 		info += t.I18nBot("tgbot.messages.ipv6", "IPv6=="+ipv6) | 		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
 | 	// get latest status of server
 | ||||||
| 	t.lastStatus = t.serverService.GetStatus(t.lastStatus) | 	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")) | 	info += t.I18nBot("tgbot.messages.serverUpTime", "UpTime=="+strconv.FormatUint(t.lastStatus.Uptime/86400, 10), "Unit=="+t.I18nBot("tgbot.days")) | ||||||
|  | @ -659,10 +655,31 @@ func (t *Tgbot) getServerUsage() string { | ||||||
| 	info += t.I18nBot("tgbot.messages.udpCount", "Count=="+strconv.Itoa(t.lastStatus.UdpCount)) | 	info += t.I18nBot("tgbot.messages.udpCount", "Count=="+strconv.Itoa(t.lastStatus.UdpCount)) | ||||||
| 	info += t.I18nBot("tgbot.messages.traffic", "Total=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Sent+t.lastStatus.NetTraffic.Recv)), "Upload=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Sent)), "Download=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Recv))) | 	info += t.I18nBot("tgbot.messages.traffic", "Total=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Sent+t.lastStatus.NetTraffic.Recv)), "Upload=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Sent)), "Download=="+common.FormatTraffic(int64(t.lastStatus.NetTraffic.Recv))) | ||||||
| 	info += t.I18nBot("tgbot.messages.xrayStatus", "State=="+fmt.Sprint(t.lastStatus.Xray.State)) | 	info += t.I18nBot("tgbot.messages.xrayStatus", "State=="+fmt.Sprint(t.lastStatus.Xray.State)) | ||||||
| 	return info | 	// get CPU info
 | ||||||
|  |         cpuInfo, err := getCPUInfo() | ||||||
|  |          if err != nil { | ||||||
|  | 	logger.Error("Error getting CPU info: ", err) | ||||||
|  |          } else { | ||||||
|  | 	info += t.I18nBot("tgbot.messages.cpuInfo", "CPU Info=="+cpuInfo) | ||||||
| 		 } | 		 } | ||||||
| 
 | 
 | ||||||
|  |        // get CPU usage
 | ||||||
|  |        cpuUsage, err := getCPUUsage() | ||||||
|  |        if err != nil { | ||||||
|  | 	logger.Error("Error getting CPU usage: ", err) | ||||||
|  |        } else { | ||||||
|  | 	info += t.I18nBot("tgbot.messages.cpuUsage", "CPU Usage=="+cpuUsage) | ||||||
|  | 	       } | ||||||
| 
 | 
 | ||||||
|  |        // get disk usage
 | ||||||
|  |        diskUsage, err := getDiskUsage() | ||||||
|  |        if err != nil { | ||||||
|  | 	logger.Error("Error getting disk usage: ", err) | ||||||
|  |         } else { | ||||||
|  | 	info += t.I18nBot("tgbot.messages.diskUsage", "Disk Usage=="+diskUsage) | ||||||
|  | 	       } | ||||||
|  | 	return info | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| func (t *Tgbot) UserLoginNotify(username string, ip string, time string, status LoginStatus) { | func (t *Tgbot) UserLoginNotify(username string, ip string, time string, status LoginStatus) { | ||||||
| 	if !t.IsRunning() { | 	if !t.IsRunning() { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 quydang
						quydang