安装docker版本的xy框架,下面只是其中一种,也可以安装XXXBot-pad
docker run -dit \
-p 9000:9000 \
--restart=on-failure:3 \
--name XYBotV2 \
--log-opt max-size=5m \
-v /root/XYBotV2:/app \
xmoxmo/xybotv2
docker运行后,去docker运行日志里找到登陆二维码的链接,扫码登陆,这个docker似乎没有webui
XY框架安装后,有两种方案:
一是直接用Bncr的插件,
二是修改为Aut插件,
选其一即可。推荐方案一,简单
方案一:
找到plugins文件夹下的all_in_one_config.toml文件,打开修改其中的base_url地址为
http://autMan地址:端口/xy/receive
如果安装的是XXXBot-pad框架,道理一样,安装bncr插件,找到plugins/Bncr/config.toml,修改其中的base_url地址即可。
还有就是bncr插件里有条语句要修改一下
@on_image_message
async def handle_image(self, bot: WechatAPIClient, message: dict):
logger.info("收到了图片消息")
# return await self.request(message)
修改为
@on_image_message
async def handle_image(self, bot: WechatAPIClient, message: dict):
logger.info("收到了图片消息")
return await self.request(message)
然后重启一下docker xy框架即可完成
方案二:
一是plugins文件夹下的all_in_one_config.toml文件,最下面增加几行,没有就自己创建
[Aut]
enable = true
base_url = "http://192.168.31.44:9999/xy/receive"
解释一下,代码中的链接是autMan的地址和端口
二是plugins文件夹下放一个插件文件aut_plugin.py,这个插件来自小寒寒大佬,如有侵权请联系删除
from loguru import logger
from WechatAPI import WechatAPIClient
from utils.decorators import *
from utils.plugin_base import PluginBase
import aiohttp
import tomllib
class AutPlugin(PluginBase):
description = "Aut"
author = "原作者是小寒寒"
version = "1.0.0"
def __init__(self):
super().__init__()
with open("plugins/all_in_one_config.toml", "rb") as f:
config = tomllib.load(f)
plugin_config = config["Aut"]
self.enable = plugin_config["enable"]
self.base_url = plugin_config["base_url"]
async def request(self, message):
try:
logger.debug(message)
async with aiohttp.request("POST", url=self.base_url, json=message) as req:
return await req.json()
except Exception as e:
#logger.error(f"推送Aut失败: {str(e)}")
return
@on_text_message
async def handle_text(self, bot: WechatAPIClient, message: dict):
return await self.request(message)
@on_at_message
async def handle_at(self, bot: WechatAPIClient, message: dict):
logger.info("收到了被@消息")
return await self.request(message)
@on_xml_message
async def handle_xml(self, bot: WechatAPIClient, message: dict):
logger.info("收到了xml消息")
return await self.request(message)
@on_friend_request
async def handle_friend(self, bot: WechatAPIClient, message: dict):
logger.info("收到了好友申请")
return await self.request(message)
@on_voice_message
async def handle_voice(self, bot: WechatAPIClient, message: dict):
logger.info("收到了语音消息")
# return await self.request(message)
@on_image_message
async def handle_image(self, bot: WechatAPIClient, message: dict):
logger.info("收到了图片消息")
return await self.request(message)
@on_video_message
async def handle_video(self, bot: WechatAPIClient, message: dict):
logger.info("收到了视频消息")
# return await self.request(message)
@on_file_message
async def handle_file(self, bot: WechatAPIClient, message: dict):
logger.info("收到了文件消息")
# return await self.request(message)
@on_quote_message
async def handle_quote(self, bot: WechatAPIClient, message: dict):
logger.info("收到了引用消息")
return await self.request(message)
@on_sys_message
async def handle_sys(self, bot: WechatAPIClient, message: dict):
logger.info("收到了系统消息")
return await self.request(message)
@on_pat_message
async def handle_pat(self, bot: WechatAPIClient, message: dict):
logger.info("收到了拍一拍消息")
return await self.request(message)
@on_emoji_message
async def handle_emoji(self, bot: WechatAPIClient, message: dict):
logger.info("收到了表情消息")
return await self.request(message)
# @schedule('interval', seconds=5)
# async def periodic_task(self, bot: WechatAPIClient):
# logger.info("我每5秒执行一次")
# @schedule('cron', hour=8, minute=30, second=30)
# async def daily_task(self, bot: WechatAPIClient):
# logger.info("我每天早上8点30分30秒执行")
# @schedule('date', run_date='2025-01-29 00:00:00')
# async def new_year_task(self, bot: WechatAPIClient):
# logger.info("我在2025年1月29日执行")
三是autman安装对接插件,并设置配参即可,后台web上适配器栏目内启用xy对接并重启autMan
screenshot-20250507-051543-cn-zhelee-autman-maina.jpg
screenshot-20250506-200715-cn-zhelee-autman-maina.jpg