首页 > 解决方案 > 如何计算表情符号并在不和谐的机器人反应中显示它们?

问题描述

for second in range(60):
    message_id = await message.channel.fetch_message(message.id)
    for reaction in message_id.reactions:
        thumbs_up_count = 0
        thumbs_down_count = 0
        if str(reaction.emoji) == '':
            thumbs_up_count = reaction.emoji.count
        if str(reaction.emoji) == '':
            thumbs_down_count = reaction.emoji.count
        await message.edit(content=("**----POLL----** \n \n**Green Today?** :thumbsup: {} \n \n**Red Today?**   :thumbsdown: {}".format(thumbs_up_count,thumbs_down_count)))
        await asyncio.sleep(3)

这是我的代码,它会进行民意调查,人们会竖起大拇指或大拇指向下做出反应。然后它会在投票时不断编辑消息。代码效率不高,但我没有看到逻辑错误在哪里。它根本不计算表情符号并显示 0。

标签: pythondiscord

解决方案


这是因为你总是用带来的thumbs_up_count, thumbs_down_count东西替换值reaction.emoji.count,所以你可以尝试的是这样的:

for second in range(60):
    message_id = await message.channel.fetch_message(message.id)
    for reaction in message_id.reactions:
        thumbs_up_count = 0
        thumbs_down_count = 0
        if str(reaction.emoji) == '':
            thumbs_up_count += reaction.emoji.count
        if str(reaction.emoji) == '':
            thumbs_down_count += reaction.emoji.count
        await message.edit(content=("**----POLL----** \n \n**Green Today?** :thumbsup: {} \n \n**Red Today?**   :thumbsdown: {}".format(thumbs_up_count,thumbs_down_count)))
        await asyncio.sleep(3)

请注意,我在这两种情况下都替换=+=

希望它可以帮助你:)


推荐阅读