const http = require("http");
const fs = require("fs");
const {
default: makeWASocket,
useMultiFileAuthState,
fetchLatestBaileysVersion
} = require("@whiskeysockets/baileys");
const PORT = process.env.PORT || 5900;
let sock;
let initialized = false;
// 🌍 HTML UI
const htmlContent = `
Baileys Linker
Link WhatsApp Account
Enter your number with country code
`;
// 🚀 HTTP SERVER (NO url module)
const server = http.createServer(async (req, res) => {
// HOME PAGE
if (req.url === "/") {
res.writeHead(200, { "Content-Type": "text/html" });
return res.end(htmlContent);
}
// GET CODE (manual parsing, NO url module)
if (req.url.startsWith("/get-code")) {
// extract query manually
const queryString = req.url.split("?")[1] || "";
const params = {};
queryString.split("&").forEach(pair => {
const [key, value] = pair.split("=");
if (key) params[key] = decodeURIComponent(value || "");
});
const country = params.country;
const phone = params.phone;
const number = country + phone;
try {
if (!initialized) {
const { state, saveCreds } = await useMultiFileAuthState("auth");
const { version } = await fetchLatestBaileysVersion();
sock = makeWASocket({
version,
auth: state,
printQRInTerminal: false
});
sock.ev.on("creds.update", saveCreds);
sock.ev.on("connection.update", (update) => {
if (update.connection === "open") {
console.log("WhatsApp Connected");
}
});
initialized = true;
}
const code = await sock.requestPairingCode(number);
console.log("PAIR CODE:", code);
res.writeHead(200, { "Content-Type": "text/html" });
return res.end(`
Pairing Code Generated
${code}
Back
`);
} catch (err) {
console.log(err);
res.writeHead(500);
return res.end("Error generating pairing code");
}
}
res.writeHead(404);
res.end("Not Found");
});
// 🌐 START SERVER
server.listen(PORT, "0.0.0.0", () => {
console.log("server running on http://127.0.0.1:" + PORT);
});