Aller au contenu

Bouton

Un élément du menu Telegram sur lequel vous pouvez appuyer. Un bouton possède un name et exécute une fonction sur votre serveur, puis renvoie le résultat dans la conversation.

Les boutons et les catégories forment l’arborescence du menu sous la clé menu de votre fichier de configuration. Un bouton effectue le travail ; une catégorie ouvre seulement un sous-menu.

Apparence d’un bouton

Les boutons apparaissent sur le clavier sous la zone de message, deux par ligne par défaut. Le nom choisi est le texte de la touche : gardez-le assez court pour un téléphone. Consultez Menu → Apparence du menu Telegram.

Éléments d’un bouton

Chaque ligne contrôle une partie du bouton

Un bouton entièrement décrit
- name: Restart nginx # (1)!
  type: button # (2)!
  icon: "🔄" # (3)!
  function: command # (4)!
  command: "systemctl restart nginx" # (5)!
  confirm: true # (6)!
  1. Texte de la touche dans Telegram, unique parmi les éléments voisins.
  2. Toujours button. Utilisez category pour un sous-menu.
  3. Emoji facultatif affiché avant le nom, sans effet sur l’exécution.
  4. Fonction utilisée. command exécute une commande shell.
  5. Ce que la fonction command exécute.
  6. Facultatif. Demande « Êtes-vous sûr ? » avant l’exécution. Omettez ce champ pour les actions qui ne font que lire des informations.

Que se passe-t-il après un appui ?

  1. Le bot publie une courte ligne Running pour indiquer le démarrage.
  2. La commande s’exécute sur la machine où tourne le bot.
  3. La sortie revient sous forme de bloc de code, avec le code de sortie et la durée. Une sortie courte reste dans la conversation en un ou plusieurs messages ; une sortie plus longue peut arriver en fichier .txt (voir Longs résultats en fichier).
  4. Vous restez dans le même menu ; Retour quitte donc toujours la catégorie.

Boutons courants

Bouton Uptime
- name: Uptime
  type: button
  function: command
  command: "uptime"
Bouton de redémarrage de nginx
- name: Restart nginx
  type: button
  icon: "🔄"
  function: command
  command: "systemctl restart nginx"
Bouton du journal Nginx
- name: Nginx log
  type: button
  function: command
  command: "journalctl -u nginx -n 50 --no-pager"
Bouton de sauvegarde nocturne
- name: Nightly backup
  type: button
  function: script
  path: "/usr/local/bin/backup.sh"
Bouton d’arrêt de nginx
- name: Stop nginx
  type: button
  icon: "🛑"
  function: command
  command: "systemctl stop nginx"
  confirm: true

Icônes

icon place un emoji devant le nom. Ce choix est uniquement visuel et peut être modifié sans toucher à l’action du bouton.

Une icône modifie seulement le libellé

Le même bouton avec et sans icône
- name: Disk usage
  type: button
  function: command
  command: "df -h"

- name: Disk usage
  type: button
  icon: "💾"
  function: command
  command: "df -h"

Demander avant une action risquée

Ajoutez confirm: true pour que le bot propose Oui ou Annuler. Utilisez-le pour arrêter un service, supprimer des données ou redémarrer la machine. La demande expire après cinq minutes par défaut.

Consultez Confirmation pour les cas d’utilisation et le réglage du délai.

Réglages propres à un bouton

La plupart des réglages globaux peuvent être remplacés sur un bouton :

Remplacer les réglages d’une tâche lente

Une tâche lente exécutée ailleurs
- name: Long backup
  type: button
  function: command
  command: "/usr/local/bin/backup.sh"
  timeout: "10m"
  workdir: "/var/backups"
  env:
    BACKUP_MODE: "full"

timeout accorde plus de temps à cette commande, workdir choisit son dossier et env ajoute ses variables d’environnement.

Longs résultats en fichier

Vous n’avez pas besoin de output sur un bouton. Si vous l’omettez, le bouton prend le réglage racine (auto sauf si vous l’avez changé) : un résultat court reste en messages de chat, et un résultat qui dépasserait deux messages arrive en un fichier .txt. N’écrivez output sur un bouton que si ce bouton doit toujours envoyer un fichier ou rester en texte. max_output_messages ne se règle pas sur un bouton.

Mettez output: file sur un bouton qui imprime beaucoup (journaux, par exemple), ou output: text pour garder l’ancien découpage uniquement sur ce bouton.

Les clés racine output et max_output_messages sont documentées sous Configuration → Quantité de sortie affichée. Contrôler la sortie parcourt chaque combinaison racine et bouton, avec un exemple à chaque fois.

Valeurs de la fonction

Écrivez les valeurs directement sur le bouton. command, path et args sont des raccourcis pour les paramètres de même nom. Les noms personnalisés comme url, host, unit et lines fonctionnent de la même manière.

Transmettre des valeurs personnalisées

Journaux Nginx récents
- name: Nginx logs
  type: button
  function: journal-unit
  unit: "nginx.service"
  lines: 100

Ne placez pas ces valeurs dans params:. Chaque clé doit correspondre à un paramètre déclaré par la fonction. validate signale les noms inconnus, les valeurs obligatoires manquantes et les valeurs int ou bool non valides.

Configuration

Pour tous les champs acceptés, consultez Configuration → Menu.

Pages associées

  • Catégorie


    Ouvre un sous-menu au lieu d’exécuter une action.

    Catégorie

  • Fonction


    Ce qui s’exécute après un appui.

    Fonction

  • Paramètre


    Une valeur nécessaire à une fonction.

    Paramètre

  • Menu


    Organisez toute l’arborescence.

    Menu

  • Contrôler la sortie


    Messages ou fichier .txt, et comment un bouton remplace la racine.

    Contrôler la sortie