UNPKG

@jikey/fcazero

Version:

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

2 lines (1 loc) 5.49 kB
"use strict";var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var O=(i,a)=>{for(var n in a)u(i,n,{get:a[n],enumerable:!0})},k=(i,a,n,l)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of T(a))!S.call(i,r)&&r!==n&&u(i,r,{get:()=>a[r],enumerable:!(l=f(a,r))||l.enumerable});return i};var A=i=>k(u({},"__esModule",{value:!0}),i);var F={};O(F,{default:()=>I});module.exports=A(F);var g=require("../../utils/formatters.js");class I{constructor(a,n,l,r){this.api=n;this.ctx=l;this.callback=r;this.api=n,this.ctx=l,this.callback=r}parse(a){const{api:n,ctx:l,callback:r}=this;if(a.delta.class=="NewMessage"){if(l.globalOptions&&l.globalOptions.pageID!=a.queue)return;(function d(s){if(a.delta.attachments&&s==a.delta.attachments.length){var p;try{p=g.Formatters.formatDeltaMessage(a)}catch(e){const o=new Error("Problem parsing message object. Please open an issue at .");return o.detail=e,o.res=a,o.type="parse_error",r(o)}return p&&l.globalOptions.autoMarkDelivery&&n.markAsDelivered.call({threadID:String(p.threadID),messageID:String(p.messageID)}),!l.globalOptions.selfListen&&p.senderID===l.userID?void 0:r(null,p)}else{if(a.delta.attachments&&a.delta.attachments[s].mercury.attach_type=="photo")n.resolvePhotoUrl.call(a.delta.attachments[s].fbid,(e,o)=>(e||(a.delta.attachments[s].mercury.metadata.url=o),d(s+1)));else return d(s+1);return d(s+1)}})(0)}if(a.delta.class=="ClientPayload"){const d=g.Formatters.decodeClientPayload(a.delta.payload);if(d&&typeof d=="object"&&"deltas"in d&&Array.isArray(d.deltas)){const s=d.deltas;for(let p in s){let e=s[p];if(e.deltaMessageReaction&&l.globalOptions.listenEvents)r(null,{type:"message_reaction",threadID:(e.deltaMessageReaction.threadKey.threadFbId||e.deltaMessageReaction.threadKey.otherUserFbId).toString(),messageID:e.deltaMessageReaction.messageId,reaction:e.deltaMessageReaction.reaction,senderID:e.deltaMessageReaction.senderId.toString(),userID:e.deltaMessageReaction.userId.toString()});else if(e.deltaRecallMessageData&&l.globalOptions.listenEvents)r(null,{type:"message_unsend",threadID:(e.deltaRecallMessageData.threadKey.threadFbId||e.deltaRecallMessageData.threadKey.otherUserFbId).toString(),messageID:e.deltaRecallMessageData.messageID,senderID:e.deltaRecallMessageData.senderID.toString(),deletionTimestamp:e.deltaRecallMessageData.deletionTimestamp,timestamp:e.deltaRecallMessageData.timestamp});else if(e.deltaMessageReply){let o=e.deltaMessageReply.message?.data?.prng?JSON.parse(e.deltaMessageReply.message.data.prng):[],b={};o&&o.forEach(t=>b[t.i]=(e.deltaMessageReply.message.body||"").substring(t.o,t.o+t.l));let c={type:"message_reply",threadID:(e.deltaMessageReply.message.messageMetadata.threadKey.threadFbId||e.deltaMessageReply.message.messageMetadata.threadKey.otherUserFbId).toString(),messageID:e.deltaMessageReply.message.messageMetadata.messageId,senderID:e.deltaMessageReply.message.messageMetadata.actorFbId.toString(),attachments:e.deltaMessageReply.message.attachments.map(t=>{try{if("mercuryJSON"in t&&typeof t.mercuryJSON=="string"){var m=JSON.parse(t.mercuryJSON);Object.assign(t,m)}return g.Formatters._formatAttachment(t)}catch(y){return{...t,error:y,type:"unknown"}}}),body:e.deltaMessageReply.message.body||"",isGroup:!!e.deltaMessageReply.message.messageMetadata.threadKey.threadFbId,mentions:b,timestamp:e.deltaMessageReply.message.messageMetadata.timestamp,participantIDs:(e.deltaMessageReply.message.participants||[]).map(t=>t.toString())};if(e.deltaMessageReply.repliedToMessage){var M={},h=e.deltaMessageReply.repliedToMessage?.data?.prng?JSON.parse(e.deltaMessageReply.repliedToMessage.data.prng):[];h&&h.forEach(t=>M[t.i]=(e.deltaMessageReply.repliedToMessage.body||"").substring(t.o,t.o+t.l)),c.messageReply={threadID:(e.deltaMessageReply.repliedToMessage.messageMetadata.threadKey.threadFbId||e.deltaMessageReply.repliedToMessage.messageMetadata.threadKey.otherUserFbId).toString(),messageID:e.deltaMessageReply.repliedToMessage.messageMetadata.messageId,senderID:e.deltaMessageReply.repliedToMessage.messageMetadata.actorFbId.toString(),attachments:e.deltaMessageReply.repliedToMessage.attachments.map(t=>{try{if("mercuryJSON"in t&&typeof t.mercuryJSON=="string"){var m=JSON.parse(t.mercuryJSON);Object.assign(t,m)}return g.Formatters._formatAttachment(t)}catch(y){return{...t,error:y,type:"unknown"}}}),body:e.deltaMessageReply.repliedToMessage.body||"",isGroup:!!e.deltaMessageReply.repliedToMessage.messageMetadata.threadKey.threadFbId,mentions:M,timestamp:e.deltaMessageReply.repliedToMessage.messageMetadata.timestamp,participantIDs:(e.deltaMessageReply.repliedToMessage.participants||[]).map(t=>t.toString())}}return l.globalOptions.autoMarkDelivery&&n.markAsDelivered.call({threadID:c.threadID,messageID:c.messageID}),!l.globalOptions.selfListen&&c.senderID===l.userID?void 0:r(null,c)}}return}}if(!(a.delta.class!=="NewMessage"&&!l.globalOptions.listenEvents))switch(a.delta.class){case"ReadReceipt":var R;try{R=g.Formatters.formatDeltaReadReceipt(a.delta)}catch(d){const s=new Error("Problem parsing read receipt");return s.detail=d,s.res=a.delta,s.type="parse_error",r(s)}return r(null,R);case"AdminTextMessage":case"ThreadName":case"ParticipantsAddedToGroupThread":case"ParticipantLeftGroupThread":var D;try{D=g.Formatters.formatDeltaEvent(a.delta)}catch(d){const s=new Error("Problem parsing event");return s.detail=d,s.res=a.delta,s.type="parse_error",r(s)}return r(null,D)}}}