1. 将discord bot作为nonebot的一个插件加载
效果:转发可以实现,但是discord bot的运行是个死循环,导致nonebot的其他插件全部失效
结论:可以专门开一个小号用于转发,或者将discord bot加入asyncio多线程(怎么做?)
aiocqhttp的官方文件中有一项是将 bot 运行在已有的事件循环中。但是我不会 :(
2. discord webhook
效果:问题非常大。可以直接使用
requests.post(url=webhook_url, data={'content':'test'}, verify=False)
通过webhook给discord发送消息。但是调用消息的时候尝试借助discordwebhook,discord_webhook等库,全都报错:
SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)')
我发现原因出在我使用了羽翼城大佬的反代插件以连接discord。包括使用steam++的discord加速服务也一样。然而当我关闭插件之后必定连接超时。使用魔法以后运行成功,但是挂着魔法用bot让我看起来像个憨憨 :(
3. 同时运行discord bot和nonebot,将discord收到的消息转发到nonebot的监听端口
效果:可能是格式和nonebot接受的消息格式不同,根本不理
结论:用其他方法监听端口,我觉得这个可以现学现用 :)