【问题标题】:Count the number of messages in a given time period计算给定时间段内的消息数
【发布时间】:2021-12-16 12:22:06
【问题描述】:

对于 Discord 服务器,我有一个机器人,每当来自成员的消息频率过高时,该机器人就会启用慢速模式。问题是我不知道如何解决这个问题(即你如何检测任何时间跨度内的消息数量?)。我只需要将numberOfMessages 除以timePeriodtimePeriod 将每 10 秒重置一次,以便我们每 10 秒获取平均消息。)


如何获取过去 10 秒内发送的消息数?

【问题讨论】:

  • 考虑使用ratelimiter python 库。然后,您可以限制您的机器人从您自己的代码发送的消息。
  • 问题不在于我的 botserver members 中发送了太多消息。

标签: python discord discord.py bots


【解决方案1】:

要检索一定时间内发送的消息,可以使用TextChannel history method

在这个方法中,有两个参数会让你感兴趣,之前和之后。您可以为将在您的频道历史记录中返回的消息指定最短日期(以日期时间或雪花形式)和最长发布日期。所以接下来是你感兴趣的,你的datetime.now() -10s。

(然后您将len() 应用到您的历史记录上,最后返回给您)


注意:discord.py 已停用,请使用另一个 fork,例如 nextcord

【讨论】:

  • 这不起作用:File "script.py", line 35 async for message in channel.history(*, after=-10): ^ SyntaxError: invalid syntax
  • 感谢您提醒我们 discord.py 已停产。
猜你喜欢
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多