在QQ群与 Discord 之间同步消息的 nonebot2 插件
Project description
QQ群-Discord 互通
前言
OneBot 实现众多,表现各有不同,我的测试环境为 Lagrange.Onebot,遇到 bug 请提 issues,务必附上日志
本人 python 水平有限,遇到你认为可以改进的方法和函数,或有任何不妥之处,或需要注释支持,也请提出
功能
可以在指定的QQ群和 Discord 频道之间同步消息,只支持普通的文字频道,不支持帖子频道
消息支持情况
| 类型 | QQ to Discord | Discord to QQ | 备注 |
|---|---|---|---|
| 文字 | 🟢 | 🟢 | 🟢支持 |
| 图片 | 🟢 | 🟢 | 🟡压缩为文字 |
| At | 🟡 | 🟡 | ⚠️不良好 |
| 回复 | 🟢 | 🟢 | |
| 撤回 | 🟢 | ⚠️ | |
| 表情 | 🟡 | 🟡 | |
| 贴纸 | 🟡 | ||
| 文件 | 🟢 | 🟢 | |
| 视频 | 🟢 | 🟢 | |
| 语音 | 🟢 | 🟢 | |
| Embed | ⚠️ | ||
| xml | ⚠️ | ||
| json | ⚠️ |
安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-dcqq-relay
使用包管理器安装
建议使用 poetry
- 通过 poetry 添加到 NoneBot2 项目的 pyproject.toml
poetry add nonebot-plugin-dcqq-relay
- 也可以通过 pip 安装
pip install nonebot-plugin-dcqq-relay
安装开发中版本
pip install git+https://github.com/Autuamn/nonebot-plugin-dcqq-relay.git@main
配置
数据库
本插件使用 nonebot-plugin-orm 存储消息 ID
仅简单测试过 SQLite、MySQL、PostgreSQL
相关配置请看 NoneBot-最佳实践-数据库
机器人权限
[!IMPORTANT] 请在 Discord App 的 Bot 配置中打开
Message Content Intent:并在 discord adapter 的 bot 配置中添加 intent
"message_content": true:DISCORD_BOTS='[{"token": "xxx", "intent": { "guild_messages": true, "message_content": true <<--- 像这样 },"application_commands": {"*": ["*"]}}]'
推荐权限:管理员
最低权限:
- QQ:
- 管理员(不给撤回功能将不正常)
- Discord:
- Manage Messages(不给无法撤回)
- Mention Everyone(不给无法转发@全体成员)
- Manage Webhooks(不给要提供 Webhook)
dcqq_relay_channel_links
- 类型:
json - 默认值:
[] - 说明:链接对应的QQ群与 Discord 频道,目前只支持一对一链接
配置文件示例
dcqq_relay_channel_links='[
{
"qq_group_id": 123132,
"dc_guild_id": 456456,
"dc_channel_id": 789789,
"webhook_id": 4444444,
"webhook_token": "asdxxx"
},
{
"qq_group_id": int # QQ群号
"dc_guild_id": int # Discord 服务器 id
"dc_channel_id": int # Discord 频道 id
"webhook_id": Optional[int] # (可选的)Discord 对应频道的 Webhook ID
"webhook_token": Optional[str] # (可选的)Discord 对应频道的 Webhook Token
# 不要把注释放在此处!!
}
]'
[!IMPORTANT] Webhook 的相关配置是可选的,不填插件会自动获取,但是要给机器人 Manage Webhooks 权限
关于 Webhook 是什么请看:使用網絡鉤手(Webhooks)
得到 Webhook URL 后,可从 URL 中获取 webhook_id 和 webhook_token
Webhook URL 形如:
https://discord.com/api/webhooks/{webhook_id}/{webhook_token}
例如:
| webhook_id | webhook_token |
https://discord.com/api/webhooks/1243529342621978694/kq1Vc3NsN4d3SB0MAusB-xbY_e8xMChQmxypIFna0c1lwQS-uL85fqupK2jFfkYtUR1h
|-------------------|--------------------------------------------------------------------|
当 Webhook URL 为 https://discord.com/api/webhooks/1243529342621978694/kq1Vc3NsN4d3SB0MAusB-xbY_e8xMChQmxypIFna0c1lwQS-uL85fqupK2jFfkYtUR1h 时
1243529342621978694 就是 webhook_id
kq1Vc3NsN4d3SB0MAusB-xbY_e8xMChQmxypIFna0c1lwQS-uL85fqupK2jFfkYtUR1h 就是 webhook_token
dcqq_relay_unmatch_beginning
- 类型:
list[str] - 默认值:
["/"] - 说明:指明不转发的消息开头
dcqq_relay_only_to_me
- 类型:
bool - 默认值:
False - 说明:指明是否只转发 @机器人 的消息
特别感谢
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_dcqq_relay-1.1.2.tar.gz.
File metadata
- Download URL: nonebot_plugin_dcqq_relay-1.1.2.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de46391116730f912c2a88e27b3cc6ea76787d43b71d49f05ef311a1a6e2575c
|
|
| MD5 |
ad6820f27bfe3d29c2cdd2cf0826a52a
|
|
| BLAKE2b-256 |
495a04b42a7f40c1ec9a2c637354d0c36d9be53127e1df2875af08750a8c334c
|
Provenance
The following attestation bundles were made for nonebot_plugin_dcqq_relay-1.1.2.tar.gz:
Publisher:
release.yml on Autuamn/nonebot-plugin-dcqq-relay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nonebot_plugin_dcqq_relay-1.1.2.tar.gz -
Subject digest:
de46391116730f912c2a88e27b3cc6ea76787d43b71d49f05ef311a1a6e2575c - Sigstore transparency entry: 301633635
- Sigstore integration time:
-
Permalink:
Autuamn/nonebot-plugin-dcqq-relay@a828fc7023f44b514b16b41a48d2c0c742951f6f -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/Autuamn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a828fc7023f44b514b16b41a48d2c0c742951f6f -
Trigger Event:
push
-
Statement type:
File details
Details for the file nonebot_plugin_dcqq_relay-1.1.2-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_dcqq_relay-1.1.2-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23cc4ff58e896ab5207cb791c3e80486a5c28aeb01c60938068c74cb247886e7
|
|
| MD5 |
a14fd1306e0472d7056680ba1dbad08c
|
|
| BLAKE2b-256 |
b6bc90f0850d7048e2e1cbf9686c876782b5fbe266349078911f450bff101747
|
Provenance
The following attestation bundles were made for nonebot_plugin_dcqq_relay-1.1.2-py3-none-any.whl:
Publisher:
release.yml on Autuamn/nonebot-plugin-dcqq-relay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nonebot_plugin_dcqq_relay-1.1.2-py3-none-any.whl -
Subject digest:
23cc4ff58e896ab5207cb791c3e80486a5c28aeb01c60938068c74cb247886e7 - Sigstore transparency entry: 301633646
- Sigstore integration time:
-
Permalink:
Autuamn/nonebot-plugin-dcqq-relay@a828fc7023f44b514b16b41a48d2c0c742951f6f -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/Autuamn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a828fc7023f44b514b16b41a48d2c0c742951f6f -
Trigger Event:
push
-
Statement type: