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.1.2.tar.gz (20.0 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.1.2-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for nonebot_plugin_dcqq_relay-1.1.2.tar.gz
Algorithm Hash digest
SHA256 de46391116730f912c2a88e27b3cc6ea76787d43b71d49f05ef311a1a6e2575c
MD5 ad6820f27bfe3d29c2cdd2cf0826a52a
BLAKE2b-256 495a04b42a7f40c1ec9a2c637354d0c36d9be53127e1df2875af08750a8c334c

See more details on using hashes here.

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

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.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_dcqq_relay-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 23cc4ff58e896ab5207cb791c3e80486a5c28aeb01c60938068c74cb247886e7
MD5 a14fd1306e0472d7056680ba1dbad08c
BLAKE2b-256 b6bc90f0850d7048e2e1cbf9686c876782b5fbe266349078911f450bff101747

See more details on using hashes here.

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

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