Spaces:
Building
Building
File size: 2,872 Bytes
4fd6cde 83e4559 4fd6cde 4898cd3 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde 83e4559 4fd6cde |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
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(); |