Download media from ephemeral messages

This commit is contained in:
Adhiraj Singh
2020-11-19 00:26:17 +05:30
parent c69d3832de
commit ba8b8c693a
2 changed files with 10 additions and 6 deletions

View File

@@ -245,14 +245,18 @@ export class WAConnection extends Base {
*/
@Mutex (message => message?.key?.id)
async downloadMediaMessage (message: WAMessage) {
let mContent = message.message?.ephemeralMessage?.message || message.message
if (!mContent) throw new BaileysError('No message present', { status: 400 })
try {
const buff = await decodeMediaMessageBuffer (message.message, this.fetchRequest)
const buff = await decodeMediaMessageBuffer (mContent, this.fetchRequest)
return buff
} catch (error) {
if (error instanceof BaileysError && error.status === 404) { // media needs to be updated
this.logger.info (`updating media of message: ${message.key.id}`)
await this.updateMediaMessage (message)
const buff = await decodeMediaMessageBuffer (message.message, this.fetchRequest)
mContent = message.message?.ephemeralMessage?.message || message.message
const buff = await decodeMediaMessageBuffer (mContent, this.fetchRequest)
return buff
}
throw error