whatsauto.js
Version:
Easy WhatsApp Automation with Session
168 lines (167 loc) • 7.91 kB
JavaScript
;
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;