使用Nonebot2让Discord和QQ群实现互相通信
Project description
nonebot_dcqq_relay_plugin
✨ 使用Nonebot2让Discord和QQ群实现互相通信 ✨
介绍
使用Onebot V11适配器和Discord适配器来实现对Discord与QQ群互相交流的插件。
理论支持所有使用Onebot V11的框架, 只不过有些框架可能会遇到问题,请自行测试。
目前只支持普通的文字频道,不支持帖子频道 (也不打算支持)
如果你嫌这个项目不够好用,可以尝试Autuamn大大的nonebot-plugin-dcqq-relay插件
功能
ARK消息和Embed消息暂不打算支持
目前支持的消息:
- 文字
- 图片
- 表情 (表情超市或QQ默认表情(除了高级表情)基本都支持)
- 回复消息
- 文件
- 撤回消息 (如果你使用的是Lagrange.Onebot那么可能会失效)
尚未支持的消息:
- 语音
- 视频
安装
目前此插件还在早期开发阶段,还有许多问题,如果遇到问题还请务必提 issue。
还未开发完成,而且代码太乱了,暂时不发布到nonebot市场,代整理一遍再去发布
使用包管理器安装(推荐)
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-dcqq-relay-plugin
pdm (未测试)
pdm add nonebot-dcqq-relay-plugin
poetry
poetry add nonebot-dcqq-relay-plugin
打开 nonebot2 项目的 bot.py
文件, 在其中写入
如果你没有bot.py
文件,请使用nb-cli
生成bot文件
nonebot.load_plugin('nonebot_dcqq_relay_plugin')
从 github 安装
在 nonebot2 项目的插件目录下, 打开命令行, 输入以下命令克隆此储存库git clone https://github.com/PawTeamClub/nonebot_dcqq_relay_plugin.git
打开 nonebot2 项目的 bot.py
文件, 在其中写入
nonebot.load_plugin('src.plugins.nonebot_dcqq_relay_plugin')
配置
DISCORD_GUILD
你需要开启Discord的开发者模式获取服务器ID
填写需要转发的Discord服务器ID
DISCORD_GUILD="1234567890000000000000"
DISCORD_CHANNEL
你需要开启Discord的开发者模式获取频道ID
填写需要转发的Discord频道ID
DISCORD_CHANNEL="1234567890000000000000"
ONEBOT_CHANNEL
填写需要转发的QQ群号
ONEBOT_CHANNEL="123456789"
DATA_DIR (未测试)
修改数据文件默认存储路径,默认存在包安装目录下
DATA_DIR="./data/"
env配置例子
# nonebot2默认配置
DRIVER=~fastapi+~httpx+~websockets
# nonebot_dcqq_relay_plugin配置
DISCORD_GUILD="1234567890000000000000"
DISCORD_CHANNEL="1234567890000000000000"
ONEBOT_CHANNEL="123456789"
# nonebot2 discord适配器设置
DISCORD_PROXY='http://127.0.0.1:8080'
DISCORD_BOTS='
[
{
"token": "xxxxx",
"intent": {
"guild_messages": true,
"guild_message_reactions": true,
"direct_messages": true,
"direct_message_reactions": true,
"message_content": true
},
"application_commands": {"*": ["*"]}
}
]
'
Q & A
Q1: 遇到"unable to verify the first certificate"报错 (通常是因为使用了类似于steamcommunity 302反代工具和NapCatQQ框架的下载文件强制使用可信证书导致)
A1: 1. 强制修改源码 2. 使用代理工具全局代理,不要使用反代工具
Q2: 撤回无法使用
A2: 看已知BUG列表第一条
Q3: 为何不做多QQ群多频道转发
A3: 技术力不够因为懒
已知BUG列表
- Discord撤回onebot消息异常 (Lagrange.Onebot|Lagrange.Core的bug)
- 问题: delete_smg函数总是撤回消息的id和接收消息的id不一样 (在Lagrange.Core/issues#226的回答中也遇到了这个问题,暂时没有解决方案
我也不会C#) - 为什么不给Lagrange团队丢issue: 虽然issue那边是Core的问题,但因为是相同问题所以我就不发了
根本原因还是害怕挨骂和害怕交流 - 使用LLOneBot、NapCatQQ框架测试时没有问题
- 问题: delete_smg函数总是撤回消息的id和接收消息的id不一样 (在Lagrange.Core/issues#226的回答中也遇到了这个问题,暂时没有解决方案
- 当一个人发了多图多文或者是多个表情的时候,可能会因为网络问题导致发送变慢
TODO:
做几把@,做不了一点
感谢
- nonebot/nonebot2: 跨平台 Python 异步聊天机器人框架
- koishijs/koishi-plugin-dcqq-relay: 使用koishi实现同步Discord与QQ间的消息
- Autuamn/nonebot-plugin-dcqg-relay: 在QQ频道与 Discord 之间同步消息的 nonebot2 插件 (抄了初始化的部分)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot_dcqq_relay_plugin-1.1.0.tar.gz
.
File metadata
- Download URL: nonebot_dcqq_relay_plugin-1.1.0.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37496f6d8dc2fb9a5bc4c85d5628b9aca1479d38cb2469eb18fbab0e2daf024c |
|
MD5 | a9d804bd3a3fbd815346de0697c8a4bb |
|
BLAKE2b-256 | 445fe3ecd0552486521c7d4f93b68aa4987d1d17b86a9cbd80cc47b3ff7e5951 |
File details
Details for the file nonebot_dcqq_relay_plugin-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: nonebot_dcqq_relay_plugin-1.1.0-py3-none-any.whl
- Upload date:
- Size: 22.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 418069e3566b60299d8a64427ef0682171f3954b434e3152cc45a6169f46a951 |
|
MD5 | d0ebbd9d95f1737edaa8c287927bb640 |
|
BLAKE2b-256 | a2f5c8bf083c952d1dee223a357299b4aaf4f708b7e41b6d7fd76bd97938c96f |