Skip to main content

在QQ群与 Discord 之间同步消息的 nonebot2 插件

Project description

QQ群-Discord 互通

python

前言

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 IntentPrivileged Gateway Intentsp 配置 并在 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_idwebhook_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_dcqq_relay-1.2.1.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_dcqq_relay-1.2.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_dcqq_relay-1.2.1.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_dcqq_relay-1.2.1.tar.gz
Algorithm Hash digest
SHA256 312913172a18873e7c8e02a69799a2de0b92783ed7bd1d99db9fcfbc3d23c3e1
MD5 5f6e846d83ace63c2c63b20f2864c90e
BLAKE2b-256 2a592d95e65f4974cad97120f7b9a2012e02cf5a75743c8dc2b56106ac00f1a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for nonebot_plugin_dcqq_relay-1.2.1.tar.gz:

Publisher: release.yml on Autuamn/nonebot-plugin-dcqq-relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nonebot_plugin_dcqq_relay-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_dcqq_relay-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14a4c430e0e543c1a93afd91f9d4ab7d2d9591e580a151b4aa0ed926408858c7
MD5 b22a9ca3f0ca3cb924924232b2c035e4
BLAKE2b-256 e5dd3c5a34b48857ba3d1258bdacf8c6d3401bcfa44fc0bf5b6bf46a59326528

See more details on using hashes here.

Provenance

The following attestation bundles were made for nonebot_plugin_dcqq_relay-1.2.1-py3-none-any.whl:

Publisher: release.yml on Autuamn/nonebot-plugin-dcqq-relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page