fix: Removed obsolete anti-spam policy checks requiring AFK solutions

This commit is contained in:
LWR 2023-09-14 22:49:47 +08:00
parent 5b9dfae594
commit 36788e7dc8
2 changed files with 3 additions and 40 deletions

View File

@ -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

View File

@ -117,9 +117,6 @@ DEFAULT_CONFIG = {
# 被风控需通过验证码解决时,发送给主人 QQ 的提醒消息
"BAN_NOTICE": "发送消息失败, 请手动通过验证码验证~",
# 被风控需挂机一段时间解决时,发送给主人 QQ 的提醒消息
"BAN_WAIT_NOTICE": "发送消息失败, 可能需挂机一段时间后恢复, 已停止尝试消息推送, "
"请挂机一段时间后使用 \"补发\" 命令恢复消息发送, 如不想补发期间漏发的消息, 可先使用一次 \"清空补发队列\" 命令~",
# 是否启用风控消息补发,启用后,因风控导致发送失败的推送消息会被暂存,解除风控后使用 ”补发“ 命令可以补发暂存的消息
"BAN_RESEND": True,
# 启用风控消息补发时,被风控时是否继续尝试发送消息,关闭后,发生风控时,后续需要发送的消息将不再尝试发送,而是被直接暂存,需使用 ”补发“ 命令后恢复正常,用于防止风控期间频繁尝试发送消息导致更严重的冻结