UNPKG

whatsauto.js

Version:

Easy WhatsApp Automation with Session

168 lines (167 loc) 7.91 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBuffer = exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0; const baileys_1 = require("@whiskeysockets/baileys"); const Error_1 = require("../Error"); const fs = __importStar(require("fs")); const path_1 = __importDefault(require("path")); const Defaults_1 = require("../Defaults"); const axios_1 = __importDefault(require("axios")); const getMediaMimeType = (msg) => { var _a, _b, _c, _d, _e, _f, _g, _h, _j; if (!(msg === null || msg === void 0 ? void 0 : msg.message)) return ""; if ((_a = msg.message) === null || _a === void 0 ? void 0 : _a.documentWithCaptionMessage) msg = Object.assign(Object.assign({}, msg), { message: msg.message.documentWithCaptionMessage.message }); else if ((_b = msg.message) === null || _b === void 0 ? void 0 : _b.ephemeralMessage) msg = Object.assign(Object.assign({}, msg), { message: msg.message.ephemeralMessage.message }); const { imageMessage, stickerMessage, videoMessage, documentMessage, audioMessage, documentWithCaptionMessage, } = msg === null || msg === void 0 ? void 0 : msg.message; return exports.to.string((_g = (_f = (_e = (_d = (_c = imageMessage === null || imageMessage === void 0 ? void 0 : imageMessage.mimetype) !== null && _c !== void 0 ? _c : stickerMessage === null || stickerMessage === void 0 ? void 0 : stickerMessage.mimetype) !== null && _d !== void 0 ? _d : audioMessage === null || audioMessage === void 0 ? void 0 : audioMessage.mimetype) !== null && _e !== void 0 ? _e : videoMessage === null || videoMessage === void 0 ? void 0 : videoMessage.mimetype) !== null && _f !== void 0 ? _f : documentMessage === null || documentMessage === void 0 ? void 0 : documentMessage.mimetype) !== null && _g !== void 0 ? _g : (_j = (_h = documentWithCaptionMessage === null || documentWithCaptionMessage === void 0 ? void 0 : documentWithCaptionMessage.message) === null || _h === void 0 ? void 0 : _h.documentMessage) === null || _j === void 0 ? void 0 : _j.mimetype); }; exports.getMediaMimeType = getMediaMimeType; const parseMessageStatusCodeToReadable = (code) => { switch (code) { case baileys_1.proto.WebMessageInfo.Status.PENDING: return "pending"; case baileys_1.proto.WebMessageInfo.Status.SERVER_ACK: return "server"; case baileys_1.proto.WebMessageInfo.Status.DELIVERY_ACK: return "delivered"; case baileys_1.proto.WebMessageInfo.Status.READ: return "read"; case baileys_1.proto.WebMessageInfo.Status.PLAYED: return "played"; default: return "error"; } }; exports.parseMessageStatusCodeToReadable = parseMessageStatusCodeToReadable; const phoneToJid = ({ from, isGroup = false, reverse = false, }) => { if (!from) throw new Error_1.ValidationError('"from" parameter is required!'); const number = from.toString(); if (number.includes("@broadcast")) return number; let formatted = number.replace(/:\d+/, ""); formatted = formatted.replace(/\D/g, ""); if (isGroup || number.includes("@g.us")) { if (!reverse) formatted += "@g.us"; } else { if (!reverse) formatted += "@s.whatsapp.net"; } return formatted; }; exports.phoneToJid = phoneToJid; const createDelay = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (duration = 1000) { return yield new Promise((resolve) => setTimeout(() => { resolve(true); }, duration)); }); exports.createDelay = createDelay; exports.is = { array: (array) => { return typeof array === "object" && array != null && array.length > 0; }, undefined: (elem) => { return typeof elem === "undefined"; }, file: (file) => { return file instanceof File; }, object: (object) => { return typeof object === "object" && object != null && Object.keys(object).length > 0; }, string: (str) => { return typeof str === "string"; }, }; exports.to = { string: (str) => { if (typeof str === "string") return str; return ""; }, undefined: (str, defaultValue = undefined) => { if ((typeof str === "string" || typeof str === "number") && str !== "") return str; return defaultValue; }, }; const isSessionExist = function (sessionId) { if (fs.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME)) && fs.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX)) && fs.readdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX)).length) { return true; } return false; }; exports.isSessionExist = isSessionExist; const setCredentialsDir = (dirname) => { if (typeof dirname !== "string") { throw new Error_1.ValidationError("Parameter dirname must be a string!"); } else if (dirname === "") { throw new Error_1.ValidationError("Parameter dirname must not be empty!"); } Defaults_1.CREDENTIALS.DIR_NAME = dirname; }; exports.setCredentialsDir = setCredentialsDir; const getBuffer = (url) => __awaiter(void 0, void 0, void 0, function* () { try { const response = yield axios_1.default.get(url, { responseType: "arraybuffer", }); return Buffer.from(response.data); } catch (error) { } return null; }); exports.getBuffer = getBuffer;