Botón¶
Un elemento que se puede tocar en el menú de Telegram. Tiene un name y, al
tocarlo, ejecuta una función en el servidor y devuelve el
resultado al chat.
Los botones y las categorías forman el árbol del menú
bajo la clave raíz menu del
archivo de configuración. Un botón realiza una acción; una
categoría solo abre un submenú.
Aspecto de un botón¶
Los botones aparecen en el teclado bajo el cuadro de mensajes, dos por fila de forma predeterminada. El nombre que elija será el texto de la tecla, así que procure que sea suficientemente breve para leerlo en un teléfono. Consulte Menú → Aspecto del menú.
Partes de un botón¶
Cada línea controla una parte del botón
- name: Restart nginx # (1)!
type: button # (2)!
icon: "🔄" # (3)!
function: command # (4)!
command: "systemctl restart nginx" # (5)!
confirm: true # (6)!
- El texto de la tecla en Telegram. Debe ser único entre los elementos vecinos del mismo menú.
- Aquí siempre se usa
button. Usecategorysi quiere un submenú. - Emoji opcional que aparece antes del nombre. Es solo decorativo y no cambia lo que se ejecuta.
- La función que se usará.
commandes la función integrada que ejecuta un comando de shell. - Lo que ejecuta la función
command. Puede escribir aquí cualquier comando válido en una terminal. - Es opcional. Pregunta «¿Está seguro?» antes de ejecutar. Omítalo para acciones que solo consultan información.
Qué ocurre al tocarlo¶
- El bot publica una breve línea Running para indicar que ha empezado.
- El comando se ejecuta en la máquina donde funciona el bot.
- La salida vuelve como bloque de código, con el código de salida y la
duración. Una salida corta se queda en el chat como uno o varios mensajes;
una salida más larga puede llegar como archivo
.txt(consulte Resultados largos como archivo). - Usted permanece en el mismo menú, por lo que Atrás sigue saliendo de esa categoría.
Botones habituales¶
Iconos¶
icon antepone un emoji al nombre. Es solo decorativo y se puede cambiar sin
alterar lo que ejecuta el botón.
Un icono solo cambia la etiqueta
Preguntar antes de acciones peligrosas¶
Añada confirm: true y el bot mostrará primero Sí o Cancelar. Úselo para
cualquier acción que detenga un servicio, elimine datos o reinicie la máquina.
La pregunta caduca tras un tiempo, cinco minutos de forma predeterminada.
Lea Confirmación para saber cuándo usarla y cambiar la espera.
Ajustes exclusivos de un botón¶
La mayoría de los ajustes globales se pueden sustituir en un solo botón, lo que resulta útil cuando una tarea se comporta de forma distinta a las demás:
Sustituir ajustes para una tarea lenta
timeout concede más tiempo a este comando, workdir elige el directorio
donde se ejecuta y env añade variables de entorno solo para él.
Resultados largos como archivo¶
No hace falta output en un botón. Si lo omite, el botón usa el ajuste de la
raíz (auto salvo que lo haya cambiado): un resultado corto se queda como
mensajes de chat, y uno que necesitaría más de dos mensajes llega como un
archivo .txt. Ponga output solo cuando ese botón deba enviar siempre un
archivo o quedarse siempre en texto. max_output_messages no se puede poner
en un botón.
Ponga output: file en un botón que siempre imprime mucho (por ejemplo
registros), u output: text para conservar el comportamiento antiguo solo en ese
botón.
Las claves raíz output y max_output_messages están documentadas en
Configuración → Cuánta salida de comando verá.
Controlar la salida recorre todas las combinaciones de
raíz y botón con un ejemplo cada una.
Valores para la función¶
Escriba los valores de la función directamente en el botón. command, path
y args son atajos para parámetros del mismo nombre. Los nombres
personalizados, como url, host, unit y lines, funcionan igual.
Pasar valores personalizados
No coloque estos valores dentro de un mapa params:. Cada clave debe coincidir
con un parámetro declarado por la función seleccionada.
validate detecta nombres desconocidos, valores
obligatorios ausentes y valores int o bool inválidos.
Configuración¶
Para todos los campos admitidos, consulte Configuración → Menú.
Relacionado¶
-
Categoría
Abre un submenú en vez de ejecutar algo.
-
Función
Lo que se ejecuta al tocar un botón.
-
Parámetro
Valores que necesita una función y que proporciona el botón.
-
Menú
Cree y organice todo el árbol.
-
Controlar la salida
Mensajes o un archivo
.txt, y cómo un botón sustituye a la raíz.