const fsPromises = require("fs/promises"); const fs = require('fs') const checkInternetConnected = require('check-internet-connected'); import ShowWhatsAppService from "../services/WhatsappService/ShowWhatsAppService"; import { Client } from "whatsapp-web.js"; import { splitDateTime } from "../helpers/SplitDateTime"; import { format } from "date-fns"; import ptBR from 'date-fns/locale/pt-BR'; import dir from 'path'; import { getIO } from "../libs/socket"; import { number } from "yup"; const internetConnection = async (whatasappId?: string | number) => { checkInternetConnected().then((result: any) => { console.log('Internet successfully connected to a server: ', result);//successfully connected to a server }).catch((ex: any) => { console.log('Intenet connection cannot connect to a server or error occurred: ', ex); // cannot connect to a server or error occurred. }); const config = { timeout: 5000, //timeout connecting to each server, each try retries: 5,//number of retries to do before failing domain: 'https://apple.com',//the domain to check DNS record of } let internet_status:any = null try { internet_status = await checkInternetConnected(config); } catch (error) { console.log('Erron when trying get internet connection info: ', error) } console.log('INTERNET STATUS: ', internet_status) if (whatasappId && !internet_status) { const dateToday = splitDateTime(new Date(format(new Date(), 'yyyy-MM-dd HH:mm:ss', { locale: ptBR }))) let timestamp = Math.floor(Date.now() / 1000) const sourcePath = dir.join(process.cwd(), '.wwebjs_auth', 'sessions', 'log'); fs.writeFileSync(`${sourcePath}/${timestamp}_internet_connection_lost.txt`, `Date: ${dateToday.fullDate} ${dateToday.fullTime}`, (error: any) => { console.log(error) }); let whats = await ShowWhatsAppService(whatasappId) await whats.update({ status: "OPENING" }); const io = getIO(); io.emit("whatsappSession", { action: "update", session: whats }); } return internet_status } export default internetConnection;