| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /*
- CÓDIGO SIMPLE PARA LA RECARGA DE JADIBOTS AL INICIAR, SE PUEDE EXTENDER Y MEJORAR DE ACUERDO A TÚS NECESIDADES.
- SI QUIERES QUE MANEJE MÁS EVENTOS LOS TIENES QUE AGREGAR AQUI.
- CÓDIGO HECHO POR: DanixlJs - si asi es, el nuvsito ese.
- [https://github.com/DanixlJs]
- DEJA LOS CRÉDITOS HDP
- */
- import path from "path";
- import { fileURLToPath } from "url";
- import { promises as fs } from "fs";
- import pino from 'pino'
- import { makeWASocket } from "./simple.js";
- import { makeCacheableSignalKeyStore, useMultiFileAuthState, fetchLatestBaileysVersion } from "@whiskeysockets/baileys";
- import { Boom } from "@hapi/boom";
- import { handler } from "../handler.js";
- const __dirname = path.join(fileURLToPath(import.meta.url));
- export default async function loadAllJadiBots() {
- const authJadi = path.join(__dirname, "../../jadibts");
- const sesions = await fs.readdir(authJadi);
- if (sesions.length !== 0) {
- console.log("Cargando " + sesions.length + " Sesiones de la carpeta 'jadibts'"); // que asco tiene 'bts' :v
- for (const sesion of sesions) {
- const auth = path.join(authJadi, sesion);
- try {
- await fs.access(path.join(auth, "creds.json"));
- } catch {
- continue;
- }
- await connect(auth);
- }
- } else {
- console.log("Sin JadiBots que cargar.");
- }
- }
- async function connect(sesionFile, retries = 0) {
- const { state, saveCreds } = await useMultiFileAuthState(sesionFile);
- const { version } = await fetchLatestBaileysVersion();
- const conn = makeWASocket({
- markOnlineOnConnect: true,
- defaultQueryTimeoutMs: undefined,
- auth: {
- creds: state.creds,
- keys: makeCacheableSignalKeyStore(state.keys, pino({
- level: "silent"
- }).child({
- level: "silent"
- }))
- },
- logger: pino({
- level: "silent"
- }),
- browser: ["Ubuntu", "Edge", "20.0.4"],
- syncFullHistory: true,
- printQRInTerminal: false,
- patchMessageBeforeSending: async message => {
- try {
- await sock.uploadPreKeysToServerIfRequired();
- } catch (err) {
- console.error(err);
- }
- return message;
- },
- generateHighQualityLinkPreview: true,
- version
- });
- conn.ev.on("creds.update", saveCreds);
- conn.ev.on("connection.update", async update => {
- const { connection, lastDisconnect } = update;
- if (connection === "close") {
- const code = new Boom(lastDisconnect?.error)?.output?.statusCode;
- // ojo al ingles de la más alta calidad 🗿
- switch (code) {
- case 401: //logout
- case 500: //bad sesion?
- case 403: //forbiden
- case 405: //conn end
- try {
- console.log("error inesperado")
- //await fs.rm(sesionFile, { recursive: true, force: true });
- } catch (err) {
- console.error(err);
- }
- break;
- default:
- if (retries < 6) {
- await connect(sesionFile, retries + 1);
- } else {
- try {
- //await fs.rm(sesionFile, { recursive: true, force: true });
- } catch (err) {
- console.error(err);
- }
- }
- break;
- }
- } else if (connection === "open") {
- global.conns.push(conn);
- }
- });
- conn.ev.on("messages.upsert", handler);
- }
|