【问题标题】:Is there a way to check if message.content on Discord contains a file?有没有办法检查 Discord 上的 message.content 是否包含文件?
【发布时间】:2018-06-23 15:44:01
【问题描述】:

在我的 Discord 服务器上,我有一个 #selfies 频道,人们可以在其中分享照片并谈论它们。时不时地,我想以某种方式修剪所有不包含文件/图像的消息。我已经尝试检查文档,但我看不到任何这样做的方法。不可能吗?

【问题讨论】:

标签: python python-3.x discord discord.py


【解决方案1】:

跟进@ADug 的回答,message.attachments 是消息中discord.Files 的列表。但是,discordpy 有一些方法可以帮助您清除消息!

您可以在#selfies 频道上使用channel.purge

def has_no_messages(message):
    return len(message.attachments) == 0
await channel.purge(limit=100, check=has_no_messages) # Specify an appropriate limit

您也可以使用 lambda 表达式在一行中执行此操作:

await channel.purge(limit=100, check=lambda x: len(x.attachments) == 0)

【讨论】:

    【解决方案2】:

    我对@9​​87654321@ 不太熟悉(因为我使用的是discord.js),但如果这与discord.js 相似,则应该有message event。此事件将在每条消息上运行,这非常适合您现在正在搜索的内容。现在为伪代码...

    //written in javascript
    Message event:
    On each message {
        if(message.attachments.size <= 0) {
            message.delete(); 
        }
    }
    

    一般的想法是使用message event,(每个message),你检查message的附件列表是否大于0(意味着它包含一个文件或图像),如果不是,则调用python中的delete()函数删除message

    【讨论】:

      【解决方案3】:

      您可以遍历每个 message 并执行以下操作:

      if not message.attachments: ...

      message.attachments返回一个列表,你可以使用if not检查它是否为空

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-04
        • 2016-09-20
        • 1970-01-01
        • 2011-06-03
        • 2021-12-04
        • 1970-01-01
        • 2016-07-15
        • 2010-10-26
        相关资源
        最近更新 更多