以飞牛OS举例
一、安装docker版本的xy框架
1、文件管理里面新建一个文件夹

2、打开docker新建一个项目,将下面代码粘贴进去,运行即可。代码需要修改部分:/vol4/1000/docker
,改为第一步你新建的文件夹路径,飞牛里面右键该文件夹,点属性,复制原始路径就是【不理解就看上一张图片】
version: '3.8'
services:
xybotv2:
image: xmoxmo/xybotv2
container_name: XYBotV2
ports:
- "9000:9000"
restart: always
logging:
driver: json-file
options:
max-size: 5m
volumes:
- /vol4/1000/docker/XYBotV2:/app

3、等待构建完成

4、修改插件
两种方案,推荐方案一简单。
方案一:
找到plugins文件夹下的all_in_one_config.toml文件,打开修改其中的base_url地址为:
http://autMan地址:端口/xy/receive

还有就是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)
切记,改完要重启XYBotV2容器一次才生效!
方案二:
1、在plugins文件夹下的all_in_one_config.toml文件,最下面增加几行
[Aut]
enable = true
base_url = "http://autMan地址:端口/xy/receive"
2、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日执行")
切记,改完要重启XYBotV2容器一次才生效!
二、登录XYbot
在xy的容器日志里面获取二维码链接,访问这个链接有个二维码,机器人账号扫码登录即可


三、autman后台对接插件设置
下载autman安装对接插件,设置配参即可,后台web上适配器栏目内启用xy对接并重启autMan


四、测试
给机器人发 time 看是否有反馈
五、其他
1、消息转发(文本)
前缀改成 xygroup:
带上群号就是:xygroup:66666666@chatroom

2、消息转发(图片)
如果图片无法转发,最下面替换添加:
{"https":"http"}
