【问题标题】:How do you identify emojis through a user's message? [duplicate]您如何通过用户的消息识别表情符号? [复制]
【发布时间】:2023-04-09 16:40:01
【问题描述】:

我正在使用 client.wait_for 命令收集用户的消息,并且我想知道一种可以识别消息是否为表情符号(默认或自定义)的方法。我尝试使用 guild.fetch_emoji 和 client.get_emoji 来检测它是否是正确的表情符号。我是否必须通过多个函数传递消息?

while continue_function:
    user_msg = await self.bot.wait_for('message', check=lambda message: message.author == ctx.author and message.channel == ctx.channel)
    emoji = self.bot.get_emoji(user_msg.content)
    emoji2 = ctx.guild.fetch_emoji(user_msg.content)
    print(emoji,emoji2)

【问题讨论】:

标签: python discord.py emoji


【解决方案1】:

正如@12944qwerty 所说,您不能使用字符串来获取表情符号。但是,如果您想捕获仅包含表情符号的消息,例如“?”,如 here 所述,您可以使用 from emoji import UNICODE_EMOJI 列出所有 unicode 表情符号,然后您可以找到您的表情符号中是否有表情符号使用此功能发送消息

def is_emoji(content):
    for emoji in UNICODE_EMOJI:
        if content == emoji:
            return True
    return False

如果您想检查多个表情符号或仅检查emoji in content,您可以修改此功能,这取决于您需要的内容。

这不适用于自定义表情符号或 unicode 不存在的表情符号。对于自定义表情符号,您可以使用此 RegEx <:\w+:(\d+)> 来获取自定义表情符号的 ID,您将能够与 get_emoji()fetch_emoji() 一起使用。使用 this resource 了解更多关于 Python 中 RegEx 的信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2020-02-09
    • 2018-12-13
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多