Spaces:
Paused
Paused
Update index.js
Browse files
index.js
CHANGED
|
@@ -6,6 +6,8 @@ const { StringSession } = require("telegram/sessions");
|
|
| 6 |
const { NewMessage } = require("telegram/events");
|
| 7 |
const { default: makeWASocket, fetchLatestBaileysVersion, useMultiFileAuthState, DisconnectReason, Browsers } = require('@whiskeysockets/baileys');
|
| 8 |
const pino = require('pino');
|
|
|
|
|
|
|
| 9 |
|
| 10 |
const CONFIG = {
|
| 11 |
waPhone: "5521982931764",
|
|
@@ -16,23 +18,53 @@ const CONFIG = {
|
|
| 16 |
tgSession: "1AQAOMTQ5LjE1NC4xNzUuNTUBuwlVXFIOFujrvIRSQm6+qO/laUfru5LFHEmbx/O6z99qNjKpqdu71VocaUIQewykJjNMob0boWJ7z5rUxSXDVSmdDgTiCBoay80hf4XSkM33TIqOPLWOXvyENiomBt8vGbekM/IUzZhmRLuSjfDenRQUu+eOtLt1j+kN2E3IHBJUjPY3whabSuCFUnrEbJmHHRCNeCqNY14Lb6efF/+LdFcdxgVjmItP6+1taPQHEg/36xf/FwlojiiR+zosMyA09NMCA3v3iVbOB9uM0qJcMxz8fD7QAhbvEsrOMMGZxNyyOUFZBP6LPjwIMBM1eVBXm/DxNB06tUs8h1eHXnDLZBo="
|
| 17 |
};
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
function formatarVip(t) {
|
| 20 |
return `⚠️ *VIP 0.5 GOL NALDO.TIPS* ⚠️\n\n${t}\n\n💰 *[APOSTAR](https://referme.to/erinaldorodriguesdeo-11)*\n📸 *[@erinaldo.2020](https://instagram.com/erinaldo.2020)*`;
|
| 21 |
}
|
| 22 |
|
| 23 |
async function iniciar() {
|
| 24 |
-
console.log("🔄 LIMPANDO E
|
| 25 |
|
| 26 |
-
//
|
| 27 |
const { state, saveCreds } = await useMultiFileAuthState('auth_nova');
|
| 28 |
const { version } = await fetchLatestBaileysVersion();
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
const sock = makeWASocket({
|
| 31 |
version,
|
| 32 |
auth: state,
|
| 33 |
logger: pino({ level: 'silent' }),
|
| 34 |
-
browser: Browsers.ubuntu('Chrome'),
|
| 35 |
-
syncFullHistory: false
|
|
|
|
| 36 |
});
|
| 37 |
|
| 38 |
sock.ev.on('creds.update', saveCreds);
|
|
@@ -40,43 +72,45 @@ async function iniciar() {
|
|
| 40 |
sock.ev.on('connection.update', async (u) => {
|
| 41 |
const { connection, lastDisconnect } = u;
|
| 42 |
if (connection === 'open') {
|
| 43 |
-
console.log("✅✅ WHATSAPP
|
|
|
|
|
|
|
| 44 |
}
|
| 45 |
if (connection === 'close') {
|
| 46 |
const deveReiniciar = lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut;
|
| 47 |
-
if (deveReiniciar)
|
|
|
|
|
|
|
|
|
|
| 48 |
}
|
| 49 |
});
|
| 50 |
|
| 51 |
-
//
|
| 52 |
if (!sock.authState.creds.registered) {
|
| 53 |
-
console.log(`📡 Solicitando código para ${CONFIG.waPhone}...`);
|
| 54 |
setTimeout(async () => {
|
| 55 |
try {
|
| 56 |
const code = await sock.requestPairingCode(CONFIG.waPhone);
|
| 57 |
console.log(`\n🔥 DIGITE NO WHATSAPP: ${code}\n`);
|
| 58 |
-
|
| 59 |
-
|
|
|
|
| 60 |
}
|
| 61 |
|
| 62 |
-
// ---
|
| 63 |
-
const client = new TelegramClient(new StringSession(CONFIG.tgSession), CONFIG.tgId, CONFIG.tgHash, {});
|
| 64 |
-
await client.connect();
|
| 65 |
-
console.log("📡 MONITORANDO TELEGRAM...");
|
| 66 |
-
|
| 67 |
client.addEventHandler(async (event) => {
|
| 68 |
const message = event.message.message;
|
| 69 |
if (!message) return;
|
| 70 |
const sender = await event.message.getSender();
|
| 71 |
const username = sender ? sender.username : "";
|
| 72 |
|
|
|
|
| 73 |
if (username === CONFIG.botTelegramAlvo || message.toLowerCase().includes("betbots")) {
|
| 74 |
-
console.log(`🎯
|
| 75 |
try {
|
| 76 |
await sock.sendMessage(CONFIG.idGrupoWhats, { text: formatarVip(message) });
|
| 77 |
-
console.log("🚀
|
| 78 |
} catch (err) {
|
| 79 |
-
console.log("❌ Erro no envio
|
| 80 |
}
|
| 81 |
}
|
| 82 |
}, new NewMessage({}));
|
|
|
|
| 6 |
const { NewMessage } = require("telegram/events");
|
| 7 |
const { default: makeWASocket, fetchLatestBaileysVersion, useMultiFileAuthState, DisconnectReason, Browsers } = require('@whiskeysockets/baileys');
|
| 8 |
const pino = require('pino');
|
| 9 |
+
const fs = require('fs');
|
| 10 |
+
const archiver = require('archiver'); // Certifique-se de ter dado: npm install archiver
|
| 11 |
|
| 12 |
const CONFIG = {
|
| 13 |
waPhone: "5521982931764",
|
|
|
|
| 18 |
tgSession: "1AQAOMTQ5LjE1NC4xNzUuNTUBuwlVXFIOFujrvIRSQm6+qO/laUfru5LFHEmbx/O6z99qNjKpqdu71VocaUIQewykJjNMob0boWJ7z5rUxSXDVSmdDgTiCBoay80hf4XSkM33TIqOPLWOXvyENiomBt8vGbekM/IUzZhmRLuSjfDenRQUu+eOtLt1j+kN2E3IHBJUjPY3whabSuCFUnrEbJmHHRCNeCqNY14Lb6efF/+LdFcdxgVjmItP6+1taPQHEg/36xf/FwlojiiR+zosMyA09NMCA3v3iVbOB9uM0qJcMxz8fD7QAhbvEsrOMMGZxNyyOUFZBP6LPjwIMBM1eVBXm/DxNB06tUs8h1eHXnDLZBo="
|
| 19 |
};
|
| 20 |
|
| 21 |
+
// --- 📦 FUNÇÃO DE BACKUP (ENVIA PARA O SEU TELEGRAM) ---
|
| 22 |
+
async function enviarBackupSessao(tgClient) {
|
| 23 |
+
return new Promise((resolve) => {
|
| 24 |
+
console.log("📦 Gerando backup dos arquivos de login...");
|
| 25 |
+
const output = fs.createWriteStream('sessao.zip');
|
| 26 |
+
const archive = archiver('zip', { zlib: { level: 9 } });
|
| 27 |
+
|
| 28 |
+
output.on('close', async () => {
|
| 29 |
+
try {
|
| 30 |
+
await tgClient.sendFile("me", {
|
| 31 |
+
file: 'sessao.zip',
|
| 32 |
+
caption: `✅ **Sessão WhatsApp Salva!**\n📅 Data: ${new Date().toLocaleString('pt-BR')}\n\n*Use este arquivo se precisar reinstalar o bot.*`
|
| 33 |
+
});
|
| 34 |
+
console.log("🚀 Backup enviado com sucesso para as Mensagens Salvas do Telegram!");
|
| 35 |
+
resolve();
|
| 36 |
+
} catch (err) { console.log("Erro ao enviar backup:", err); resolve(); }
|
| 37 |
+
});
|
| 38 |
+
|
| 39 |
+
archive.pipe(output);
|
| 40 |
+
archive.directory('auth_nova/', false);
|
| 41 |
+
archive.finalize();
|
| 42 |
+
});
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
function formatarVip(t) {
|
| 46 |
return `⚠️ *VIP 0.5 GOL NALDO.TIPS* ⚠️\n\n${t}\n\n💰 *[APOSTAR](https://referme.to/erinaldorodriguesdeo-11)*\n📸 *[@erinaldo.2020](https://instagram.com/erinaldo.2020)*`;
|
| 47 |
}
|
| 48 |
|
| 49 |
async function iniciar() {
|
| 50 |
+
console.log("🔄 LIMPANDO E INICIANDO SISTEMA...");
|
| 51 |
|
| 52 |
+
// Carrega a sessão da pasta 'auth_nova'
|
| 53 |
const { state, saveCreds } = await useMultiFileAuthState('auth_nova');
|
| 54 |
const { version } = await fetchLatestBaileysVersion();
|
| 55 |
|
| 56 |
+
// Conecta ao Telegram primeiro
|
| 57 |
+
const client = new TelegramClient(new StringSession(CONFIG.tgSession), CONFIG.tgId, CONFIG.tgHash, {});
|
| 58 |
+
await client.connect();
|
| 59 |
+
console.log("📡 Telegram monitorando...");
|
| 60 |
+
|
| 61 |
const sock = makeWASocket({
|
| 62 |
version,
|
| 63 |
auth: state,
|
| 64 |
logger: pino({ level: 'silent' }),
|
| 65 |
+
browser: Browsers.ubuntu('Chrome'), // Identificação segura
|
| 66 |
+
syncFullHistory: false,
|
| 67 |
+
connectTimeoutMs: 60000
|
| 68 |
});
|
| 69 |
|
| 70 |
sock.ev.on('creds.update', saveCreds);
|
|
|
|
| 72 |
sock.ev.on('connection.update', async (u) => {
|
| 73 |
const { connection, lastDisconnect } = u;
|
| 74 |
if (connection === 'open') {
|
| 75 |
+
console.log("✅✅ WHATSAPP CONECTADO COM SUCESSO! ✅✅");
|
| 76 |
+
// Manda o backup assim que logar
|
| 77 |
+
await enviarBackupSessao(client);
|
| 78 |
}
|
| 79 |
if (connection === 'close') {
|
| 80 |
const deveReiniciar = lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut;
|
| 81 |
+
if (deveReiniciar) {
|
| 82 |
+
console.log("🔄 Conexão fechada, tentando reconectar...");
|
| 83 |
+
iniciar();
|
| 84 |
+
}
|
| 85 |
}
|
| 86 |
});
|
| 87 |
|
| 88 |
+
// Se o bot precisar de login, ele manda o código para o terminal e para o Telegram
|
| 89 |
if (!sock.authState.creds.registered) {
|
|
|
|
| 90 |
setTimeout(async () => {
|
| 91 |
try {
|
| 92 |
const code = await sock.requestPairingCode(CONFIG.waPhone);
|
| 93 |
console.log(`\n🔥 DIGITE NO WHATSAPP: ${code}\n`);
|
| 94 |
+
await client.sendMessage("me", { message: `🔥 Novo código de pareamento solicitado: **${code}**` });
|
| 95 |
+
} catch (e) { console.log("Aguardando geração do código..."); }
|
| 96 |
+
}, 5000);
|
| 97 |
}
|
| 98 |
|
| 99 |
+
// --- 🎯 FILTRO DE MENSAGENS DO TELEGRAM ---
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
client.addEventHandler(async (event) => {
|
| 101 |
const message = event.message.message;
|
| 102 |
if (!message) return;
|
| 103 |
const sender = await event.message.getSender();
|
| 104 |
const username = sender ? sender.username : "";
|
| 105 |
|
| 106 |
+
// Filtra pelo username do bot alvo ou palavra-chave
|
| 107 |
if (username === CONFIG.botTelegramAlvo || message.toLowerCase().includes("betbots")) {
|
| 108 |
+
console.log(`🎯 Mensagem capturada! Enviando para o WhatsApp...`);
|
| 109 |
try {
|
| 110 |
await sock.sendMessage(CONFIG.idGrupoWhats, { text: formatarVip(message) });
|
| 111 |
+
console.log("🚀 SINAL ENVIADO!");
|
| 112 |
} catch (err) {
|
| 113 |
+
console.log("❌ Erro no envio. Verifique a conexão.");
|
| 114 |
}
|
| 115 |
}
|
| 116 |
}, new NewMessage({}));
|