Python 试图列出最重要的;投票表决;带有特定反应表情符号的邮件
试着做一件事,你输入一个命令,然后得到一个前5条消息的列表,上面有一个名为:goldmedal:的反应表情符号。当进入bot时,一切都很好,但是当执行命令时,它会对它能找到的每一条消息启动一个无限的响应循环。并没有显示“金牌”的价值,而是对这一特定信息的所有反应 您在此的功能:Python 试图列出最重要的;投票表决;带有特定反应表情符号的邮件,python,discord.py,Python,Discord.py,试着做一件事,你输入一个命令,然后得到一个前5条消息的列表,上面有一个名为:goldmedal:的反应表情符号。当进入bot时,一切都很好,但是当执行命令时,它会对它能找到的每一条消息启动一个无限的响应循环。并没有显示“金牌”的价值,而是对这一特定信息的所有反应 您在此的功能: def num_reactions(message): return sum(react_count for react in message.reactions) 仅获取对消息的不同反应数,而不是使用金牌表情
def num_reactions(message):
return sum(react_count for react in message.reactions)
仅获取对消息的不同反应数,而不是使用金牌表情符号的反应数。您可能需要这样的内容:
def num_reactions(message):
for react in message.reactions:
if react.emoji.name === "goldmedal_emoji":
return react.count
您的方法还存在许多长期问题:
我可以推荐一种不同的方法来存储内存中最高的5个(希望不是RAM,而是数据库,或者其他持久性存储,如文本文件,以防您的机器人崩溃),当新邮件有更多的“goldmedal\u emoji”反应时,将其替换。欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。“效果不太好”不是一个问题。您发布的示例需要一些支持代码。
def num_reactions(message):
for react in message.reactions:
if react.emoji.name === "goldmedal_emoji":
return react.count