我有一个机器人,它发布带有嵌入和一些按钮的消息。过了一段时间(最多几天),我想要更改嵌入和删除按钮中的一些文本。这应该不会对任何事件做出反应,而是完全基于时间戳,这意味着我没有一个引用原始消息的交互对象。
我猜想原则上我可以使用asyncio.sleep()或bot.wait_for(),但是我已经经历过,如果连接在某个时候丢失,即使它只在很短的时间内丢失,这些连接很容易失败。大多数情况下,当时间超过几个小时时,预定的事件就不会触发。有什么办法让这个更可靠吗?
我想到的另一种可能是在我的DB中记录信道和消息id,然后,一旦时机成熟,用bot.get_channel(channel_id)和channel.fetch_message(message_id)获取消息并更新它。对我来说,这似乎是一种解决办法,所以我想知道是否有一种更直接、更优雅的方法来实现这一点?
发布于 2022-08-06 03:16:59
我在这个场景中使用的任何其他公共机器人开发人员使用的解决方案是:
您可以创建一个@tasks.loop()来检查时间戳,然后,您可以根据消息的类型(对Web钩子消息使用讯息(MessageID) )获取消息。
https://stackoverflow.com/questions/72947764
复制相似问题