如何检查消息收集器是不是收集了图像?以及如何获取该图像的 Discord URL/proxyURL?

Posted

技术标签:

【中文标题】如何检查消息收集器是不是收集了图像?以及如何获取该图像的 Discord URL/proxyURL?【英文标题】:How do I check to see if a message collector collected an image? And how do I get that image's Discord URL/proxyURL?如何检查消息收集器是否收集了图像?以及如何获取该图像的 Discord URL/proxyURL? 【发布时间】:2020-08-01 09:38:57 【问题描述】:

我正在使用 Discord.js V12 进行编码,我想知道如何在 awaitMessages() 消息收集器中获取收集到的消息的附件。

collected(只包含一张图片的收集消息)的输出是这样的:

Collection [Map] 
  '701180292689297429' => Message 
    channel: DMChannel 
      type: 'dm',
      deleted: false,
      id: '700086368558121047',
      recipient: [User],
      lastMessageID: '701180292689297429',
      lastPinTimestamp: null,
      messages: [MessageManager],
      _typing: Map 
    ,
    deleted: false,
    id: '701180292689297429',
    type: 'DEFAULT',
    content: '',
    author: User 
      id: '252268366079852584',
      bot: false,
      username: 'EBB',
      discriminator: '5732',
      avatar: 'd60958dccad619bd70225373ed312bbf',
      flags: [UserFlags],
      lastMessageID: '701180292689297429',
      lastMessageChannelID: '700086368558121047'
    ,
    pinned: false,
    tts: false,
    nonce: undefined,
    system: false,
    embeds: [],
    attachments: Collection [Map]  '701180291405971506' => [MessageAttachment] ,
    createdTimestamp: 1587244809077,
    editedTimestamp: null,
    reactions: ReactionManager 
      cacheType: [Function: Collection],
      cache: Collection [Map] ,
      message: [Circular]
    ,
    mentions: MessageMentions 
      everyone: false,
      users: Collection [Map] ,
      roles: Collection [Map] ,
      _members: null,
      _channels: null,
      crosspostedChannels: Collection [Map] 
    ,
    webhookID: null,
    application: null,
    activity: null,
    _edits: [],
    flags: MessageFlags  bitfield: 0 ,
    reference: null
  

这是我指的代码:

dmc.awaitMessages(resp => resp.author.id === message.author.id, 
                max: 1,
                time: 60000,
                errors: ['time']
              ) 
              .then(collectedfive => 
                    let imageOrNo = collectedfive.first().content
                    console.log(imageOrNo)
                    message.channel.send(<I WOULD SEND THE IMAGE BACK TO THEM, BUT I DON'T KNOW HOW TO, AND I ALSO WOULD CHECK TO SEE IF THERE IS AN ATTACHED IMAGE TO THE MESSAGE)
                  )
)

我想获取附件及其 URL(特别是 proxyURLs),并使用 Discord.js V12 检查收集的消息是否有任何附件。我该怎么做呢?

【问题讨论】:

您能在您的问题中发布console.logging 收集到的消息的输出吗?你能添加一些你的代码吗? @Syntle 好的,完成。 你能显示问题的代码 sn-p 吗? @Syntle 麻烦您了,哈哈。我已经添加了一些我正在谈论的代码。 【参考方案1】:

您只需检查邮件是否有附件,然后获取邮件的附件并循环访问它们并将它们发送到频道。

dmc.awaitMessages(resp => resp.author.id === message.author.id, 
    max: 1,
    time: 60000,
    errors: ['time']
)
.then(collectedfive => 
        if (collectedfive.first().attachments.array().length) 
            collectedfive.first().attachments.forEach((attachment) => 
                message.channel.send( files: [attachment] )
            )
        
    )

您还可以通过在上面的forEach() 循环中使用attachment.proxyURL 来获取附件的proxyURL 属性

【讨论】:

以上是关于如何检查消息收集器是不是收集了图像?以及如何获取该图像的 Discord URL/proxyURL?的主要内容,如果未能解决你的问题,请参考以下文章

如何在mpvue下收集小程序的formId

如何获取带有图像和视频以及文本的 facebook 提要?

如何注入 JS 并从网站收集警报消息?

检查已终止。收集事实数据时检测到错误

如何从值中获取“captureDate”并将其作为消息发送

Google 是如何收集我们的个人数据的