- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TL/DR:我每 10 秒查询一次邀请链接的 approximate_presence_count
,它在很长一段时间内逐渐停止检测状态变化。我该如何解决这个问题?
我正在编写一个 discord 机器人,它监控我所属的几个大型(>100 个成员)服务器中的在线(和其他状态)成员的数量。该机器人不是任何相关服务器的成员,应该每 10 秒左右记录一次成员数量。
这不是 XY problem ,我不希望机器人成为服务器的成员,只是希望它使用邀请链接中的 approximate_presence_count
。
为此,我已经为每个服务器创建了永久邀请链接,并且我通过 tasks.loop
每隔 10 秒查询一次它们的 approximate_presence_count
,将这些值记录到文本文件中。
此外,我有一个小型测试服务器,我有几个 friend 在其中登录和退出,以测试成员计数是否有效。
所有意图都在开发人员门户中启用。这不是与意图相关的问题。
在我的小型测试服务器上进行测试时,在大约 24 小时的时间内运行机器人时,我注意到在我的一位 friend 登录后检测 approximate_presence_count
的变化变得越来越慢或不和谐。我在几个不同的日子里重现了这个。虽然 approximate_presence_count
在任何给定时间更新的时间都有一些微小的变化,可能是由于 discord 后端具有可变的负载量,但这种趋势是不变的。
大约 20-24 小时后,approximate_presence_count
变得几乎无用,很少检测到任何变化。
预期结果:登录/注销之间的延迟和 approximate_presence_count
的变化保持不变
实际结果:登录/注销之间的延迟和 approximate_presence_count
的变化逐渐增加
除了下面的代码之外,我还尝试过不在每次 logger
循环时都获取邀请,但这也没有用。
我可以在多个网络和一台以上的机器上复制信息。
以下代码是从机器人中提取的,应该只是相关组件。提取过程中可能有错误,但要点是一样的。
import discord
from discord.ext import tasks
TOKEN='removed'
INTENTS=discord.Intents.all()
links=['discord.gg/foobarbaz','discord.gg/fillertext']#real invites removed
client = discord.Client(intents=INTENTS)
@tasks.loop(seconds=10)
async def logger():
invites=[await client.fetch_invite(i,with_counts=True)for i in links]#invite objects
counts=[getattr(i,'approximate_presence_count')for i in invites]#presence counts
with open('logs.txt','a') as file:
file.write(datetime.datetime.today().strftime("%d/%m/%Y, %H:%M:%S ")+','.join(map(str,counts))+'\n')
@client.event
async def on_ready():
logger.start()
client.run(TOKEN)
approximate_presence_count
中的预期延迟在我的测试中,当此问题未发生时,登录/注销与 approximate_presence_count
更改之间的延迟在 5 到 40 秒之间,100 人中可能有 1 人最多 60 秒。
该机器人目前正在跟踪 6 个邀请链接,因此对 Discord 的请求频率平均为 0.6/秒。这是否足以引起速率限制? 正如 EricJin 在评论中提到的,这不太可能。
最佳答案
这很可能是评论中建议的 Discord 端的问题。他们有 changed how their invites work .这包括永久邀请链接的工作方式。虽然这篇文章没有说明内部变化,但它确实说明了新邀请如何在实际应用程序/网站上工作。邀请的更改时间与发布此帖子的时间(2022 年 5 月)有关,但此后有更新。
看来您可能遇到了进行这些更改时出现的问题,该问题似乎至少在发布此答案时已解决。
关于python - discord.py 邀请 - approximate_presence_count API 逐渐变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72596371/
我尝试在 Django 中向所有订阅者发送新闻通讯邮件,但我无法决定在 Django 中执行此操作的最佳方法是什么。 首先,我列出了 5 个电子邮件地址并按计划发送(例如延迟 5 分钟)但是,因为我将
我有 Firebase 邀请使用电子邮件和短信就好了。然而,当涉及到通过 Facebook 或 twitter 共享时,我一无所知。通过 Firebase 与 Facebook 邀请共享数据的选项有哪
我们目前在一个 React Native 项目上使用 Firestack,这很棒,但是我们还需要通过 Firebase 的“邀请”功能提供的功能。 有人知道 Firebase Invites、iOS
我已受邀加入 GitHub 存储库。我在团队领导的计算机上看到我肯定已被邀请。但是我没有收到电子邮件,登录 GitHub 时也看不到任何通知。如何找到我的邀请并加入存储库? 最佳答案 如果您被邀请加入
我可以邀请用户加入租户。用户确认邀请并被分配订阅中的角色后,他/她可以查看该订阅以及其他租户的订阅。 我可以使用 az account list 列出来自所有不同租户的用户订阅 是否可以对 Azure
我可以邀请用户加入租户。用户确认邀请并被分配订阅中的角色后,他/她可以查看该订阅以及其他租户的订阅。 我可以使用 az account list 列出来自所有不同租户的用户订阅 是否可以对 Azure
我可以问一下在用户邀请他们的 friend 后如何重定向页面吗? 我有这样的代码:(在 javascript 中) function inviteFriends(){ if(isBusy)
我在我的一个 Facebook 应用程序上实现了一个 FB 邀请你的 friend 按钮。 - 邀请效果很好 - 被邀请的用户收到正确的消息,但当他点击它时 - 它只会导致无处可去(空白页面)。 我如
我正在开发一个 Android 应用程序,我必须在其中使用 Rest API 邀请 Facebook 好友参加 Activity 。 下面是我准备参数包的代码 Bundle eventInvit
我正在尝试将邀请 friend 功能集成到我的应用程序中。我成功地实现了 Facebook SDK 和 Facebook 登录,但是当我尝试使用他们文档中的代码时: String appLinkUrl
我正在编写一个娱乐应用程序(一个用 Android 编写的 RESTful 应用程序)。 我想向 Facebook 好友展示并邀请他们加入我的应用。现在我成功加载了FB friend 。接下来我要做什
我正在尝试使用 Facebook API 来启用邀请 friend 使用我的应用程序我使用了 Facebook 开发者文档。问题是,当用户邀请他的 friend 时,notifications 会出现
如何测试动态链接或邀请?是否有可以运行的 adb 命令,以及如何生成该链接。 我试过(有不同的变体) adb shell am start -W -a android.intent.action.VI
我们如何使用我的应用程序邀请我们的 Twitter 好友/关注者参加任何应用程序/事件。为了在 Facebook 上做同样的事情,我将一些消息发布到我的 friend 墙上。有什么方法可以使用 MGT
twitter 是否有类似于 facebook 的应用程序邀请弹出窗口? 在 facebook 你可以这样写: FB.init({ appId : 'xxx', status :
我想知道是否可以使用 FB.ui 邀请 friend 访问我的 Web 应用程序的自定义页面,但不能访问其索引。 Apprequests 方法似乎没有任何可自定义 uri 的参数 FB.ui({m
我一直在网上寻找一种方法来做到这一点,但没有这样的运气。我的目标是将 session 议程模板保存到电子邮件签名中,该签名将插入到我创建的每个 session 邀请中。 正在寻找有关如何执行此操作的一
我目前正在使用以下代码向用户的 Facebook 好友发送邀请。然而,一旦该功能运行,就会弹出一个确认对话框,我必须确认我想将请求发送给我的 friend 。我想跳过这个额外的步骤。有没有办法避免这个
我目前正在使用以下代码向用户的 Facebook 好友发送邀请。然而,一旦该功能运行,就会弹出一个确认对话框,我必须确认我想将请求发送给我的 friend 。我想跳过这个额外的步骤。有没有办法避免这个
我正在编写一个 Facebook iframe/canvas 应用程序,并希望让用户能够邀请 friend 安装此应用程序。目前我正在使用 Facebook 的 PHP-SDK 来登录用户以及与 Fa
我是一名优秀的程序员,十分优秀!