Merge branch 'main-fix' of https://github.com/MaiM-with-u/MaiBot into main-fix

This commit is contained in:
SengokuCola
2025-03-26 15:05:05 +08:00

View File

@@ -54,7 +54,9 @@ def send_heartbeat(server_url, client_id):
sys = platform.system() sys = platform.system()
try: try:
headers = {"Client-ID": client_id, "User-Agent": f"HeartbeatClient/{client_id[:8]}"} headers = {"Client-ID": client_id, "User-Agent": f"HeartbeatClient/{client_id[:8]}"}
data = json.dumps({"system": sys}) data = json.dumps(
{"system": sys, "Version": global_config.MAI_VERSION},
)
response = requests.post(f"{server_url}/api/clients", headers=headers, data=data) response = requests.post(f"{server_url}/api/clients", headers=headers, data=data)
if response.status_code == 201: if response.status_code == 201:
@@ -92,9 +94,9 @@ class HeartbeatThread(threading.Thread):
logger.info(f"{self.interval}秒后发送下一次心跳...") logger.info(f"{self.interval}秒后发送下一次心跳...")
else: else:
logger.info(f"{self.interval}秒后重试...") logger.info(f"{self.interval}秒后重试...")
self.last_heartbeat_time = time.time() self.last_heartbeat_time = time.time()
# 使用可中断的等待代替 sleep # 使用可中断的等待代替 sleep
# 每秒检查一次是否应该停止或发送心跳 # 每秒检查一次是否应该停止或发送心跳
remaining_wait = self.interval remaining_wait = self.interval
@@ -104,7 +106,7 @@ class HeartbeatThread(threading.Thread):
if self.stop_event.wait(wait_time): if self.stop_event.wait(wait_time):
break # 如果事件被设置,立即退出等待 break # 如果事件被设置,立即退出等待
remaining_wait -= wait_time remaining_wait -= wait_time
# 检查是否由于外部原因导致间隔异常延长 # 检查是否由于外部原因导致间隔异常延长
if time.time() - self.last_heartbeat_time >= self.interval * 1.5: if time.time() - self.last_heartbeat_time >= self.interval * 1.5:
logger.warning("检测到心跳间隔异常延长,立即发送心跳") logger.warning("检测到心跳间隔异常延长,立即发送心跳")