BotStrike
BotStrike · BSJS
🌙

⚡ 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 :

⚡ Important — Dans l'application BotStrike, les commandes JavaScript sont créées comme fichiers .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.

📁 Exemple — commands/start.js → commande /start, commands/help.js → commande /help

Variables globales (dans chaque .js)

VariableTypeDescription
BotBotInstanceInstance du bot — toutes les méthodes (auto-context chat_id)
userobjectInfo utilisateur : user.id, user.nom, user.first_name
chatobjectObjet chat : chat.id
chat_idnumberID du chat actuel
messagestringTexte du message entrant
paramsstringTexte après la commande (/cmd texte → "texte")
ApiProxyAppels directs à l'API Telegram
PropsPropsProxyStockage persistant (500 KB)
requestobjectUpdate Telegram brut
optionsobjectDonnées passées via Bot.run()

Contenu de user :

PropriétéDescription
user.idID Telegram
user.nomNom complet
user.first_namePrénom
user.last_nameNom de famille
user.username@username
user.texteTexte du message
user.chat_idID du chat
user.message_idID du message
user.language_codeCode 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 :

OptionDescription
delete_after: NSupprime le message après N secondes
silent: trueEnvoie 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" },
]);
💡 Alternative — Bot.sendInlineKeyboard(buttons, text) est aussi disponible (ordre inversé).

Envoie un reply keyboard (menu persistant en bas de l'écran).

Bot.sendMenu("Menu principal :", [
  ["📊 Stats", "⚙️ Paramètres"],
  ["❓ Aide"]
]);

Photos, Vidéos, Documents

MéthodeDescription
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ètreDescription
commandNom de la commande à exécuter ("/contact")
run_afterDélai en secondes (0 = immédiat)
optionsDonné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éthodeDescription
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");
💡 Accès direct — Vous pouvez aussi utiliser 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.

📖 Documentation complète — Configuration, réactions, attente de réponse, variables, exemples…
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);
💡 Dans l'app BotStrike — Les callbacks sont configurés automatiquement via l'interface de configuration des commandes.

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
});
📖 Référence — Toutes les méthodes sur core.telegram.org/bots/api →