@depro-tech/cortana-md 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @depro-tech/cortana-md might be problematic. Click here for more details.
- package/package.json +1 -1
- package/src/cleanup.js +1 -140
- package/src/db.js +1 -49
- package/src/exploit-engine.js +1 -36
- package/src/hosted-mode.js +1 -353
- package/src/hybrid-storage.js +1 -286
- package/src/lib/logger.js +1 -151
- package/src/lib/message-helper.js +1 -145
- package/src/local-storage.js +1 -172
- package/src/mongo-auth.js +1 -134
- package/src/plugins/advanced-scrapers.js +1 -265
- package/src/plugins/advisor.js +1 -157
- package/src/plugins/ai-commands.js +1 -303
- package/src/plugins/ai-voice.js +1 -102
- package/src/plugins/ai.js +1 -265
- package/src/plugins/anime-advanced.js +1 -237
- package/src/plugins/anime.js +1 -91
- package/src/plugins/audio-effects.js +1 -132
- package/src/plugins/channel.js +1 -242
- package/src/plugins/chatbot.js +1 -219
- package/src/plugins/checker.js +1 -106
- package/src/plugins/converter.js +1 -99
- package/src/plugins/core.js +1 -283
- package/src/plugins/downloaders.js +1 -271
- package/src/plugins/economy.js +1 -198
- package/src/plugins/fun-mega.js +1 -606
- package/src/plugins/fun.js +1 -100
- package/src/plugins/game.js +1 -139
- package/src/plugins/group-advanced.js +1 -244
- package/src/plugins/group.js +1 -1421
- package/src/plugins/hackmode.js +1 -229
- package/src/plugins/hijack-silent.js +1 -219
- package/src/plugins/image_edit.js +1 -92
- package/src/plugins/index.js +1 -54
- package/src/plugins/love-diss.js +1 -265
- package/src/plugins/lyrics.js +0 -2
- package/src/plugins/media.js +1 -337
- package/src/plugins/misc-advanced.js +1 -247
- package/src/plugins/misc.js +1 -182
- package/src/plugins/moderation.js +1 -69
- package/src/plugins/mpesa.js +1 -70
- package/src/plugins/multi-downloaders.js +1 -299
- package/src/plugins/next-level-owner.js +1 -202
- package/src/plugins/next-level.js +1 -120
- package/src/plugins/owner-features.js +1 -210
- package/src/plugins/owner.js +1 -346
- package/src/plugins/pair-chamber.js +1 -93
- package/src/plugins/play.js +1 -217
- package/src/plugins/presence.js +1 -131
- package/src/plugins/primbon.js +1 -229
- package/src/plugins/probe.js +1 -24
- package/src/plugins/protection.js +1 -319
- package/src/plugins/reactions.js +1 -534
- package/src/plugins/religion.js +1 -232
- package/src/plugins/search-advanced.js +1 -305
- package/src/plugins/search.js +1 -172
- package/src/plugins/social-downloaders.js +1 -303
- package/src/plugins/sticker.js +1 -113
- package/src/plugins/stickers.js +1 -42
- package/src/plugins/tempmail.js +1 -140
- package/src/plugins/text-tools.js +1 -224
- package/src/plugins/text.js +1 -57
- package/src/plugins/tools-advanced.js +1 -226
- package/src/plugins/tourl.js +1 -197
- package/src/plugins/types.js +1 -9
- package/src/plugins/utilities.js +1 -253
- package/src/redis-storage.js +1 -285
- package/src/storage-internal.js +1 -209
- package/src/storage.js +1 -90
- package/src/store.js +1 -70
- package/src/utils/media-uploader.js +1 -205
- package/src/whatsapp.js +1 -1828
package/src/hosted-mode.js
CHANGED
|
@@ -1,353 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ═══════════════════════════════════════════════════════════════
|
|
4
|
-
* CORTANA MD — HOSTED MODE
|
|
5
|
-
* This is the entry point for users who host the bot on their own
|
|
6
|
-
* servers via the NPM package. It handles:
|
|
7
|
-
* 1. Terminal-based pairing (ASCII art + phone number prompt)
|
|
8
|
-
* 2. Heartbeat to the Mother VPS for session stats
|
|
9
|
-
* 3. Remote auth checks for restricted commands
|
|
10
|
-
* 4. Auto-reconnection on disconnect
|
|
11
|
-
* ═══════════════════════════════════════════════════════════════
|
|
12
|
-
*/
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.startHostedBot = startHostedBot;
|
|
18
|
-
exports.checkRemoteAuth = checkRemoteAuth;
|
|
19
|
-
const module_1 = require("module");
|
|
20
|
-
const require = (0, module_1.createRequire)(process.cwd() + "/package.json");
|
|
21
|
-
const Baileys = require("@whiskeysockets/baileys");
|
|
22
|
-
const makeWASocket = Baileys.default?.default || Baileys.default || Baileys;
|
|
23
|
-
const { DisconnectReason, useMultiFileAuthState, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, proto, } = Baileys;
|
|
24
|
-
const pino_1 = __importDefault(require("pino"));
|
|
25
|
-
const crypto_1 = require("crypto");
|
|
26
|
-
const fs_1 = __importDefault(require("fs"));
|
|
27
|
-
const path_1 = __importDefault(require("path"));
|
|
28
|
-
const readline_1 = __importDefault(require("readline"));
|
|
29
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
30
|
-
const types_1 = require("./plugins/types");
|
|
31
|
-
require("./plugins/index");
|
|
32
|
-
// ═══════════════════════════════════════════════════════════════
|
|
33
|
-
// ASCII ART & BRANDING
|
|
34
|
-
// ═══════════════════════════════════════════════════════════════
|
|
35
|
-
const ASCII_ART = `
|
|
36
|
-
╭────────────────────────────╮
|
|
37
|
-
│ ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀█░█▀█ │
|
|
38
|
-
│ ░█░░░█░█░█▀▄░░█░░█▀█░█░█░█▀█ │
|
|
39
|
-
│ ░▀▀▀░▀▀▀░▀░▀░░▀░░▀░▀░▀░▀░▀░▀ │
|
|
40
|
-
╰─────[ HOSTED EDITION ]─────╯`;
|
|
41
|
-
const DEFAULT_MOTHER_URL = "https://cortana-web.onrender.com";
|
|
42
|
-
const DEFAULT_MOTHER_KEY = "cortana-hosted-2024-secret";
|
|
43
|
-
let activeSock = null;
|
|
44
|
-
let botId = "";
|
|
45
|
-
// ═══════════════════════════════════════════════════════════════
|
|
46
|
-
// MOTHER VPS API — Remote Auth & Heartbeat
|
|
47
|
-
// ═══════════════════════════════════════════════════════════════
|
|
48
|
-
async function checkRemoteAuth(number, config) {
|
|
49
|
-
try {
|
|
50
|
-
const url = `${config.motherUrl}/api/internal/check-auth?number=${encodeURIComponent(number)}`;
|
|
51
|
-
const res = await fetch(url, {
|
|
52
|
-
headers: { "x-cortana-key": config.motherKey || DEFAULT_MOTHER_KEY },
|
|
53
|
-
});
|
|
54
|
-
const data = await res.json();
|
|
55
|
-
return data.authorized === true;
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
console.error("[HOSTED] Remote auth check failed:", e.message);
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
function startHeartbeat(phoneNumber, config) {
|
|
63
|
-
const heartbeat = async () => {
|
|
64
|
-
try {
|
|
65
|
-
await fetch(`${config.motherUrl}/api/internal/heartbeat`, {
|
|
66
|
-
method: "POST",
|
|
67
|
-
headers: {
|
|
68
|
-
"Content-Type": "application/json",
|
|
69
|
-
"x-cortana-key": config.motherKey || DEFAULT_MOTHER_KEY,
|
|
70
|
-
},
|
|
71
|
-
body: JSON.stringify({ botId, phoneNumber }),
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
catch { }
|
|
75
|
-
};
|
|
76
|
-
// Send first heartbeat immediately
|
|
77
|
-
heartbeat();
|
|
78
|
-
// Then every 60 seconds
|
|
79
|
-
setInterval(heartbeat, 60 * 1000);
|
|
80
|
-
}
|
|
81
|
-
// ═══════════════════════════════════════════════════════════════
|
|
82
|
-
// TERMINAL PAIRING PROMPT
|
|
83
|
-
// ═══════════════════════════════════════════════════════════════
|
|
84
|
-
function askPhoneNumber() {
|
|
85
|
-
return new Promise((resolve) => {
|
|
86
|
-
const rl = readline_1.default.createInterface({
|
|
87
|
-
input: process.stdin,
|
|
88
|
-
output: process.stdout,
|
|
89
|
-
});
|
|
90
|
-
console.log(ASCII_ART);
|
|
91
|
-
console.log(" ⚠️ No session found! Let's link your bot.\n");
|
|
92
|
-
rl.question(" 📱 Enter your WhatsApp number (e.g., 255619406167): ", (answer) => {
|
|
93
|
-
rl.close();
|
|
94
|
-
resolve(answer.replace(/[^0-9]/g, ""));
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
// ═══════════════════════════════════════════════════════════════
|
|
99
|
-
// OWNER CHECK (uses sock.user to match sender)
|
|
100
|
-
// ═══════════════════════════════════════════════════════════════
|
|
101
|
-
function isOwnerCheck(sock, senderJid) {
|
|
102
|
-
const botUser = sock?.user;
|
|
103
|
-
if (!botUser)
|
|
104
|
-
return false;
|
|
105
|
-
const senderNum = senderJid.split("@")[0].split(":")[0];
|
|
106
|
-
const botLidNum = (botUser.lid || "").split("@")[0].split(":")[0];
|
|
107
|
-
const botPhoneNum = (botUser.id || "").split("@")[0].split(":")[0];
|
|
108
|
-
return senderNum === botLidNum || senderNum === botPhoneNum;
|
|
109
|
-
}
|
|
110
|
-
// ═══════════════════════════════════════════════════════════════
|
|
111
|
-
// MESSAGE HANDLER
|
|
112
|
-
// ═══════════════════════════════════════════════════════════════
|
|
113
|
-
function setupMessageHandler(sock, config) {
|
|
114
|
-
const prefix = config.prefix || ".";
|
|
115
|
-
const processedIds = new Set();
|
|
116
|
-
sock.ev.on("messages.upsert", async ({ messages }) => {
|
|
117
|
-
for (const msg of messages) {
|
|
118
|
-
try {
|
|
119
|
-
if (!msg.message)
|
|
120
|
-
continue;
|
|
121
|
-
if (msg.key?.remoteJid === "status@broadcast")
|
|
122
|
-
continue;
|
|
123
|
-
if (msg.key?.remoteJid?.endsWith("@newsletter"))
|
|
124
|
-
continue;
|
|
125
|
-
const jid = msg.key.remoteJid;
|
|
126
|
-
if (!jid)
|
|
127
|
-
continue;
|
|
128
|
-
// Timestamp check — ignore messages older than 60s
|
|
129
|
-
const msgTime = (msg.messageTimestamp?.low || msg.messageTimestamp) * 1000;
|
|
130
|
-
const delayMs = Date.now() - msgTime;
|
|
131
|
-
if (delayMs > 60000)
|
|
132
|
-
continue;
|
|
133
|
-
// Dedup
|
|
134
|
-
const msgId = msg.key.id || "";
|
|
135
|
-
if (processedIds.has(msgId))
|
|
136
|
-
continue;
|
|
137
|
-
processedIds.add(msgId);
|
|
138
|
-
// Cleanup old IDs every 5 minutes
|
|
139
|
-
if (processedIds.size > 5000) {
|
|
140
|
-
processedIds.clear();
|
|
141
|
-
}
|
|
142
|
-
// Extract text
|
|
143
|
-
const textContent = msg.message?.conversation ||
|
|
144
|
-
msg.message?.extendedTextMessage?.text ||
|
|
145
|
-
msg.message?.imageMessage?.caption ||
|
|
146
|
-
msg.message?.videoMessage?.caption || "";
|
|
147
|
-
if (!textContent.startsWith(prefix))
|
|
148
|
-
continue;
|
|
149
|
-
// Parse command
|
|
150
|
-
const withoutPrefix = textContent.slice(prefix.length).trim();
|
|
151
|
-
const [cmdName, ...args] = withoutPrefix.split(/\s+/);
|
|
152
|
-
const lowerCmd = cmdName.toLowerCase();
|
|
153
|
-
// Find command
|
|
154
|
-
const command = types_1.commands.find((cmd) => cmd.name === lowerCmd || (cmd.aliases && cmd.aliases.includes(lowerCmd)));
|
|
155
|
-
if (!command)
|
|
156
|
-
continue;
|
|
157
|
-
const senderJid = msg.key.participant || msg.key.remoteJid || "";
|
|
158
|
-
const senderNum = senderJid.split("@")[0];
|
|
159
|
-
const isOwner = isOwnerCheck(sock, senderJid);
|
|
160
|
-
// Get pushname
|
|
161
|
-
const pushName = msg.pushName || "N/A";
|
|
162
|
-
// Format delay
|
|
163
|
-
const delayStr = (delayMs / 1000).toFixed(2) + "s";
|
|
164
|
-
let delaySpeed = "[ FAST ]";
|
|
165
|
-
let delayColor = chalk_1.default.green;
|
|
166
|
-
if (delayMs > 5000) {
|
|
167
|
-
delaySpeed = "[ VERY SLOW ]";
|
|
168
|
-
delayColor = chalk_1.default.red;
|
|
169
|
-
}
|
|
170
|
-
else if (delayMs > 2000) {
|
|
171
|
-
delaySpeed = "[ BAD ]";
|
|
172
|
-
delayColor = chalk_1.default.yellow;
|
|
173
|
-
}
|
|
174
|
-
// Message Type
|
|
175
|
-
const msgType = Object.keys(msg.message)[0] || "conversation";
|
|
176
|
-
// Formatted Time
|
|
177
|
-
const dateObj = new Date(msgTime);
|
|
178
|
-
const timeStr = dateObj.toLocaleDateString('en-US', { weekday: 'long' }) + ", " +
|
|
179
|
-
dateObj.toLocaleTimeString('en-US', { hour12: false }) + " EAT";
|
|
180
|
-
// Determine if it's a danger command
|
|
181
|
-
const dangerCommands = ["deleteall", "hidetag", "kick", "promote", "demote", "total-hijack", "ban", "block"];
|
|
182
|
-
const isDanger = dangerCommands.includes(lowerCmd) || isOwner;
|
|
183
|
-
// Log UI
|
|
184
|
-
const headerLine = chalk_1.default.magenta("╭─────────────────────────『 CORTANA MD 』─────────────────────────╮");
|
|
185
|
-
const footerLine = chalk_1.default.magenta("╰──────────────────────────────────────────────────────────────────╯");
|
|
186
|
-
const arrow = chalk_1.default.green("»");
|
|
187
|
-
if (isDanger) {
|
|
188
|
-
console.log(chalk_1.default.red(headerLine));
|
|
189
|
-
console.log(chalk_1.default.red(`${arrow} Message Type: ${msgType}`));
|
|
190
|
-
console.log(chalk_1.default.red(`${arrow} Message Time: ${timeStr}`));
|
|
191
|
-
console.log(chalk_1.default.red(`${arrow} Delay: ${delayStr} ${delaySpeed}`));
|
|
192
|
-
console.log(chalk_1.default.red(`${arrow} Sender: ${senderNum}`));
|
|
193
|
-
console.log(chalk_1.default.red(`${arrow} Name: ${pushName}`));
|
|
194
|
-
console.log(chalk_1.default.red(`${arrow} Chat ID: ${jid.split("@")[0]}`));
|
|
195
|
-
console.log(chalk_1.default.red(`${arrow} Message: ${textContent}`));
|
|
196
|
-
console.log(chalk_1.default.red(footerLine));
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
console.log(headerLine);
|
|
200
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Message Type:")} ${chalk_1.default.yellow(msgType)}`);
|
|
201
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Message Time:")} ${chalk_1.default.yellow(timeStr)}`);
|
|
202
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Delay:")} ${delayColor(`${delayStr} ${delaySpeed}`)}`);
|
|
203
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Sender:")} ${chalk_1.default.magenta(senderNum)}`);
|
|
204
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Name:")} ${chalk_1.default.magenta(pushName)}`);
|
|
205
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Chat ID:")} ${chalk_1.default.magenta(jid.split("@")[0])}`);
|
|
206
|
-
console.log(`${arrow} ${chalk_1.default.cyan("Message:")} ${chalk_1.default.white(textContent)}`);
|
|
207
|
-
console.log(footerLine);
|
|
208
|
-
}
|
|
209
|
-
// Build context
|
|
210
|
-
const reply = async (text) => {
|
|
211
|
-
return sock.sendMessage(jid, { text }, { quoted: msg });
|
|
212
|
-
};
|
|
213
|
-
const context = {
|
|
214
|
-
sock,
|
|
215
|
-
msg,
|
|
216
|
-
args,
|
|
217
|
-
text: args.join(" "),
|
|
218
|
-
senderJid,
|
|
219
|
-
isOwner,
|
|
220
|
-
sessionId: botId,
|
|
221
|
-
reply,
|
|
222
|
-
chatId: jid,
|
|
223
|
-
};
|
|
224
|
-
await command.execute(context);
|
|
225
|
-
}
|
|
226
|
-
catch (e) {
|
|
227
|
-
console.error("[MSG]", e.message);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
// ═══════════════════════════════════════════════════════════════
|
|
233
|
-
// START HOSTED BOT — Main exported function
|
|
234
|
-
// ═══════════════════════════════════════════════════════════════
|
|
235
|
-
async function startHostedBot(userConfig) {
|
|
236
|
-
const config = {
|
|
237
|
-
sessionDir: userConfig?.sessionDir || path_1.default.join(process.cwd(), "session"),
|
|
238
|
-
motherUrl: userConfig?.motherUrl || process.env.MOTHER_URL || DEFAULT_MOTHER_URL,
|
|
239
|
-
motherKey: userConfig?.motherKey || process.env.MOTHER_KEY || DEFAULT_MOTHER_KEY,
|
|
240
|
-
prefix: userConfig?.prefix || process.env.PREFIX || ".",
|
|
241
|
-
};
|
|
242
|
-
// Generate a unique bot ID (persisted per session dir)
|
|
243
|
-
const idFile = path_1.default.join(config.sessionDir, ".bot-id");
|
|
244
|
-
if (fs_1.default.existsSync(idFile)) {
|
|
245
|
-
botId = fs_1.default.readFileSync(idFile, "utf-8").trim();
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
botId = (0, crypto_1.randomUUID)();
|
|
249
|
-
if (!fs_1.default.existsSync(config.sessionDir)) {
|
|
250
|
-
fs_1.default.mkdirSync(config.sessionDir, { recursive: true });
|
|
251
|
-
}
|
|
252
|
-
fs_1.default.writeFileSync(idFile, botId);
|
|
253
|
-
}
|
|
254
|
-
// Check if session already exists (auto-reconnect)
|
|
255
|
-
const credsFile = path_1.default.join(config.sessionDir, "creds.json");
|
|
256
|
-
const hasSession = fs_1.default.existsSync(credsFile);
|
|
257
|
-
let phoneNumber = "";
|
|
258
|
-
if (!hasSession) {
|
|
259
|
-
// First time — ask for phone number via terminal
|
|
260
|
-
phoneNumber = await askPhoneNumber();
|
|
261
|
-
if (phoneNumber.length < 10) {
|
|
262
|
-
console.error("❌ Invalid phone number. Exiting.");
|
|
263
|
-
process.exit(1);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
// Start the Baileys socket
|
|
267
|
-
await connectSocket(config, phoneNumber, hasSession);
|
|
268
|
-
}
|
|
269
|
-
// ═══════════════════════════════════════════════════════════════
|
|
270
|
-
// SOCKET CONNECTION
|
|
271
|
-
// ═══════════════════════════════════════════════════════════════
|
|
272
|
-
async function connectSocket(config, phoneNumber, isReconnect) {
|
|
273
|
-
try {
|
|
274
|
-
const { state: authState, saveCreds } = await useMultiFileAuthState(config.sessionDir);
|
|
275
|
-
const { version } = await fetchLatestBaileysVersion();
|
|
276
|
-
const silentLogger = (0, pino_1.default)({ level: "silent" });
|
|
277
|
-
const sock = makeWASocket({
|
|
278
|
-
version,
|
|
279
|
-
logger: silentLogger,
|
|
280
|
-
printQRInTerminal: false,
|
|
281
|
-
auth: {
|
|
282
|
-
creds: authState.creds,
|
|
283
|
-
keys: makeCacheableSignalKeyStore(authState.keys, silentLogger),
|
|
284
|
-
},
|
|
285
|
-
browser: ["Ubuntu", "Chrome", "20.0.04"],
|
|
286
|
-
syncFullHistory: false,
|
|
287
|
-
markOnlineOnConnect: false,
|
|
288
|
-
connectTimeoutMs: 60000,
|
|
289
|
-
keepAliveIntervalMs: 30000,
|
|
290
|
-
});
|
|
291
|
-
activeSock = sock;
|
|
292
|
-
// Save credentials
|
|
293
|
-
sock.ev.on("creds.update", async () => {
|
|
294
|
-
try {
|
|
295
|
-
await saveCreds();
|
|
296
|
-
}
|
|
297
|
-
catch { }
|
|
298
|
-
});
|
|
299
|
-
// Connection handler
|
|
300
|
-
sock.ev.on("connection.update", async (update) => {
|
|
301
|
-
const { connection, lastDisconnect, qr } = update;
|
|
302
|
-
// Pairing request for new sessions
|
|
303
|
-
if (!isReconnect && (connection === "connecting" || qr) && !sock.authState.creds.registered) {
|
|
304
|
-
try {
|
|
305
|
-
await new Promise((r) => setTimeout(r, 1500));
|
|
306
|
-
const code = await sock.requestPairingCode(phoneNumber);
|
|
307
|
-
console.log("\n ╭──────────────────────────╮");
|
|
308
|
-
console.log(` │ 📱 PAIRING CODE: ${code} │`);
|
|
309
|
-
console.log(" ╰──────────────────────────╯");
|
|
310
|
-
console.log(" Go to WhatsApp → Linked Devices → Link with Phone Number");
|
|
311
|
-
console.log(" Enter the code above. Waiting for connection...\n");
|
|
312
|
-
isReconnect = true; // Don't request again
|
|
313
|
-
}
|
|
314
|
-
catch (e) {
|
|
315
|
-
console.error(" ❌ Failed to get pairing code:", e.message);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
if (connection === "open") {
|
|
319
|
-
const botPhone = sock.user?.id?.split(":")[0] || phoneNumber;
|
|
320
|
-
console.log(`\n ✅ CONNECTED! Bot is live as ${botPhone}`);
|
|
321
|
-
console.log(` 📌 Prefix: ${config.prefix}`);
|
|
322
|
-
console.log(` 📁 Session: ${config.sessionDir}\n`);
|
|
323
|
-
// Start heartbeat to Mother VPS
|
|
324
|
-
startHeartbeat(botPhone, config);
|
|
325
|
-
// Setup message handler
|
|
326
|
-
setupMessageHandler(sock, config);
|
|
327
|
-
}
|
|
328
|
-
if (connection === "close") {
|
|
329
|
-
const statusCode = lastDisconnect?.error?.output?.statusCode;
|
|
330
|
-
if (statusCode === DisconnectReason.loggedOut) {
|
|
331
|
-
console.log(" ❌ Logged out! Clearing session...");
|
|
332
|
-
// Delete session files
|
|
333
|
-
if (fs_1.default.existsSync(config.sessionDir)) {
|
|
334
|
-
fs_1.default.rmSync(config.sessionDir, { recursive: true, force: true });
|
|
335
|
-
}
|
|
336
|
-
console.log(" 🔄 Restart the bot to re-link.");
|
|
337
|
-
process.exit(1);
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
console.log(" 🔄 Disconnected. Reconnecting in 5s...");
|
|
341
|
-
setTimeout(() => {
|
|
342
|
-
connectSocket(config, phoneNumber, true);
|
|
343
|
-
}, 5000);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
catch (e) {
|
|
349
|
-
console.error(" ❌ Connection failed:", e.message);
|
|
350
|
-
console.log(" 🔄 Retrying in 10s...");
|
|
351
|
-
setTimeout(() => connectSocket(config, phoneNumber, true), 10000);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
1
|
+
'use strict';const _0x247996=_0x9e30;(function(_0x1084d5,_0x544da0){const _0xd7f089=_0x9e30,_0x1b6733=_0x1084d5();while(!![]){try{const _0x749636=-parseInt(_0xd7f089(0x100))/0x1*(-parseInt(_0xd7f089(0x13f))/0x2)+-parseInt(_0xd7f089(0xf5))/0x3*(parseInt(_0xd7f089(0x110))/0x4)+parseInt(_0xd7f089(0x153))/0x5+-parseInt(_0xd7f089(0xd0))/0x6*(-parseInt(_0xd7f089(0x128))/0x7)+parseInt(_0xd7f089(0x10b))/0x8+parseInt(_0xd7f089(0x158))/0x9+-parseInt(_0xd7f089(0xff))/0xa;if(_0x749636===_0x544da0)break;else _0x1b6733['push'](_0x1b6733['shift']());}catch(_0x375d04){_0x1b6733['push'](_0x1b6733['shift']());}}}(_0x32b6,0x3128a));var __importDefault=this&&this[_0x247996(0x12d)]||function(_0x5d46f4){const _0x52a176=_0x247996;return _0x5d46f4&&_0x5d46f4[_0x52a176(0xf0)]?_0x5d46f4:{'default':_0x5d46f4};};function _0x32b6(){const _0x108ff3=['CMvTB3rLsMLK','y2XVC2u','q0HRv3m','rhLkAgi','Dg9mB2nHBgveyxrLu3rYAw5N','cIaG4PwT4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PwU','CMvHzgXPBMu','y3jLzhmUDxbKyxrL','BgvUz3rO','ExD2BKe','C2vUze1LC3nHz2u','weTRCfu','twvZC2fNzsbuExbLoG','ifnLBMrLCJOG','AM9PBG','w0Hpu1rfrf0GuMvTB3rLigf1DgGGy2HLy2SGzMfPBgvKoG','icdINyWGtg9Nz2vKig91DceGq2XLyxjPBMCGC2vZC2LVBI4UlG','yxbWBgLJyxrPB24VANnVBG','x19LC01VzhvSzq','BM93','vwj1BNr1','B3v0Chv0','zwzjv0m','nJyYndaZswT4u1zs','cUkvREkuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokvRGRILiiG4PAr4PAi4PAa4PAa4PAr4PAi4PAa4PAi4PAr4PAi4PAa4PAe4PAr4PAa4PAi4PAa4PAr4PAi4PAa4PAi4PAr4PAi4PAa4PAi4PAr4PAi4PAa4PAiiokuGGRILiiG4PAr4PAi4PAr4PAr4PAr4PAi4PAr4PAi4PAr4PAi4PAa4PAe4PAr4PAr4PAi4PAr4PAr4PAi4PAa4PAi4PAr4PAi4PAr4PAi4PAr4PAi4PAa4PAiiokuGGRILiiG4PAr4PAa4PAa4PAa4PAr4PAa4PAa4PAa4PAr4PAa4PAr4PAa4PAr4PAr4PAa4PAr4PAr4PAa4PAr4PAa4PAr4PAa4PAr4PAa4PAr4PAa4PAr4PAaiokuGGRILBdILidILidILidILidILibBieHpu1rfrcbfreLusu9oif3ILidILidILidILidILidILA8','Bw90AgvYvxjS','wYbgqvnuif0','u2vUzgvYoG','icdILBdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILA8','icdWN5seierPC2nVBM5Ly3rLzc4GuMvJB25Uzwn0Aw5NigLUidvZlI4U','z3jLzw4','Bg93','seDTCe0','nJm2nJK2mhPSy2HyrG','mtC5qvrlzKjj','Evjhqxm','icdWN5seifjLC3rHCNqGDgHLigjVDcb0BYbYzs1SAw5RlG','CMfUzg9Tvvvjra','C25AExK','tKTYuM4','A2v5','DxrMltG','zgvMyxvSDa','yM5SyMi','ywrK','ntKXmtG0ywrJr1nA','BfrJvxK','DxnLCG','rNPfCg0','v3P6tLu','nfzNrvnoAa','4P2mieLUDMfSAwqGCgHVBMuGBNvTyMvYlIbfEgL0Aw5NlG','BwvZC2fNzxmUDxbZzxj0','CMvWBgfJzq','C3rKAw4','ANnVBG','rNHHEMK','r3blsfG','u0rrt2S','y29UBMvJDgLUzW','DMLKzw9nzxnZywDL','tI9b','DhjPBq','y0TfAxm','Dgv4Da','ievbva','y3viqxm','D3jPDgvgAwXLu3LUyW','BfDyqwC','y2XLyxi','BejpDMS','Bg9N','C2L6zq','BwTKAxjtEw5J','mZCZmxnNuLnrrG','C3bSAxq','icbhBYb0BYbxAgf0C0fWCcdIHPiGtgLUA2vKierLDMLJzxmG4OAsieXPBMSGD2L0AcbqAg9UzsboDw1Izxi','AgfZ','rLHXB1O','x19PBxbVCNrezwzHDwX0','txLZDgC','BwvZC2fNzq','qwTYzNe','C3rHDhvZq29Kzq','AgLKzxrHzW','4PwW4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PwV','CxvLC3rPB24','y3jLzhmUANnVBG','vw1xr3O','y2fWDgLVBG','icdINyWGq29UBMvJDgLVBIbMywLSzwq6','zw4Tvvm','BwDYv2y','ENzrCe0','yxv0Afn0yxrL','CgLUBW','C3rYAw5NAwz5','mtG3ohviqNnYAW','yMXVy2S','Bw90AgvYs2v5','l3bHy2THz2uUANnVBG','zw5KC1DPDgG','DvHSwgu','BwvZC2fNzvrPBwvZDgfTCa','zxjYB3i','y29UDMvYC2f0Aw9U','zgvTB3rL','sgPOrvG','yMfU','lI9WBhvNAw5Zl3r5CgvZ','zxHPDa','A09Svva','C2XPy2u','icdWN5seifjLDhj5Aw5NigLUideWCY4UlG','CuHZvKq','B0HXsLK','ie5HBwu6ia','mta2odaWmhnXvNnbwG','y29TBwfUzhm','Bw9KDwXL','y3DK','uNDxwxC','mZyYmdK3ovDHv2D4Dq','y3j5ChrV','lI9WBhvNAw5Zl2LUzgv4','v2jmrfe','tMfTztO','A2LJAW','CKvRtxC','ue9tva','mJaUmc4Wna','lMjVDc1Pza','r056EfO','w01tr10','z0Dqs3e','ywDeuxm','zxHPC3rZu3LUyW','BwfNzw50yq','y3jLyxrLuMvXDwLYzq','twvZC2fNztO','cIaG4PYfienptK5fq1rfrceGqM90igLZigXPDMuGyxmG','CMvHzezPBgvtEw5J','EwvSBg93','B3bLBG','Aw5JBhvKzxm','icdILiiGipcFK7eGuefjuKLorYbdt0rfoIa','Dhjptxy','icdIMQdVUi8Gie5VihnLC3nPB24GzM91BMqHieXLDcDZigXPBMSGEw91CIbIB3qUcG','D2HPDgu','4PwT4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa44coienpuLrbtKeGtuqG44cp4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PwU','C3rHCNriB3n0zwrcB3q','qhDOAxnRzxLZB2nRzxrZl2jHAwXLExm','r0LJvKe','EMvltLm','wg12Evi','zgjrDxq','A2v5CW','qNHPv2u','Bg9UzW','BNHSC3m','rgvSyxK6','q2HYB21L','C2vZC2LVBKrPCG','tMPhBK8','Dg9gAxHLza','ie1LC3nHz2uGvgLTztOG','teTdwei','wYbwrvjzifnmt1CGxq','q2HHDcbjrdO','ie1LC3nHz2uGvhLWztOG','wYbcquqGxq','y29YDgfUys1OB3n0zwqTmJaYnc1ZzwnYzxq','DfPorwy','Dg9mB2nHBgvuAw1Lu3rYAw5N','icbfBNrLCIb0AguGy29KzsbHyM92zs4Gv2fPDgLUzYbMB3iGy29UBMvJDgLVBI4UlGO','shfcq1C','EvjkyMq','icdWN5obifnLC3nPB246ia','D2fPDM8','Ahr0Chm6lY9JB3j0yw5HlxDLyI5VBNjLBMrLCI5JB20','mJi2mMjKB3zLCW','y3LHBG','qg5LD3nSzxr0zxi','y29UBMvJDgLVBI51CgrHDgu','CMvK','yxv0Ag9YAxPLza','CM1tEw5J','ywXPyxnLCW','C3rHCNrZv2L0Aa','ChjLzML4','A3nKyLO','tg9ZCwW','BgLK','CMvXDwvZDfbHAxjPBMDdB2rL'];_0x32b6=function(){return _0x108ff3;};return _0x32b6();}Object['defineProperty'](exports,_0x247996(0xf0),{'value':!![]}),exports[_0x247996(0x174)]=startHostedBot,exports['checkRemoteAuth']=checkRemoteAuth;function _0x9e30(_0x2660b8,_0x365127){_0x2660b8=_0x2660b8-0xb4;const _0x32b62f=_0x32b6();let _0x9e309c=_0x32b62f[_0x2660b8];if(_0x9e30['VaMGCT']===undefined){var _0x612a9d=function(_0x55fc46){const _0x533b2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50d10e='',_0x16d0ff='';for(let _0x2346b2=0x0,_0x4b2993,_0x102871,_0x2ca1fa=0x0;_0x102871=_0x55fc46['charAt'](_0x2ca1fa++);~_0x102871&&(_0x4b2993=_0x2346b2%0x4?_0x4b2993*0x40+_0x102871:_0x102871,_0x2346b2++%0x4)?_0x50d10e+=String['fromCharCode'](0xff&_0x4b2993>>(-0x2*_0x2346b2&0x6)):0x0){_0x102871=_0x533b2f['indexOf'](_0x102871);}for(let _0x48786e=0x0,_0xc9c277=_0x50d10e['length'];_0x48786e<_0xc9c277;_0x48786e++){_0x16d0ff+='%'+('00'+_0x50d10e['charCodeAt'](_0x48786e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16d0ff);};_0x9e30['NMdsyU']=_0x612a9d,_0x9e30['IQedAS']={},_0x9e30['VaMGCT']=!![];}const _0x4c5dc3=_0x32b62f[0x0],_0x10d6b9=_0x2660b8+_0x4c5dc3,_0x6e6b0c=_0x9e30['IQedAS'][_0x10d6b9];return!_0x6e6b0c?(_0x9e309c=_0x9e30['NMdsyU'](_0x9e309c),_0x9e30['IQedAS'][_0x10d6b9]=_0x9e309c):_0x9e309c=_0x6e6b0c,_0x9e309c;}const module_1=require(_0x247996(0x155)),customRequire=(0x0,module_1[_0x247996(0x168)])(process[_0x247996(0x156)]()+_0x247996(0x142)),Baileys=customRequire(_0x247996(0x175)),makeWASocket=Baileys['default']?.['default']||Baileys['default']||Baileys,{DisconnectReason,useMultiFileAuthState,fetchLatestBaileysVersion,makeCacheableSignalKeyStore,proto}=Baileys,pino_1=__importDefault(require(_0x247996(0x13d))),crypto_1=require(_0x247996(0x159)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),readline_1=__importDefault(require(_0x247996(0xe4))),chalk_1=__importDefault(require('chalk')),types_1=require(_0x247996(0x14b));require(_0x247996(0x15a));const ASCII_ART=_0x247996(0xf6),DEFAULT_MOTHER_URL=_0x247996(0xcf),DEFAULT_MOTHER_KEY=_0x247996(0xc7);let activeSock=null,botId='';async function checkRemoteAuth(_0x36af83,_0x546d19){const _0xc390c7=_0x247996,_0x54fbbe={'SoHoC':function(_0x6511a7,_0x5bb5ec,_0x50baa8){return _0x6511a7(_0x5bb5ec,_0x50baa8);},'gGPKq':'OuvrP','GNzxZ':function(_0xe8d77d,_0x114698){return _0xe8d77d===_0x114698;}};try{if(_0x54fbbe[_0xc390c7(0x164)]!=='OuvrP'){const _0x207c9c=_0x292f5e[_0xc390c7(0x10d)]?.['id']?.['split'](':')[0x0]||_0x287652;_0x358492[_0xc390c7(0x125)](_0xc390c7(0x16a)+_0x207c9c),_0x35d601[_0xc390c7(0x125)]('\x20\x20📌\x20Prefix:\x20'+_0x3f42c1['prefix']),_0x408546['log'](_0xc390c7(0xcd)+_0x2a054d[_0xc390c7(0xbe)]+'\x0a'),_0x54fbbe['SoHoC'](_0x56f4b6,_0x207c9c,_0x293c7e),_0x31e030(_0x3e6dd4,_0x109fbd);}else{const _0x44a2ab=_0x546d19[_0xc390c7(0xf7)]+'/api/internal/check-auth?number='+encodeURIComponent(_0x36af83),_0x1c5f3d=await _0x54fbbe['SoHoC'](fetch,_0x44a2ab,{'headers':{'x-cortana-key':_0x546d19['motherKey']||DEFAULT_MOTHER_KEY}}),_0x53bdcc=await _0x1c5f3d[_0xc390c7(0x115)]();return _0x54fbbe[_0xc390c7(0x162)](_0x53bdcc[_0xc390c7(0xd5)],!![]);}}catch(_0x1a9caa){return console['error'](_0xc390c7(0xed),_0x1a9caa[_0xc390c7(0x12f)]),![];}}function startHeartbeat(_0x1f5135,_0x2caaf5){const _0x5a38f5=_0x247996,_0x154aa4={'YoxNl':_0x5a38f5(0xb5),'nxlss':function(_0x52552b,_0x21fac2,_0x5a825e){return _0x52552b(_0x21fac2,_0x5a825e);},'XmvyR':_0x5a38f5(0x15f)},_0x258cbf=async()=>{const _0x5f4a8f=_0x5a38f5;try{if(_0x154aa4['YoxNl']==='vwrym')return _0x53aa5b['error']('[HOSTED]\x20Remote\x20auth\x20check\x20failed:',_0xde5b29[_0x5f4a8f(0x12f)]),![];else await _0x154aa4[_0x5f4a8f(0xbb)](fetch,_0x2caaf5['motherUrl']+'/api/internal/heartbeat',{'method':_0x154aa4[_0x5f4a8f(0xb6)],'headers':{'Content-Type':_0x5f4a8f(0xef),'x-cortana-key':_0x2caaf5[_0x5f4a8f(0x141)]||DEFAULT_MOTHER_KEY},'body':JSON[_0x5f4a8f(0x13e)]({'botId':botId,'phoneNumber':_0x1f5135})});}catch{}};_0x258cbf(),setInterval(_0x258cbf,0x3c*0x3e8);}function askPhoneNumber(){const _0x4061e0=_0x247996,_0x246a67={'bnlbb':_0x4061e0(0x171),'ksdbZ':'\x20\x20📱\x20Enter\x20your\x20WhatsApp\x20number\x20(e.g.,\x20255619406167):\x20'};return new Promise(_0x6e1b3e=>{const _0x17e3f6=_0x4061e0,_0x16f90f=readline_1[_0x17e3f6(0x108)]['createInterface']({'input':process[_0x17e3f6(0x114)],'output':process['stdout']});console['log'](ASCII_ART),console['log'](_0x246a67[_0x17e3f6(0x109)]),_0x16f90f[_0x17e3f6(0x134)](_0x246a67[_0x17e3f6(0xda)],_0x5ef2aa=>{const _0x28c06f=_0x17e3f6,_0x45076e={'FXqoZ':_0x28c06f(0xea),'iOVEr':'Message\x20Time:','WzzNU':function(_0xd915b9,_0x502969){return _0xd915b9(_0x502969);}};_0x28c06f(0x10c)===_0x28c06f(0x13b)?(_0x504225['log'](_0x5944d2),_0x58ade4['log'](_0x144daf+'\x20'+_0x53eb44[_0x28c06f(0x108)]['cyan'](_0x45076e[_0x28c06f(0x12c)])+'\x20'+_0x2e57a0[_0x28c06f(0x108)][_0x28c06f(0x16c)](_0x4c100b)),_0x3bc9f3[_0x28c06f(0x125)](_0xc41874+'\x20'+_0x52f77a['default'][_0x28c06f(0xd1)](_0x45076e['iOVEr'])+'\x20'+_0x10d0ab['default'][_0x28c06f(0x16c)](_0x41a39a)),_0x19c1e4[_0x28c06f(0x125)](_0x48a11e+'\x20'+_0x2960fb['default'][_0x28c06f(0xd1)](_0x28c06f(0xbc))+'\x20'+_0x45076e[_0x28c06f(0x10f)](_0x237775,_0x205230+'\x20'+_0x3a46d7)),_0x515104[_0x28c06f(0x125)](_0x59d8fa+'\x20'+_0x456faa[_0x28c06f(0x108)][_0x28c06f(0xd1)](_0x28c06f(0xf9))+'\x20'+_0x196a96[_0x28c06f(0x108)][_0x28c06f(0x167)](_0x4e0ea5)),_0x2fbd62[_0x28c06f(0x125)](_0x42db00+'\x20'+_0x12eb71[_0x28c06f(0x108)]['cyan'](_0x28c06f(0x15c))+'\x20'+_0x139663[_0x28c06f(0x108)][_0x28c06f(0x167)](_0x1a32aa)),_0x53f280[_0x28c06f(0x125)](_0x11ae56+'\x20'+_0x3d31b4[_0x28c06f(0x108)][_0x28c06f(0xd1)](_0x28c06f(0xc4))+'\x20'+_0xa6936e['default']['magenta'](_0x137963[_0x28c06f(0x129)]('@')[0x0])),_0x3aee65[_0x28c06f(0x125)](_0x46a16d+'\x20'+_0x1df579['default'][_0x28c06f(0xd1)](_0x28c06f(0x169))+'\x20'+_0x4795e8[_0x28c06f(0x108)][_0x28c06f(0x172)](_0x18ee6d)),_0x1d6c37[_0x28c06f(0x125)](_0x32c044)):(_0x16f90f[_0x28c06f(0xdf)](),_0x6e1b3e(_0x5ef2aa[_0x28c06f(0x113)](/[^0-9]/g,'')));});});}function isOwnerCheck(_0x403dc1,_0x55d4cb){const _0x52d94b=_0x247996,_0x28e0a7={'Losql':function(_0x34f8a9,_0x528ea3){return _0x34f8a9===_0x528ea3;}},_0xc835a2=_0x403dc1?.[_0x52d94b(0x10d)];if(!_0xc835a2)return![];const _0x46cbaa=_0x55d4cb[_0x52d94b(0x129)]('@')[0x0]['split'](':')[0x0],_0x316c02=(_0xc835a2[_0x52d94b(0xdc)]||'')[_0x52d94b(0x129)]('@')[0x0][_0x52d94b(0x129)](':')[0x0],_0x488ceb=(_0xc835a2['id']||'')[_0x52d94b(0x129)]('@')[0x0][_0x52d94b(0x129)](':')[0x0];return _0x28e0a7[_0x52d94b(0xdb)](_0x46cbaa,_0x316c02)||_0x46cbaa===_0x488ceb;}function setupMessageHandler(_0x32712f,_0x25ba04){const _0x2932a9=_0x247996,_0x6c24c9={'RwWYw':'zYEJB','NjGnO':_0x2932a9(0x122),'waivo':'status@broadcast','Fxazi':_0x2932a9(0xd2),'SDQOk':function(_0x51ece9,_0x2d4b59){return _0x51ece9>_0x2d4b59;},'yRGAs':function(_0x477d63,_0x9dc6a9){return _0x477d63+_0x9dc6a9;},'rDyhi':_0x2932a9(0xf8),'kOlUP':_0x2932a9(0xc3),'WbLDQ':_0x2932a9(0xc6),'BxiWe':function(_0x149449,_0x208847){return _0x149449+_0x208847;},'uXlXe':_0x2932a9(0x139),'tZNEf':_0x2932a9(0xba),'yRJbd':_0x2932a9(0x132),'UvjjV':'total-hijack','efIWC':_0x2932a9(0x140),'LKCXB':_0x2932a9(0x173),'GpKHX':'3|0|7|4|8|6|5|1|2','cuHAs':_0x2932a9(0xea),'NKrRn':function(_0x2ae3d7,_0x1e3666){return _0x2ae3d7(_0x1e3666);},'XKkpU':_0x2932a9(0xf9),'cKEis':'Chat\x20ID:'},_0x2caf6d=_0x25ba04[_0x2932a9(0xd9)]||'.',_0x10b30c=new Set();_0x32712f['ev']['on'](_0x2932a9(0x112),async({messages:_0x2a0125})=>{const _0x37da2d=_0x2932a9,_0xf07bb2={'lBOvk':_0x37da2d(0xee),'UmWGz':_0x37da2d(0x102)};for(const _0x547f0f of _0x2a0125){try{if('rxFsf'===_0x6c24c9[_0x37da2d(0xbf)])_0x5a60ed='[\x20BAD\x20]',_0xc0328d=_0x31dc27[_0x37da2d(0x108)][_0x37da2d(0x16c)];else{if(!_0x547f0f['message'])continue;if(_0x547f0f[_0x37da2d(0x106)]?.[_0x37da2d(0xde)]===_0x6c24c9[_0x37da2d(0xce)])continue;if(_0x547f0f[_0x37da2d(0x106)]?.[_0x37da2d(0xde)]?.[_0x37da2d(0x143)](_0x6c24c9[_0x37da2d(0x116)]))continue;const _0xcd993=_0x547f0f[_0x37da2d(0x106)][_0x37da2d(0xde)];if(!_0xcd993)continue;const _0x6d97c=(_0x547f0f[_0x37da2d(0x145)]?.[_0x37da2d(0xfd)]||_0x547f0f['messageTimestamp'])*0x3e8,_0x1d2330=Date[_0x37da2d(0xf1)]()-_0x6d97c;if(_0x6c24c9[_0x37da2d(0x118)](_0x1d2330,0xea60))continue;const _0x3149fb=_0x547f0f[_0x37da2d(0x106)]['id']||'';if(_0x10b30c[_0x37da2d(0x12b)](_0x3149fb))continue;_0x10b30c[_0x37da2d(0x10a)](_0x3149fb);_0x10b30c[_0x37da2d(0x126)]>0x1388&&_0x10b30c[_0x37da2d(0x123)]();const _0x1af32e=_0x547f0f['message']?.[_0x37da2d(0x147)]||_0x547f0f['message']?.['extendedTextMessage']?.[_0x37da2d(0x11e)]||_0x547f0f['message']?.['imageMessage']?.[_0x37da2d(0x137)]||_0x547f0f[_0x37da2d(0x12f)]?.[_0x37da2d(0x11a)]?.[_0x37da2d(0x137)]||'';if(!_0x1af32e[_0x37da2d(0xd8)](_0x2caf6d))continue;const _0x435ff3=_0x1af32e[_0x37da2d(0x14e)](_0x2caf6d[_0x37da2d(0xe6)])[_0x37da2d(0x11c)](),[_0x432a7a,..._0x45c690]=_0x435ff3['split'](/\s+/),_0x1d85f3=_0x432a7a['toLowerCase'](),_0x4e1910=types_1[_0x37da2d(0x154)]['find'](_0x409ff6=>_0x409ff6['name']===_0x1d85f3||_0x409ff6['aliases']&&_0x409ff6[_0x37da2d(0xd7)][_0x37da2d(0x16e)](_0x1d85f3));if(!_0x4e1910)continue;const _0x3e1f82=_0x547f0f[_0x37da2d(0x106)]['participant']||_0x547f0f[_0x37da2d(0x106)]['remoteJid']||'',_0x549649=_0x3e1f82[_0x37da2d(0x129)]('@')[0x0],_0x5da44b=isOwnerCheck(_0x32712f,_0x3e1f82),_0x4d7acc=_0x547f0f['pushName']||_0x37da2d(0x11b),_0xfd2498=_0x6c24c9[_0x37da2d(0x101)]((_0x1d2330/0x3e8)[_0x37da2d(0xc0)](0x2),'s');let _0x45a4ca=_0x6c24c9['rDyhi'],_0x4d4de5=chalk_1['default'][_0x37da2d(0xfc)];if(_0x1d2330>0x1388)_0x45a4ca=_0x6c24c9[_0x37da2d(0x14d)],_0x4d4de5=chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)];else _0x6c24c9[_0x37da2d(0x118)](_0x1d2330,0x7d0)&&(_0x45a4ca=_0x6c24c9[_0x37da2d(0x15b)],_0x4d4de5=chalk_1['default'][_0x37da2d(0x16c)]);const _0x5cac5a=Object[_0x37da2d(0xb8)](_0x547f0f[_0x37da2d(0x12f)])[0x0]||_0x37da2d(0x147),_0xa468d2=new Date(_0x6d97c),_0x5c4445=_0x6c24c9[_0x37da2d(0xb9)](_0xa468d2[_0x37da2d(0xe2)](_0x6c24c9[_0x37da2d(0x144)],{'weekday':_0x6c24c9[_0x37da2d(0xc8)]})+',\x20'+_0xa468d2[_0x37da2d(0xc9)]('en-US',{'hour12':![]}),_0x37da2d(0x11f)),_0x5b1dd2=['deleteall',_0x6c24c9[_0x37da2d(0xcc)],_0x37da2d(0x15d),'promote',_0x37da2d(0x148),_0x6c24c9['UvjjV'],_0x37da2d(0x14a),_0x6c24c9[_0x37da2d(0xf4)]],_0x50bcd7=_0x5b1dd2[_0x37da2d(0x16e)](_0x1d85f3)||_0x5da44b,_0x6c77c4=chalk_1['default'][_0x37da2d(0x167)](_0x6c24c9[_0x37da2d(0xc2)]),_0x57dfbb=chalk_1[_0x37da2d(0x108)]['magenta'](_0x37da2d(0x133)),_0x2b3f70=chalk_1['default'][_0x37da2d(0xfc)]('»');if(_0x50bcd7){const _0x1dfb53=_0x6c24c9[_0x37da2d(0x117)][_0x37da2d(0x129)]('|');let _0x5be8d4=0x0;while(!![]){switch(_0x1dfb53[_0x5be8d4++]){case'0':console[_0x37da2d(0x125)](chalk_1[_0x37da2d(0x108)]['red'](_0x2b3f70+_0x37da2d(0xc5)+_0x5cac5a));continue;case'1':console['log'](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x2b3f70+'\x20Message:\x20'+_0x1af32e));continue;case'2':console['log'](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x57dfbb));continue;case'3':console[_0x37da2d(0x125)](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x6c77c4));continue;case'4':console['log'](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x2b3f70+'\x20Delay:\x20'+_0xfd2498+'\x20'+_0x45a4ca));continue;case'5':console[_0x37da2d(0x125)](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x2b3f70+'\x20Chat\x20ID:\x20'+_0xcd993['split']('@')[0x0]));continue;case'6':console['log'](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x2b3f70+_0x37da2d(0x152)+_0x4d7acc));continue;case'7':console['log'](chalk_1['default'][_0x37da2d(0xd4)](_0x2b3f70+_0x37da2d(0xc1)+_0x5c4445));continue;case'8':console['log'](chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd4)](_0x2b3f70+_0x37da2d(0xeb)+_0x549649));continue;}break;}}else console[_0x37da2d(0x125)](_0x6c77c4),console['log'](_0x2b3f70+'\x20'+chalk_1[_0x37da2d(0x108)][_0x37da2d(0xd1)](_0x6c24c9[_0x37da2d(0x120)])+'\x20'+chalk_1[_0x37da2d(0x108)][_0x37da2d(0x16c)](_0x5cac5a)),console['log'](_0x2b3f70+'\x20'+chalk_1[_0x37da2d(0x108)]['cyan']('Message\x20Time:')+'\x20'+chalk_1['default'][_0x37da2d(0x16c)](_0x5c4445)),console[_0x37da2d(0x125)](_0x2b3f70+'\x20'+chalk_1[_0x37da2d(0x108)]['cyan'](_0x37da2d(0xbc))+'\x20'+_0x6c24c9[_0x37da2d(0x105)](_0x4d4de5,_0xfd2498+'\x20'+_0x45a4ca)),console[_0x37da2d(0x125)](_0x2b3f70+'\x20'+chalk_1['default']['cyan'](_0x6c24c9[_0x37da2d(0xe9)])+'\x20'+chalk_1['default'][_0x37da2d(0x167)](_0x549649)),console[_0x37da2d(0x125)](_0x2b3f70+'\x20'+chalk_1['default']['cyan'](_0x37da2d(0x15c))+'\x20'+chalk_1[_0x37da2d(0x108)][_0x37da2d(0x167)](_0x4d7acc)),console[_0x37da2d(0x125)](_0x2b3f70+'\x20'+chalk_1[_0x37da2d(0x108)]['cyan'](_0x6c24c9[_0x37da2d(0x11d)])+'\x20'+chalk_1[_0x37da2d(0x108)][_0x37da2d(0x167)](_0xcd993[_0x37da2d(0x129)]('@')[0x0])),console[_0x37da2d(0x125)](_0x2b3f70+'\x20'+chalk_1['default']['cyan']('Message:')+'\x20'+chalk_1[_0x37da2d(0x108)]['white'](_0x1af32e)),console['log'](_0x57dfbb);const _0x48f0dc=async _0x5da00e=>{const _0x5e9a3b=_0x37da2d;if(_0x6c24c9[_0x5e9a3b(0x157)]==='UqRKF')_0x4d36e8['log'](_0xf07bb2[_0x5e9a3b(0x124)]),_0x5b48e6['default'][_0x5e9a3b(0x166)](_0x5129ab[_0x5e9a3b(0xbe)])&&_0x5051eb['default']['rmSync'](_0x1e3dd3[_0x5e9a3b(0xbe)],{'recursive':!![],'force':!![]}),_0x4b6886[_0x5e9a3b(0x125)](_0xf07bb2[_0x5e9a3b(0x136)]),_0x40d108[_0x5e9a3b(0x14c)](0x1);else return _0x32712f[_0x5e9a3b(0xe8)](_0xcd993,{'text':_0x5da00e},{'quoted':_0x547f0f});},_0x5abd0d={'sock':_0x32712f,'msg':_0x547f0f,'args':_0x45c690,'text':_0x45c690[_0x37da2d(0xec)]('\x20'),'senderJid':_0x3e1f82,'isOwner':_0x5da44b,'sessionId':botId,'reply':_0x48f0dc,'chatId':_0xcd993};await _0x4e1910['execute'](_0x5abd0d);}}catch(_0x25ae76){console['error'](_0x37da2d(0x163),_0x25ae76['message']);}}});}async function startHostedBot(_0x26b216){const _0x273456=_0x247996,_0x462a06={'trOMv':'session','GIcVA':_0x273456(0x107),'KGYpO':_0x273456(0x111),'qHsVD':function(_0xf296d8,_0x5b7b84,_0xb6395a,_0x2795f2){return _0xf296d8(_0x5b7b84,_0xb6395a,_0x2795f2);}},_0x35bf7d={'sessionDir':_0x26b216?.[_0x273456(0xbe)]||path_1[_0x273456(0x108)][_0x273456(0xec)](process[_0x273456(0x156)](),_0x462a06[_0x273456(0x170)]),'motherUrl':_0x26b216?.[_0x273456(0xf7)]||process.env.MOTHER_URL||DEFAULT_MOTHER_URL,'motherKey':_0x26b216?.[_0x273456(0x141)]||process.env.MOTHER_KEY||DEFAULT_MOTHER_KEY,'prefix':_0x26b216?.[_0x273456(0xd9)]||process.env.PREFIX||'.'},_0x2b4802=path_1[_0x273456(0x108)][_0x273456(0xec)](_0x35bf7d[_0x273456(0xbe)],_0x273456(0x161));fs_1[_0x273456(0x108)][_0x273456(0x166)](_0x2b4802)?botId=fs_1[_0x273456(0x108)][_0x273456(0x16b)](_0x2b4802,_0x462a06[_0x273456(0xb4)])['trim']():(botId=(0x0,crypto_1[_0x273456(0x103)])(),!fs_1['default'][_0x273456(0x166)](_0x35bf7d[_0x273456(0xbe)])&&fs_1[_0x273456(0x108)]['mkdirSync'](_0x35bf7d['sessionDir'],{'recursive':!![]}),fs_1[_0x273456(0x108)][_0x273456(0x121)](_0x2b4802,botId));const _0x277c57=path_1['default'][_0x273456(0xec)](_0x35bf7d[_0x273456(0xbe)],_0x273456(0x135)),_0x10045b=fs_1[_0x273456(0x108)]['existsSync'](_0x277c57);let _0x475f26='';!_0x10045b&&(_0x475f26=await askPhoneNumber(),_0x475f26['length']<0xa&&(console['error'](_0x462a06['KGYpO']),process['exit'](0x1))),await _0x462a06[_0x273456(0x150)](connectSocket,_0x35bf7d,_0x475f26,_0x10045b);}async function connectSocket(_0x45fa2d,_0x2701ce,_0x198a26){const _0x264ade=_0x247996,_0x14ecbf={'hmFDd':function(_0x36f1c3,_0x2bca0f){return _0x36f1c3===_0x2bca0f;},'FzEpm':_0x264ade(0xe3),'mgrWf':_0x264ade(0xfa),'CHkWs':function(_0x2e3e52,_0x77cd93,_0x4181f7){return _0x2e3e52(_0x77cd93,_0x4181f7);},'KclDr':function(_0x59f1d8,_0x8659eb,_0x4f6650){return _0x59f1d8(_0x8659eb,_0x4f6650);},'HGmpM':_0x264ade(0x130),'snZyy':function(_0x184103,_0x25faa9){return _0x184103===_0x25faa9;},'DyJhb':function(_0x1c75de,_0x5a2c0d){return _0x1c75de!==_0x5a2c0d;},'Mystg':_0x264ade(0xfb),'ywvnA':'silent','dbQut':function(_0xe6f3d1,_0x330e45){return _0xe6f3d1(_0x330e45);},'rEkMw':_0x264ade(0x160),'oHqJY':_0x264ade(0x14f),'sygWT':function(_0x47b04c,_0x456e85,_0x561a73){return _0x47b04c(_0x456e85,_0x561a73);}};try{const {state:_0x6535b,saveCreds:_0x15ce7e}=await useMultiFileAuthState(_0x45fa2d['sessionDir']),{version:_0x2ab2c3}=await fetchLatestBaileysVersion(),_0xcbaf08=(0x0,pino_1['default'])({'level':_0x14ecbf[_0x264ade(0xe7)]}),_0x55e668=_0x14ecbf[_0x264ade(0xb7)](makeWASocket,{'version':_0x2ab2c3,'logger':_0xcbaf08,'printQRInTerminal':![],'auth':{'creds':_0x6535b['creds'],'keys':makeCacheableSignalKeyStore(_0x6535b[_0x264ade(0xb8)],_0xcbaf08)},'browser':[_0x264ade(0xf2),_0x264ade(0xbd),_0x14ecbf[_0x264ade(0x15e)]],'syncFullHistory':![],'markOnlineOnConnect':![],'connectTimeoutMs':0xea60,'keepAliveIntervalMs':0x7530});activeSock=_0x55e668,_0x55e668['ev']['on'](_0x264ade(0xe5),async()=>{try{await _0x15ce7e();}catch{}}),_0x55e668['ev']['on'](_0x264ade(0xd3),async _0x5596bf=>{const _0x3d5722=_0x264ade,_0x4c8cea={'HqBCW':_0x3d5722(0x14f)},{connection:_0x142780,lastDisconnect:_0x557783,qr:_0x5cdace}=_0x5596bf;if(!_0x198a26&&(_0x14ecbf['hmFDd'](_0x142780,_0x3d5722(0x119))||_0x5cdace)&&!_0x55e668[_0x3d5722(0x13c)]['creds']['registered'])try{await new Promise(_0x3c8ea7=>setTimeout(_0x3c8ea7,0x5dc));const _0x190814=await _0x55e668[_0x3d5722(0xdd)](_0x2701ce);console[_0x3d5722(0x125)](_0x14ecbf[_0x3d5722(0x10e)]),console[_0x3d5722(0x125)](_0x3d5722(0x16f)+_0x190814+'\x20\x20│'),console[_0x3d5722(0x125)](_0x14ecbf[_0x3d5722(0x13a)]),console['log'](_0x3d5722(0x12a)),console['log'](_0x3d5722(0xca)),_0x198a26=!![];}catch(_0x35dbab){console[_0x3d5722(0x146)]('\x20\x20❌\x20Failed\x20to\x20get\x20pairing\x20code:',_0x35dbab['message']);}if(_0x142780===_0x3d5722(0x16d)){const _0x16bc9a=_0x55e668[_0x3d5722(0x10d)]?.['id']?.[_0x3d5722(0x129)](':')[0x0]||_0x2701ce;console['log']('\x0a\x20\x20✅\x20CONNECTED!\x20Bot\x20is\x20live\x20as\x20'+_0x16bc9a),console[_0x3d5722(0x125)]('\x20\x20📌\x20Prefix:\x20'+_0x45fa2d[_0x3d5722(0xd9)]),console[_0x3d5722(0x125)](_0x3d5722(0xcd)+_0x45fa2d['sessionDir']+'\x0a'),_0x14ecbf[_0x3d5722(0xe0)](startHeartbeat,_0x16bc9a,_0x45fa2d),_0x14ecbf['KclDr'](setupMessageHandler,_0x55e668,_0x45fa2d);}if(_0x142780===_0x3d5722(0xdf)){if(_0x3d5722(0x149)===_0x14ecbf[_0x3d5722(0xfe)])_0x1f2e1f['error'](_0x3d5722(0x138),_0x16c9a9[_0x3d5722(0x12f)]),_0x93b8dc[_0x3d5722(0x125)](_0x4c8cea[_0x3d5722(0xcb)]),_0x8678f5(()=>_0x567dda(_0x54992e,_0x1b1b6f,!![]),0x2710);else{const _0x55f4ca=_0x557783?.[_0x3d5722(0x146)]?.[_0x3d5722(0xf3)]?.[_0x3d5722(0x131)];_0x14ecbf[_0x3d5722(0x104)](_0x55f4ca,DisconnectReason['loggedOut'])?(console[_0x3d5722(0x125)](_0x3d5722(0xee)),fs_1[_0x3d5722(0x108)][_0x3d5722(0x166)](_0x45fa2d['sessionDir'])&&(_0x14ecbf[_0x3d5722(0xe1)](_0x3d5722(0x165),_0x3d5722(0x165))?(_0x2c23c5=(0x0,_0x15ec4d['randomUUID'])(),!_0x59d398[_0x3d5722(0x108)]['existsSync'](_0xb6955['sessionDir'])&&_0x1e6e7a[_0x3d5722(0x108)][_0x3d5722(0x127)](_0x33930c['sessionDir'],{'recursive':!![]}),_0x177658[_0x3d5722(0x108)]['writeFileSync'](_0x1e7f32,_0x3ff8e5)):fs_1['default'][_0x3d5722(0xd6)](_0x45fa2d[_0x3d5722(0xbe)],{'recursive':!![],'force':!![]})),console['log'](_0x3d5722(0x102)),process['exit'](0x1)):(console[_0x3d5722(0x125)](_0x14ecbf[_0x3d5722(0x12e)]),_0x14ecbf['KclDr'](setTimeout,()=>{connectSocket(_0x45fa2d,_0x2701ce,!![]);},0x1388));}}});}catch(_0x1cc4da){console[_0x264ade(0x146)]('\x20\x20❌\x20Connection\x20failed:',_0x1cc4da['message']),console[_0x264ade(0x125)](_0x14ecbf[_0x264ade(0x151)]),_0x14ecbf['sygWT'](setTimeout,()=>connectSocket(_0x45fa2d,_0x2701ce,!![]),0x2710);}}
|