UNPKG

meta-horizonn-fca-huh

Version:

Facebook-Chat-API Protect and Deploy by Kanzu and HZI Team. Kem is redeveloped. Rename package is Meta Horizonn and package supported ChatBot Messenger. and make it lightweight package by jonell huh

80 lines (73 loc) 2.52 kB
"use strict"; var utils = require("../utils"); var log = require("npmlog"); module.exports = function (defaultFuncs, api, ctx) { function makeTypingIndicator(typ, threadID, callback, isGroup) { var form = { typ: +typ, to: "", source: "mercury-chat", thread: threadID }; // Check if thread is a single person chat or a group chat // More info on this is in api.sendMessage if (utils.getType(isGroup) == "Boolean") { if (!isGroup) { form.to = threadID; } defaultFuncs .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form) .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) .then(function (resData) { if (resData.error) throw resData; return callback(); }) .catch(function (err) { log.error("sendTypingIndicator", err); if (utils.getType(err) == "Object" && err.error === "Not logged in") { ctx.loggedIn = false; } return callback(err); }); } else { api.getUserInfo(threadID, function (err, res) { if (err) return callback(err); // If id is single person chat if (Object.keys(res).length > 0) form.to = threadID; defaultFuncs .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form) .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) .then(function (resData) { if (resData.error) throw resData; return callback(); }) .catch(function (err) { log.error("sendTypingIndicator", err); if (utils.getType(err) == "Object" && err.error === "Not logged in.") ctx.loggedIn = false; return callback(err); }); }); } } return function sendTypingIndicator(threadID, callback, isGroup) { if ( utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction" ) { if (callback) log.warn("sendTypingIndicator", "callback is not a function - ignoring."); callback = () => { }; } makeTypingIndicator(true, threadID, callback, isGroup); return function end(cb) { if ( utils.getType(cb) !== "Function" && utils.getType(cb) !== "AsyncFunction" ) { if (cb) log.warn("sendTypingIndicator", "callback is not a function - ignoring."); cb = () => { }; } makeTypingIndicator(false, threadID, cb, isGroup); }; }; };