⚡ BSJS — moteur JS
API JavaScript pour programmer vos bots Telegram dans BotStrike — Chaque commande = un fichier .js, zéro import
Introduction
moteur JS est le API JavaScript de BotStrike. Le chat_id est automatique :
- Chaque commande dans un fichier
.jsséparé (start.js, help.js…) - Zéro import / require —
Bot,Api,Propssont injectés globalement Bot.sendMessage(text)envoie auto au chat actuel (pas besoin de passer chat_id)
.js. Le token du bot est configuré séparément dans l'onglet Config.
Structure des fichiers
Chaque commande est un fichier .js dans le dossier commands/. Le API moteur JS charge automatiquement tous les fichiers.
commands/start.js → commande /start, commands/help.js → commande /help
Variables globales (dans chaque .js)
| Variable | Type | Description |
|---|---|---|
Bot | BotInstance | Instance du bot — toutes les méthodes (auto-context chat_id) |
user | object | Info utilisateur : user.id, user.nom, user.first_name |
chat | object | Objet chat : chat.id |
chat_id | number | ID du chat actuel |
message | string | Texte du message entrant |
params | string | Texte après la commande (/cmd texte → "texte") |
Api | Proxy | Appels directs à l'API Telegram |
Props | PropsProxy | Stockage persistant (500 KB) |
request | object | Update Telegram brut |
options | object | Données passées via Bot.run() |
Contenu de user :
| Propriété | Description |
|---|---|
user.id | ID Telegram |
user.nom | Nom complet |
user.first_name | Prénom |
user.last_name | Nom de famille |
user.username | @username |
user.texte | Texte du message |
user.chat_id | ID du chat |
user.message_id | ID du message |
user.language_code | Code langue |
Envoi de messages
Bot.sendMessage(text)
Envoie un message texte au chat actuel (chat_id automatique). Formatage HTML activé.
// start.js — Commande /start Bot.sendMessage("Bienvenue <b>" + user.nom + "</b> ! 👋");
Suppression automatique (delete_after)
Passez un objet en second paramètre avec delete_after pour supprimer le message après N secondes :
// Le message disparaît après 5 secondes Bot.sendMessage("Ce message va disparaître... 👻", { delete_after: 5 });
Options d'envoi
Toutes les méthodes d'envoi acceptent un objet d'options :
| Option | Description |
|---|---|
delete_after: N | Supprime le message après N secondes |
silent: true | Envoie sans notification |
pin: true | Épingle le message |
pin_silent: true | Épingle sans message système |
// Exemple combiné Bot.sendMessage("📌 Annonce", { pin: true, silent: true });
Bot.sendButtons(text, buttons)
Envoie un clavier inline. Format des boutons : title + command (callback), data, ou url.
Bot.sendButtons("Choisissez une option :", [ { title: "📦 Catalogue", command: "/catalogue" }, { title: "📞 Contact", data: "contact" }, { title: "🔗 Site web", url: "https://exemple.com" }, ]);
Bot.sendInlineKeyboard(buttons, text) est aussi disponible (ordre inversé).
Bot.sendMenu(text, options)
Envoie un reply keyboard (menu persistant en bas de l'écran).
Bot.sendMenu("Menu principal :", [ ["📊 Stats", "⚙️ Paramètres"], ["❓ Aide"] ]);
Photos, Vidéos, Documents
| Méthode | Description |
|---|---|
Bot.sendPhoto(photo, caption) | Envoyer une photo (URL ou file_id) |
Bot.sendVideo(video, caption) | Envoyer une vidéo |
Bot.sendDocument(document, caption) | Envoyer un document |
Bot.sendPhoto("https://exemple.com/produit.jpg", "<b>Notre produit</b>");
Actions
Bot.action({ type, wait })
Affiche un indicateur (typing…) et attend X secondes.
// Afficher "en train d'écrire…" pendant 2 secondes Bot.action({ type: "typing", wait: 2 });
Bot.run({ command, run_after, options }) — runCommand
Exécute une autre commande, immédiatement ou après un délai. C'est l'équivalent de runCommand dans BotStrike.
| Paramètre | Description |
|---|---|
command | Nom de la commande à exécuter ("/contact") |
run_after | Délai en secondes (0 = immédiat) |
options | Données à passer à la commande cible |
// Exécuter /balance après 1 heure Bot.run({ command: "/balance", run_after: 60 * 60, // 3600 sec options: { amount: 5 } });
// Dans balance.js — récupérer les options passées Bot.sendMessage("Montant : " + options.amount);
Stockage (Props)
Stockez des données persistantes par bot. Limite a quelque capaciter .
| Méthode | Description |
|---|---|
Props.set(key, value) | Sauvegarder une donnée |
Props.get(key) | Récupérer une donnée |
Props.delete(key) | Supprimer une donnée |
Props.storage() | Usage → { used: X, remaining: Y } (KB) |
// Enregistrer le solde d'un utilisateur Props.set("balance_" + user.id, 100); // Le récupérer let balance = Props.get("balance_" + user.id); Bot.sendMessage("💰 Solde : " + balance); // Vérifier l'espace let info = Props.storage(); Bot.sendMessage("Utilisé : " + info.used + " KB / restant : " + info.remaining + " KB");
Bot.setProperty(key, value), Bot.getProperty(key), Bot.deleteProperty(key) directement sur le bot.
Commandes
Chaque commande est un fichier .js dans le dossier commands/. Le nom du fichier = le nom de la commande.
Voir la documentation Commandes BSJS →
Commande Master (*)
Le fichier _.js (underscore) capture tous les messages qui ne correspondent à aucune commande.
// _.js — commande master (capture tout) Bot.sendMessage("Vous avez dit : " + message);
Callbacks (boutons inline)
Quand un utilisateur clique sur un bouton inline avec command ou data, le callback correspondant est déclenché.
// Enregistrer un callback Bot.registerCallback("catalogue", maFonction);
Api — Appels Telegram directs
L'objet Api est un Proxy ES6 qui permet d'appeler n'importe quelle méthode de l'API Telegram directement.
// Envoyer un message avec options avancées Api.sendMessage({ chat_id: chat_id, text: "<b>Message formaté</b>", parse_mode: "HTML", disable_notification: true });
Api.sendPhoto
// Envoyer une photo avec légende Api.sendPhoto({ chat_id: chat_id, photo: "https://exemple.com/img.jpg", caption: "<b>Légende en HTML</b>", parse_mode: "HTML" });
Api.sendVideo
// Envoyer une vidéo Api.sendVideo({ chat_id: chat_id, video: "https://exemple.com/video.mp4", caption: "Ma vidéo", parse_mode: "HTML" });
Api.sendDocument
// Envoyer un document / fichier Api.sendDocument({ chat_id: chat_id, document: "https://exemple.com/fichier.pdf", caption: "Votre fichier 📎", parse_mode: "HTML" });
Api.editMessageText
// Modifier un message existant Api.editMessageText({ chat_id: chat_id, message_id: user.message_id, text: "Texte mis à jour ✅" });
Api.deleteMessage
// Supprimer un message Api.deleteMessage({ chat_id: chat_id, message_id: user.message_id });