Lodaa / index.js
understanding's picture
Update index.js
4898cd3 verified
raw
history blame
2.87 kB
const makeWASocket = require('@whiskeysockets/baileys').default;
const {
DisconnectReason,
useMultiFileAuthState,
fetchLatestBaileysVersion
} = require('@whiskeysockets/baileys');
const fs = require('fs');
const path = require('path');
const Pino = require('pino');
const logger = Pino({ level: 'info' });
const store = {};
const getMessage = key => {
const { id } = key;
if (store[id]) return store[id].message;
};
async function connectWhatsApp() {
try {
const { state, saveCreds } = await useMultiFileAuthState('auth');
const { version } = await fetchLatestBaileysVersion();
const sock = makeWASocket({
auth: state,
version: version,
getMessage,
printQRInTerminal: false // Disable QR code
});
// Request pairing code if not registered
if (!sock.authState.creds.registered) {
const phoneNumber = '+919709769655'; // Replace with your WhatsApp number
try {
const code = await sock.requestPairingCode(phoneNumber);
console.log(`Pairing Code: ${code}`);
console.log('Enter this code in WhatsApp under Linked Devices > Pair a New Device.');
} catch (error) {
console.error('Error requesting pairing code:', error);
}
}
sock.ev.on('connection.update', async (update) => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
if (lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut) {
logger.info('Connection lost. Reconnecting...');
await connectWhatsApp();
} else {
logger.info('Disconnected because you logged out.');
}
} else if (connection === 'open') {
logger.info('Connection established.');
}
});
sock.ev.on('creds.update', async () => {
try {
await saveCreds();
logger.info('Credentials updated.');
} catch (error) {
logger.error('Failed to save credentials:', error);
}
});
sock.ev.on('messages.upsert', async (events) => {
const { messages } = events;
messages.forEach(message => {
const maskedNumber = maskPhoneNumber(message.key.remoteJid);
logger.info(`Message from ${maskedNumber}:`, message);
});
});
} catch (error) {
logger.error('Failed to connect to WhatsApp:', error);
}
}
function maskPhoneNumber(phoneNumber) {
if (!phoneNumber) return phoneNumber;
const parts = phoneNumber.split('@');
if (parts.length === 2) {
const [number, domain] = parts;
const maskedNumber = number.slice(0, 3) + '*****' + number.slice(-3);
return `${maskedNumber}@${domain}`;
}
return phoneNumber;
}
// Ensure the auth directory exists
const authDir = path.join(__dirname, 'auth');
if (!fs.existsSync(authDir)) {
fs.mkdirSync(authDir, { recursive: true });
}
connectWhatsApp();