fix: qqbot wechatbot 模块循环依赖问题

This commit is contained in:
jxxghp
2026-03-22 21:49:57 +08:00
parent 5cded77387
commit e4451c7e6a
2 changed files with 48 additions and 48 deletions
+9 -7
View File
@@ -12,6 +12,7 @@ from typing import Optional, List, Tuple
from PIL import Image
from app.core.cache import FileCache
from app.core.config import settings
from app.core.context import MediaInfo, Context
from app.core.metainfo import MetaInfo
from app.log import logger
@@ -98,14 +99,14 @@ class QQBot:
def _forward_to_message_chain(self, payload: dict) -> None:
"""直接调用消息链处理,避免 HTTP 开销"""
def _run():
try:
# FIXME
"""MessageChain().process(
body=payload,
form={},
args={"source": self._config_name},
)"""
# 回调
RequestUtils(timeout=15).post_res(
f"http://127.0.0.1:{settings.PORT}/api/v1/message?token={settings.API_TOKEN}&source={self._config_name}",
json=payload
)
except Exception as e:
logger.error(f"QQ Bot 转发消息失败: {e}")
@@ -303,7 +304,8 @@ class QQBot:
targets_to_send = broadcast
logger.debug(f"QQ Bot: 广播模式,共 {len(targets_to_send)} 个目标")
else:
logger.warn("QQ Bot: 未指定接收者且无互动用户,请在配置中设置 QQ_OPENID/QQ_GROUP_OPENID 或先让用户发消息")
logger.warn(
"QQ Bot: 未指定接收者且无互动用户,请在配置中设置 QQ_OPENID/QQ_GROUP_OPENID 或先让用户发消息")
return False
# 使用 Markdown 格式发送(类似 Telegram
+8 -10
View File
@@ -14,6 +14,7 @@ from app.core.config import settings
from app.core.context import MediaInfo, Context
from app.core.metainfo import MetaInfo
from app.log import logger
from app.utils.http import RequestUtils
from app.utils.string import StringUtils
@@ -356,19 +357,16 @@ class WeChatBot:
return
logger.info(f"收到来自 {self._config_name} 的企业微信智能机器人消息:userid={sender}, text={text}")
self._forward_to_message_chain(userid=sender, text=text)
self._forward_to_message_chain(payload)
def _forward_to_message_chain(self, userid: str, text: str) -> None:
def _forward_to_message_chain(self, payload: dict) -> None:
def _run():
try:
# FIXME
"""MessageChain().handle_message(
channel=MessageChannel.Wechat,
source=self._config_name,
userid=userid,
username=userid,
text=text,
)"""
# 回调
RequestUtils(timeout=15).post_res(
f"http://127.0.0.1:{settings.PORT}/api/v1/message?token={settings.API_TOKEN}&source={self._config_name}",
json=payload
)
except Exception as err:
logger.error(f"企业微信智能机器人转发消息失败:{err}")