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