diff --git a/starbot/core/sender.py b/starbot/core/sender.py index 2bd5631..22ce0bf 100644 --- a/starbot/core/sender.py +++ b/starbot/core/sender.py @@ -7,7 +7,7 @@ from graia.ariadne import Ariadne from graia.ariadne.connection.config import config as AriadneConfig, HttpClientConfig, WebsocketClientConfig from graia.ariadne.exception import RemoteException, AccountMuted, UnknownTarget from graia.ariadne.message.chain import MessageChain -from graia.ariadne.message.element import At, AtAll, Source +from graia.ariadne.message.element import At, AtAll from graia.ariadne.model import LogConfig, MemberPerm from loguru import logger from pydantic import BaseModel, PrivateAttr @@ -96,9 +96,7 @@ class Bot(BaseModel): self.__queue.pop(0) continue try: - active = await self.__bot.send_group_message(msg_id, message) - if active.message_chain[Source][0].id < 0: - raise RemoteException("MESSAGE_BANNED") + await self.__bot.send_group_message(msg_id, message) self.__banned = False logger.info(f"{self.qq} -> 群[{msg_id}] : {message.safe_display}") self.__queue.pop(0) @@ -127,19 +125,6 @@ class Bot(BaseModel): else: logger.warning("未设置主人 QQ, 无法发送提醒消息, 可使用 config.set(\"MASTER_QQ\", QQ号) 进行设置") return - elif "MESSAGE_BANNED" in str(ex): - self.__banned = True - config.set("BAN_CONTINUE_SEND_MESSAGE", False) - logger.error( - "消息补发期间再次触发风控, 已停止尝试消息推送, 后续消息将会被暂存, " - f"请挂机一段时间后使用 \"补发\" 命令恢复消息发送, 群号: {msg_id}" - ) - if config.get("MASTER_QQ"): - notice = "消息补发期间再次触发风控, 请挂机一段时间后重新发送 \"补发\" 命令~" - await self.__bot.send_friend_message(config.get("MASTER_QQ"), notice) - else: - logger.warning("未设置主人 QQ, 无法发送提醒消息, 可使用 config.set(\"MASTER_QQ\", QQ号) 进行设置") - return else: logger.exception("消息推送模块异常", ex) if config.get("MASTER_QQ"): @@ -182,9 +167,7 @@ class Bot(BaseModel): self.__queue.append((msg.id, message, msg.get_time())) logger.error(f"受风控影响, 要发送的消息已暂存, 请解除风控后使用 \"补发\" 命令恢复, 群号: {msg.id}") continue - active = await self.__bot.send_group_message(msg.id, message) - if active.message_chain[Source][0].id < 0: - raise RemoteException("MESSAGE_BANNED") + await self.__bot.send_group_message(msg.id, message) self.__banned = False logger.info(f"{self.qq} -> 群[{msg.id}] : {message.safe_display}") except AccountMuted: @@ -212,23 +195,6 @@ class Bot(BaseModel): await self.__bot.send_friend_message(config.get("MASTER_QQ"), config.get("BAN_NOTICE")) else: logger.warning("未设置主人 QQ, 无法发送提醒消息, 可使用 config.set(\"MASTER_QQ\", QQ号) 进行设置") - elif "MESSAGE_BANNED" in str(ex): - self.__banned = True - config.set("BAN_RESEND", True) - config.set("BAN_CONTINUE_SEND_MESSAGE", False) - logger.error( - "受风控影响, 发送群消息失败, 已停止尝试消息推送, 后续消息将会被暂存, " - "请挂机一段时间后使用 \"补发\" 命令恢复消息发送, 如不想补发期间漏发的消息, " - f"可先使用一次 \"清空补发队列\" 命令, 群号: {msg.id}" - ) - if not config.get("RESEND_AT_MESSAGE"): - message = message.exclude(At, AtAll) - if len(message) > 0: - self.__queue.append((msg.id, message, msg.get_time())) - if config.get("MASTER_QQ"): - await self.__bot.send_friend_message(config.get("MASTER_QQ"), config.get("BAN_WAIT_NOTICE")) - else: - logger.warning("未设置主人 QQ, 无法发送提醒消息, 可使用 config.set(\"MASTER_QQ\", QQ号) 进行设置") else: logger.exception("消息推送模块异常", ex) continue diff --git a/starbot/utils/config.py b/starbot/utils/config.py index bdaca77..7a2b967 100644 --- a/starbot/utils/config.py +++ b/starbot/utils/config.py @@ -117,9 +117,6 @@ DEFAULT_CONFIG = { # 被风控需通过验证码解决时,发送给主人 QQ 的提醒消息 "BAN_NOTICE": "发送消息失败, 请手动通过验证码验证~", - # 被风控需挂机一段时间解决时,发送给主人 QQ 的提醒消息 - "BAN_WAIT_NOTICE": "发送消息失败, 可能需挂机一段时间后恢复, 已停止尝试消息推送, " - "请挂机一段时间后使用 \"补发\" 命令恢复消息发送, 如不想补发期间漏发的消息, 可先使用一次 \"清空补发队列\" 命令~", # 是否启用风控消息补发,启用后,因风控导致发送失败的推送消息会被暂存,解除风控后使用 ”补发“ 命令可以补发暂存的消息 "BAN_RESEND": True, # 启用风控消息补发时,被风控时是否继续尝试发送消息,关闭后,发生风控时,后续需要发送的消息将不再尝试发送,而是被直接暂存,需使用 ”补发“ 命令后恢复正常,用于防止风控期间频繁尝试发送消息导致更严重的冻结