首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让不一致机器人(Python)等待嵌入的url消息有内容?

如何让不一致机器人(Python)等待嵌入的url消息有内容?
EN

Stack Overflow用户
提问于 2021-09-22 02:12:43
回答 1查看 66关注 0票数 1

我目前正在设置一个机器人,直接从一个共享的twitter链接发布图像。我在技术上让一切正常工作,但它有一个稍微令人恼火的bug。对于要在discord通道中发布的图像,该链接必须发布两次。

每当机器人检测到一条消息时,如果嵌入消息的长度大于0,它就会发布图像。问题是来自新链接的第一个嵌入消息的长度始终为0,但具有相同链接的后续消息将具有正确的消息嵌入长度。

代码块的开头如下所示:

代码语言:javascript
复制
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    print(len(message.embeds))

    if len(message.embeds) > 0:
        # Do stuff    

因此,重申一下,如果我从Twitter发送一个新的嵌入url,那么长度将为0。如果我再次发送消息,长度将正确地大于0。有没有办法让初始嵌入消息具有正确的长度,或者等待消息的嵌入部分解析?

EN

Stack Overflow用户

发布于 2021-09-22 02:59:15

如果不知道on_message在哪里被调用,message的类型是什么,或者你的@client.event装饰器做了什么(一个更完整的例子会有所帮助),这就有点难说了,但你的问题可能来自于你在代码中同时使用了同步和异步(async)函数。

情况可能是,在第一次执行on_message消息时,消息还不可用,但在第二次执行时就可用。你有没有试着用await获取它?

为了理解在python中的asyncawait协程下发生了什么,我强烈建议this article不要在任何反模式下运行。另一种方法是从代码的完全同步版本(没有任何async)开始,以检查基本逻辑是否正常工作

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69277389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档