whatsauto.js
Version:
Easy WhatsApp Automation with Session
69 lines (68 loc) • 3.07 kB
JavaScript
;
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.AutoWAManager = void 0;
const path_1 = __importDefault(require("path"));
const Defaults_1 = require("../Defaults");
const AutoWA_1 = require("./AutoWA");
const fs_1 = __importDefault(require("fs"));
class AutoWAManager {
addSessions(autoWAs) {
for (const autoWA of autoWAs) {
this.addSession(autoWA);
}
}
addSession(autoWA) {
this.sessions.set(autoWA.sessionId, autoWA);
}
isSessionExist(sessionId) {
if (fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME)) &&
fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX)) &&
fs_1.default.readdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX)).length) {
return true;
}
return false;
}
startSessions() {
return __awaiter(this, void 0, void 0, function* () {
for (const session of this.getSessions()) {
const { sessionId, options } = this.getSession(session);
const autoWA = new AutoWA_1.AutoWA(sessionId, options, this);
yield autoWA.initialize();
}
});
}
deleteSession(sessionId) {
return __awaiter(this, void 0, void 0, function* () {
const session = this.getSession(sessionId);
try {
yield (session === null || session === void 0 ? void 0 : session.logout());
}
catch (error) { }
session === null || session === void 0 ? void 0 : session.end();
this.sessions.delete(sessionId);
const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX);
if (fs_1.default.existsSync(dir)) {
fs_1.default.rmSync(dir, { force: true, recursive: true });
}
});
}
getSessions() {
return Array.from(this.sessions.keys());
}
getSession(sessionId) {
return this.sessions.get(sessionId);
}
}
exports.AutoWAManager = AutoWAManager;