only ErisPulse-1.x 当前未重构
一个基于 ErisPulse SDK 的跨平台消息同步方案,支持 QQ群 ↔ 云湖群 ↔ Telegram群 的多向消息同步。
该项目由 ErisPulse SDK 社区团队直接维护,将第一时间适配 SDK 最新功能与优化,保障长期更新与技术支持。
- 支持 QQ、云湖、Telegram 平台之间的双向实时消息同步
- 消息格式转换(text / html / markdown)
- 跨平台消息撤回同步
- 支持 webhook + 反向代理部署,便于公网访问
- 模块化设计,按需安装适配器
pip install ErisPulse
epsdk update
epsdk install AnyMsgSync # 必须:核心同步模块
# 以下为可选模块,根据需要安装:
epsdk install OneBotAdapter # QQ 同步支持
epsdk install YunhuAdapter # 云湖 同步支持
epsdk install TelegramAdapter # Telegram 同步支持
在项目根目录创建或修改 env.py
文件进行配置。
from ErisPulse import sdk
# QQ 适配器配置(OneBot)
sdk.env.set("OneBotAdapter", {
"mode": "client",
"server": {
"host": "127.0.0.1",
"port": 3001,
"path": "/",
"token": ""
},
"client": {
"url": "ws://127.0.0.1:3001",
"token": ""
}
})
# 云湖适配器配置
sdk.env.set("YunhuAdapter", {
"token": "你的云湖 Token",
"server": {
"host": "127.0.0.1",
"port": 5888,
"path": "/webhook"
}
})
# Telegram 适配器配置
sdk.env.set("TelegramAdapter", {
"token": "你的 Telegram Bot Token",
"mode": "polling",
"server": {
"host": "127.0.0.1",
"port": 8443,
"path": "/telegram/webhook"
},
"webhook": {
"host": "tme.wsu2059.workers.dev",
"port": 443,
"path": "/telegram/webhook"
},
"proxy": {
"type": "socks5",
"host": "127.0.0.1",
"port": 7898
}
})
# 群组映射关系配置
sdk.env.set("AnyMsgSync", {
"qq": {
"QQ群ID1": [
{"type": "yunhu", "group_id": "Yunhu群ID1", "format": "html"},
{"type": "telegram", "group_id": -1001234567890, "format": "markdown"}
]
},
"yunhu": {
"Yunhu群ID1": [
{"type": "qq", "group_id": "QQ群ID1", "format": "text"},
{"type": "telegram", "group_id": -1001234567890, "format": "markdown"}
]
},
"telegram": {
"-1001234567890": [
{"type": "qq", "group_id": "QQ群ID1", "format": "text"},
{"type": "yunhu", "group_id": "Yunhu群ID1", "format": "html"}
]
}
})
建议搭配 NapCat 使用 QQ 协议,以获得更稳定的连接体验。
在项目根目录运行主程序:
python main.py
from ErisPulse import sdk
import asyncio
async def main():
sdk.init()
try:
await sdk.adapter.startup()
if hasattr(sdk, "AnyMsgSync"):
await sdk.AnyMsgSync.start()
await asyncio.Event().wait()
except KeyboardInterrupt:
print("Shutting down...")
finally:
await sdk.adapter.shutdown()
if __name__ == "__main__":
asyncio.run(main())
Amer 曾为多个群组提供稳定的消息同步服务,为开源社区做出了重要贡献。感谢它一直以来的努力与陪伴。
Amer 开源项目地址:http://github.com/wsu2059q/amer