♣𝐓𝐄𝐂𝐇 𝐇𝐈𝐍𝐔𝐆𝐄𝐑𝐀 ᵇʸ ˡⁱᵐᵘˡᵉ🌐Code&Free🟢
177 subscribers
47 photos
23 videos
88 files
66 links
**亗ᵀʰᵉᘜㄖᗪ ㄒ乇匚卄۞🇷 🇦 🇵 🇭 🇦 🇪 🇱**
https://whatsapp.com/channel/0029VajBry5FnSzAqZxMhi1i
Download Telegram
Connaissez vous Kali Linux ??
Anonymous Poll
68%
Oui
32%
Non
CRICFy_v5.6_.apk
21.3 MB
CANAL+ Sport GRATUIT sur Android !

Comment profiter de l'application :
1. Installez et ouvrez l'application.
2. Découvrez les événements sportifs en direct ou à venir, sélectionnez et choisissez un serveur de diffusion.
3. Profitez de tous les contenus CANAL+ Sport et bien plus sur votre smartphone !
4. Ajustez la qualité vidéo en fonction de votre connexion via l'icône ⚙ pendant la lecture.

t.me/scriptbothinugera
Example of main entry points for a WhatsApp bot with pairing code

By @DevCode237 :
import makeWASocket, {
useMultiFileAuthState,
DisconnectReason,
fetchLatestBaileysVersion,
Browsers,
makeInMemoryStore
} from '@whiskeysockets/baileys';
import pino from 'pino';
import { Boom } from '@hapi/boom';
import { getMenu } from './lib/menu.mjs';
import config from './config.mjs';
import readline from 'readline';
import fs from 'fs/promises';
import path from 'path';
import { performance } from 'node:perf_hooks'; // ← pour performance.now()

const logger = pino({ level: 'silent' });
const store = makeInMemoryStore({ logger });

// Fichier persistant pour les chats
const CHATS_FILE = path.join(process.cwd(), 'chats.json');

let chatsMap = new Map();

async function loadChats() {
try {
const data = await fs.readFile(CHATS_FILE, 'utf-8');
const chatsArray = JSON.parse(data);
chatsMap = new Map(chatsArray.map(chat => [chat.id, chat]));
console.log(`Chats chargés : ${chatsMap.size}`);
} catch (err) {
if (err.code !== 'ENOENT') console.error('Erreur chargement chats.json:', err);
chatsMap = new Map();
}
}

async function saveChats() {
try {
const chatsArray = Array.from(chatsMap.values());
await fs.writeFile(CHATS_FILE, JSON.stringify(chatsArray, null, 2));
} catch (err) {
console.error('Erreur sauvegarde chats.json:', err);
}
}

const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
const question = text => new Promise(resolve => rl.question(text, resolve));

async function connect() {
await loadChats();

const { state, saveCreds } = await useMultiFileAuthState('./session_limule');
const { version } = await fetchLatestBaileysVersion();

const sock = makeWASocket({
version,
logger,
printQRInTerminal: false,
auth: state,
browser: Browsers.macOS('Chrome'),
syncFullHistory: false
});

store.bind(sock.ev);

// Mise à jour persistante des chats
sock.ev.on('chats.upsert', chats => {
chats.forEach(chat => chatsMap.set(chat.id, chat));
saveChats();
});

sock.ev.on('chats.update', updates => {
updates.forEach(update => {
const existing = chatsMap.get(update.id);
if (existing) Object.assign(existing, update);
});
saveChats();
});

sock.ev.on('chats.delete', ids => {
ids.forEach(id => chatsMap.delete(id));
saveChats();
});

sock.ev.on('creds.update', saveCreds);

sock.ev.on('connection.update', async update => {
const { connection, lastDisconnect } = update;

if (connection === 'close') {
const reason = new Boom(lastDisconnect?.error)?.output?.statusCode;
if (reason !== DisconnectReason.loggedOut) connect();
else console.log('Déconnexion (logged out)');
} else if (connection === 'open') {
console.log('Limule-Bot connecté ✅');
}

if (!sock.authState.creds.registered) {
const phone = await question('Entre ton numéro WhatsApp (ex: 23769xxxxxxxx) : ');
const code = await sock.requestPairingCode(phone.trim());
console.log(`Code de pairing : ${code}`);
}
});

sock.ev.on('messages.upsert', async ({ messages }) => {
const m = messages[0];
if (!m.message) return;

const from = m.key.remoteJid;
const sender = m.key.participant || from;
const isOwner = sender.replace(/\D/g, '') === config.ownerNumber;

// Extraction texte (caption incluse)
let text = m.message.conversation ||
m.message.extendedTextMessage?.text ||
m.message.imageMessage?.caption ||
m.message.videoMessage?.caption ||
'';

text = text.trim();
if (!text.startsWith(config.prefix)) return;

const args = text.slice(config.prefix.length).trim().split(/ +/);
const command = args.shift()?.toLowerCase();
if (!command) return;

const commands = {
async ping() {
const start = performance.now();
await sock.sendMessage(from, { text: '🏓 Pong !' });
const latency = (performance.now() - start).toFixed(2);

await sock.sendMessage(from, {
text: `Pong ! Latency: *${latency} ms* ${latency < 150 ? '⚡' : latency < 300 ? '🚀' : '🐢'}`
});
},

async uptime() {
const up = process.uptime();
const h = Math.floor(up / 3600).toString().padStart(2, '0');
const m = Math.floor((up % 3600) / 60).toString().padStart(2, '0');
const s = Math.floor(up % 60).toString().padStart(2, '0');
await sock.sendMessage(from, { text: `⏳ *Uptime* : ${h}h ${m}m ${s}s` });
},

async menu() {
const menuMsg = await getMenu(from, m.pushName || 'Toi');
await sock.relayMessage(from, menuMsg.message, { messageId: m.key.id });
},
help: 'menu',

async cmds() {
const cmdList = [
'🏓 !ping — Test de latence',
'⏳ !uptime — Temps d\'activité',
'📜 !menu / !help — Menu principal',
'📋 !cmds — Cette liste',
'🖼️ !sticker — Image/vidéo → sticker',
'🖼️ !toimg — Sticker → image',
'📢 !bc <texte> — Diffusion (owner only)',
'🔒 !self — Mode privé (owner only)',
'🔗 !channel — Lien de la chaîne'
].join('\n');

await sock.sendMessage(from, {
text: `┏━━━ *Commandes disponibles* ━━━┓\n\n\( {cmdList}\n\n┗━━━━━━━━━━━━━━━━━━━━━┛\n \){config.footer}`
});
},

async sticker() {
const quoted = m.message.extendedTextMessage?.contextInfo?.quotedMessage ||
m.message.imageMessage || m.message.videoMessage;

if (!quoted || (!quoted.imageMessage && !quoted.videoMessage && !quoted.stickerMessage)) {
return sock.sendMessage(from, { text: '❌ Réponds à une image, vidéo ou sticker !' });
}

try {
const buffer = await sock.downloadMediaMessage(quoted);
await sock.sendMessage(from, { sticker: buffer });
await sock.sendMessage(from, { react: { text: '✅', key: m.key } });
} catch (err) {
console.error('Sticker error:', err);
await sock.sendMessage(from, { text: '❌ Échec création sticker' });
}
},

async toimg() {
const quoted = m.message.extendedTextMessage?.contextInfo?.quotedMessage;
if (!quoted?.stickerMessage) {
return sock.sendMessage(from, { text: '❌ Réponds à un sticker !' });
}

try {
const buffer = await sock.downloadMediaMessage(quoted);
await sock.sendMessage(from, { image: buffer, caption: 'Sticker → Image' });
await sock.sendMessage(from, { react: { text: '🖼️', key: m.key } });
} catch (err) {
console.error('Toimg error:', err);
await sock.sendMessage(from, { text: '❌ Échec conversion' });
}
},

async bc() {
if (!isOwner) return sock.sendMessage(from, { text: '⛔ Owner only' });

const broadcastText = args.join(' ') || '(test broadcast)';
let success = 0, failed = 0;

for (const [jid] of chatsMap) {
if (jid === 'status@broadcast' || jid === from) continue;

try {
await sock.sendMessage(jid, {
text: `📢 Broadcast :\n\n\( {broadcastText}\n\n \){config.footer}`
});
success++;
} catch (err) {
failed++;
console.error(`Échec BC → ${jid}:`, err.message);
}
}

await sock.sendMessage(from, {
text: `📊 *Broadcast terminé*\n\n✅ Réussis : ${success}\n❌ Échecs : ${failed}\nTotal : ${success + failed}`
});
},

async self() {
if (!isOwner) return sock.sendMessage(from, { text: '⛔ Owner only' });
await sock.sendMessage(from, { text: '🔒 Mode self activé (placeholder – à développer)' });
},

async channel() {
await sock.sendMessage(from, {
text: `🌟 *Rejoins la chaîne officielle !*\n\n→ \( {config.channelLink}\n\n \){config.footer}`
});
}
};

try {
const handler = commands[command];

if (handler) {
if (typeof handler === 'string') return await commands[handler]();
await handler();
} else {
await sock.sendMessage(from, { react: { text: '❓', key: m.key } });
}
} catch (err) {
console.error(`Erreur commande ${command}:`, err);
await sock.sendMessage(from, { text: `😓 Erreur avec *${command}* — réessaie plus tard` });
}
});

setInterval(saveChats, 10 * 60 * 1000); // Sauvegarde toutes les 10 min
}

connect().catch(err => {
console.error('Erreur fatale:', err);
process.exit(1);
});
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ▇ █ ɴᴇxᴜs🌐ʟᴀʙs █ ▇ (—͟͞͞𝐒𝐤𝐲𝐥𝐞𝐫🥀꧁⁣🌀𓆩Limule𓆪🌀꧂ 𝐇𝐨𝐬𝐡𝐢𝐧𝐨)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ▇ █ ɴᴇxᴜs🌐ʟᴀʙs █ ▇ (—͟͞͞𝐒𝐤𝐲𝐥𝐞𝐫🥀꧁⁣🌀𓆩Limule𓆪🌀꧂ 𝐇𝐨𝐬𝐡𝐢𝐧𝐨)
🟢Green
The bot's profile picture
If you have any projects, I'm all ears.
NEXUS Labs est une start-up spécialisée dans le développement logiciel et l'automatisation intelligente. Notre mission est de transformer les défis technologiques en opportunités de croissance.

Avec une expertise pointue en développement d'applications, création de bots multi-plateformes et architecture logicielle, nous accompagnons les entreprises dans leur transformation digitale.

Notre approche combine innovation technique, agilité et focus sur les résultats pour livrer des solutions qui dépassent les attentes.