首页 > 解决方案 > discord.py 查找公会成员的第一条消息

问题描述

我正在寻找一种方法来估计服务器成员的原始加入日期。

刚刚获取的问题member.joined_at是,如果成员离开并重新加入,它会重置此日期。因此,最好的选择似乎是获取成员发送的最早消息的日期。

但是,member.history(limit=1, oldest_first=True)似乎只返回成员DM中最旧的消息。

api中是否有任何方法可以在服务器中查找成员最旧的消息?这似乎只能通过搜索栏提供给用户。

标签: pythondiscord.py

解决方案


不幸的是,discord 是基于频道的——这意味着您必须在某个频道(例如 DMChannel 或 TextChannel)中搜索消息。

在这种情况下,您将需要遍历服务器中所有可见的 TextChannel 并从通道开始进行搜索,这在资源上非常昂贵。

Discord API 不允许您通过其搜索功能进行搜索,因此这将是您唯一的方法。我相信更大的机器人只是有一个数据库来存储它第一次看到有人加入服务器来完全避免这个问题。


推荐阅读