UNPKG

@jikey/fcazero

Version:

Facebook Messenger bot, and is one of the most advanced next-generation Facebook Chat API (FCA)

2 lines (1 loc) 1.38 kB
import{Clients as h}from"../utils/clients.js";import{Constants as s}from"../utils/constants.js";import{Formatters as u}from"../utils/formatters.js";import i from"../utils/logger.js";class d{constructor(e,r,m){this.defaultFuncs=e;this.ctx=m}call(e,r){const m=(n,a)=>{a=a||function(){};const o=[];for(let t=0;t<n.length;t++){if(!u.isReadableStream(n[t]))throw{error:"Attachment should be a readable stream and not "+s.getType(n[t])+"."};const f={upload_1024:n[t],voice_clip:"true"};o.push(this.defaultFuncs.postFormData("https://upload.facebook.com/ajax/mercury/upload.php",this.ctx.jar,f).then(h.parseAndCheckLogin(this.ctx,this.defaultFuncs)).then(function(p){if(p&&p.error)throw p;return p&&p.payload.metadata[0]}))}Promise.all(o).then(function(t){a(null,t)}).catch(function(t){return i.error({err:t},"uploadAttachment"),a(t)})};return new Promise(async(n,a)=>{try{if(!e.attachments&&!u.isReadableStream(e.attachments)&&s.getType(e.attachments)!=="Array"&&s.getType(e.attachments)==="Array"&&!e.attachments.length)throw{error:"Please pass an attachment or an array of attachments."};return s.getType(e.attachments)!=="Array"&&(e.attachments=[e.attachments]),m(e.attachments,(o,t)=>o?(r&&typeof r=="function"&&r(o),a(o)):(r&&typeof r=="function"&&r(null,t),n(t)))}catch(o){return i.error({error:o},"uploadAttachment"),r&&typeof r=="function"&&r(o),a(o)}})}}export{d as default};