From 40bd372cc1c3ec87ec196c674da0b9ffb7390e7e Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 8 Feb 2025 18:02:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=87=8D=E5=90=AFgewe=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=9C=BA=E5=99=A8=E4=BA=BA=E4=BC=9A=E7=96=AF=E7=8B=82?= =?UTF-8?q?=E5=8F=91=E6=B6=88=E6=81=AF=20#421?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/platform/sources/gewechat/client.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/astrbot/core/platform/sources/gewechat/client.py b/astrbot/core/platform/sources/gewechat/client.py index e96145bbf..dd0b26a6c 100644 --- a/astrbot/core/platform/sources/gewechat/client.py +++ b/astrbot/core/platform/sources/gewechat/client.py @@ -3,6 +3,8 @@ import asyncio import aiohttp import quart import base64 +import datetime +import tzdata from astrbot.api.platform import AstrBotMessage, MessageMember, MessageType from astrbot.api.message_components import Plain, Image, At, Record @@ -67,6 +69,17 @@ class SimpleGewechatClient(): logger.critical("收到 gewechat 下线通知。") return + if 'Data' in data and 'CreateTime' in data['Data']: + # 得到系统 UTF+8 的 ts + tz_offset = datetime.timedelta(hours=8) + tz = datetime.timezone(tz_offset) + ts = datetime.datetime.now(tz).timestamp() + create_time = data['Data']['CreateTime'] + if create_time < ts - 30: + logger.warning(f"消息时间戳过旧: {create_time},当前时间戳: {ts}") + return + + abm = AstrBotMessage() d = data['Data'] @@ -143,7 +156,7 @@ class SimpleGewechatClient(): abm.message.append(Record(file=file_path, url=file_path)) case _: - logger.error(f"未实现的消息类型: {d['MsgType']}") + logger.info(f"未实现的消息类型: {d['MsgType']}") return logger.info(f"abm: {abm}")