Autuamn / nonebot-plugin-dcqq-relay

在QQ群与 Discord 之间同步消息的 nonebot2 插件
https://pypi.org/project/nonebot-plugin-dcqq-relay
MIT License
5 stars 2 forks source link

DC转QQ群无法正常使用求助 #1

Closed LeoWrDeom closed 3 months ago

LeoWrDeom commented 4 months ago

求助,DC发消息bot无任何响应,也不会转发消息到Q群,QQ群发消息机器人会报错 需要的功能只是把DC消息转发Q群该如何设置,不需要Q群消息转发DC 以下是我的.env.X设置与报错信息 QQ_1722337089592 QQ_1722337303106

Autuamn commented 4 months ago

你的机器人所处的网络能连接到 Discord 吗 有没有挂代理

Autuamn commented 4 months ago

需要的功能只是把DC消息转发Q群该如何设置,不需要Q群消息转发DC

这没有相关的设置呢

不过实现起来也简单

对于你来说,只需要:

  1. 进入这个目录:G:\Lagrange.Core\Lagrangevenv\lib\site-packages\nonebot_plugin_dcqq_relay
  2. 编辑这个文件:utils.py

在 26-34 行处: 把

async def check_messages(
    bot: Union[qq_Bot, dc_Bot],
    event: Union[
        GroupMessageEvent,
        MessageCreateEvent,
        GroupRecallNoticeEvent,
        MessageDeleteEvent,
    ],
) -> bool:

改成

async def check_messages(
    bot: dc_Bot,
    event: Union[
        MessageCreateEvent,
        MessageDeleteEvent,
    ],
) -> bool:

让他不理会 QQ 的消息就行

对于这种改动行为会在插件更新后失效,所以就不要更新这个插件先

之后可能会出一个开关

LeoWrDeom commented 4 months ago

谢谢,我的网络可以连接到Discord,但是无论我在Discord发什么消息,他都不会转发到QQ群,Discord客户端正常在线,我是用的nonebot+llob方式运行,不知道这个有没有影响

Autuamn commented 4 months ago

能否将日志等级调成DEBUG,并给一份刚启动时的日志。重要信息记得打码

LeoWrDeom commented 3 months ago

请问是我的设置哪里不对吗 image image image

Autuamn commented 3 months ago

我没有看到类似 08-07 17:58:55 [INFO] nonebot | Discord | Bot 1208320000000000000 connected 的日志

请检查是否正确配置了 discord 适配器

LeoWrDeom commented 3 months ago

我确认已安装Discord适配器,但是却始终没有这样的提示

Autuamn commented 3 months ago

请检查配置文件,是否符合 discord 适配器的文档要求

也就是说,请至少在配置文件中加入一下配置项:

DISCORD_BOTS='
[
  {
    "token": "xxx",
    "intent": {
      "guild_messages": true,
      "direct_messages": true,
      "message_content": true
    },
    "application_commands": {"*": ["*"]}
  }
]
'

推荐像 https://github.com/nonebot/adapter-discord/issues/21#issuecomment-2253729567 所说在 intent 添加 "message_content": true,以免收不到 content

LeoWrDeom commented 3 months ago

请问您要看的是这个吗 QQ20240808-202218

Autuamn commented 3 months ago

看来是 Discord 适配器没有正确加载,正确加载会有这样的日志

08-08 20:47:55 [DEBUG] nonebot | Succeeded to load adapter "Discord"
08-08 20:47:55 [DEBUG] nonebot | Succeeded to load adapter "OneBot V11"

如果使用 nb 启动

安装一下就行

nb adapter install nonebot-adapter-discord

如果目录里有 bot.py 入口文件

在头部添加引入

from nonebot.adapters.discord import Adapter as DISCORDAdapter

并在 driver = nonebot.get_driver() 后一行添加

driver.register_adapter(DISCORDAdapter)
bot.py 示例

```python import nonebot from nonebot.adapters.discord import Adapter as DISCORDAdapter from nonebot.adapters.onebot.v11 import Adapter as ONEBOT_V11Adapter nonebot.init() driver = nonebot.get_driver() driver.register_adapter(DISCORDAdapter) driver.register_adapter(ONEBOT_V11Adapter) nonebot.load_builtin_plugins('echo') nonebot.load_from_toml("pyproject.toml") if __name__ == "__main__": nonebot.run() ```

补充

我还注意到 driver 只添加了 fastapi 一个,对于 Discord 适配器来说是不够的

请安装一个客户端型的 driver

nb driver install aiohttp

并在配置中添加 driver

DRIVER=~fastapi+~aiohttp
LeoWrDeom commented 3 months ago

已经按您说的配置,可是又出现了新问题 image

LeoWrDeom commented 3 months ago

这是新的加载页 image

LeoWrDeom commented 3 months ago

安装了开发版的discord适配器,没有了上述报错,又有新的报错, image

LeoWrDeom commented 3 months ago

开发版的dcqq无法pip image

LeoWrDeom commented 3 months ago

dc to qq 消息无法转发 image

Autuamn commented 3 months ago

请试试最新的开发版

readme中的安装命令是错的🫠,抱歉,已经更正了

pip install git+https://github.com/Autuamn/nonebot-plugin-dcqq-relay.git@main
LeoWrDeom commented 3 months ago

可以用了,谢谢您!

shininome commented 3 months ago

需要的功能只是把DC消息转发Q群该如何设置,不需要Q群消息转发DC

这没有相关的设置呢

不过实现起来也简单

对于你来说,只需要:

  1. 进入这个目录:G:\Lagrange.Core\Lagrangevenv\lib\site-packages\nonebot_plugin_dcqq_relay
  2. 编辑这个文件:utils.py

在 26-34 行处: 把

async def check_messages(
    bot: Union[qq_Bot, dc_Bot],
    event: Union[
        GroupMessageEvent,
        MessageCreateEvent,
        GroupRecallNoticeEvent,
        MessageDeleteEvent,
    ],
) -> bool:

改成

async def check_messages(
    bot: dc_Bot,
    event: Union[
        MessageCreateEvent,
        MessageDeleteEvent,
    ],
) -> bool:

让他不理会 QQ 的消息就行

对于这种改动行为会在插件更新后失效,所以就不要更新这个插件先

之后可能会出一个开关

请问有开关了吗~

Autuamn commented 3 months ago

请问有开关了吗~

还没