feat: Send notice to master when sending group messages is banned

This commit is contained in:
LWR
2023-06-18 00:38:21 +08:00
parent 55ce0f3128
commit f4afd0caa5
2 changed files with 14 additions and 0 deletions

View File

@@ -40,6 +40,9 @@ class Bot(BaseModel):
__at_all_limited: Optional[int] = PrivateAttr()
"""@全体成员次数用尽时所在日期"""
__banned: Optional[bool] = PrivateAttr()
"""当前是否被风控"""
__queue: Optional[List[Message]] = PrivateAttr()
"""消息补发队列"""
@@ -56,6 +59,7 @@ class Bot(BaseModel):
log_config=LogConfig(log_level="DEBUG")
)
self.__at_all_limited = time.localtime(time.time() - 86400).tm_yday
self.__banned = False
self.__queue = []
# 注入 Bot 实例引用
@@ -98,6 +102,12 @@ class Bot(BaseModel):
exception = AtAllLimitedException()
self.__at_all_limited = time.localtime(time.time()).tm_yday
continue
elif "LIMITED_MESSAGING" in str(ex):
logger.error(f"受风控影响, 发送群消息失败, 需人工通过验证码验证, 群号: {msg.id}")
if config.get("MASTER_QQ"):
await self.__bot.send_friend_message(config.get("MASTER_QQ"), config.get("BAN_NOTICE"))
else:
logger.warning("未设置主人 QQ, 无法发送提醒消息, 可使用 config.set(\"MASTER_QQ\", QQ号) 进行设置")
else:
logger.exception("消息推送模块异常", ex)
continue

View File

@@ -110,6 +110,8 @@ SIMPLE_CONFIG = {
# 每个群动态 @ 我命令人数上限,单次 @ 人数过多容易被风控,不推荐修改
"COMMAND_DYNAMIC_AT_ME_LIMIT": 20,
# 被风控时,发送给主人 QQ 的提醒消息
"BAN_NOTICE": "发送消息失败, 请手动通过验证码验证~",
# 是否启用风控消息补发,暂未实现
"BAN_RESEND": False,
# 风控发送失败消息滞留时间上限消息因风控滞留超出此时长不会进行补发0 为无限制,单位:秒,暂未实现
@@ -228,6 +230,8 @@ FULL_CONFIG = {
# 每个群动态 @ 我命令人数上限,单次 @ 人数过多容易被风控,不推荐修改
"COMMAND_DYNAMIC_AT_ME_LIMIT": 20,
# 被风控时,发送给主人 QQ 的提醒消息
"BAN_NOTICE": "发送消息失败, 请手动通过验证码验证~",
# 是否启用风控消息补发,暂未实现
"BAN_RESEND": True,
# 风控发送失败消息滞留时间上限消息因风控滞留超出此时长不会进行补发0 为无限制,单位:秒,暂未实现