Si has montado tu servidor Matrix, probablemente quieras tener publicaciones automatizadas de algunos de tus scripts, proyectos, etcétera…
He encontrado un repositorio en Github dónde hay publicado un script en bash llamado matrix.sh, que permite hacer esto de un modo sencillo y además utiliza la sintaxis html para enriquecer el texto.
Descargamos el script del repositorio de GitHub. Hay otro repositorio por si se elimina el proyecto original.
Tenemos que instalar las dependencias curl
y jq
En Ubuntu, Debian , ...
A mi personalmente me gusta instalar los scripts en el sistema. De esta manera, no tengo que recordar donde están.
Vamos a crear un enlace simbólico para que cuando escriba en la terminal matrix
, se ejecute el script.
La ruta del Home es la perteneciente a mi máquina. Tu tienes que especificar la ruta donde está tu script
Vamos a crear un nuevo usuario en nuestro servidor, que será el que utilizaremos para el bot.
Nos logeamos con:
El token quedará guardado en ~/.matrix.sh
. Si ya existe, se sobrescribirá. Dado que el contenido de este archivo permite acceder a tu servidor doméstico, debe mantener su contenido en secreto. Por tanto, se creará con el modo de acceso 600.
El inicio de sesión también establece un nombre para el dispositivo que estas utilizando para conectarse. Por defecto, esto es <user>@<host> using matrix.sh
, pero puede establecer otro nombre usando el =–identifier=opción:
He visto que el comando hostname
no está disponible en Manjaro. La verdad es que no he encontrado a que paquete pertenece.
Así que lo he solucionado de una forma cutre pero que funciona.
Crea un script con el siguiente contenido:
mkdir ~/hostname ; nano ~/hostname/hostname
Ahora pega:
#!/bin/bash
cat /etc/hostname
Ahora crearemos un enlace sibólico al script:
sudo ln -s ~/hostname/hostname /usr/bin/hostname
Cuando ejecutemos el comando hostname, hará un cat de la ruta /etc/hostname
, que es el nombre de hostname.
Con nuestro usuario, podemos agregar el bot a una sala, pero el bot tiene que aceptar formar parte de ella. Vamos a aceptar estar dentro de la sala.
Listamos salas a donde esté nuestro bot.
Nos unimos a una de estas salas. Seguimos el menú para unirnos.
Recuerda que tanto el Token como los ID de las salas, quedará en el archivo de configuración ~/.matrix.sh
La estructura del archivo, quedaría así:
MATRIX_TOKEN="fsTYVEYSHnu73490765623sIM"
MATRIX_HOMESERVER="https://matrix.midominio.duckdns.org"
MATRIX_USER="@usuario:matrix.midominio.duckdns.org"
MATRIX_ROOM_ID="!Rt2JHO&85GJKIpT1K:matrix.midominio.duckdns.org"
Puedes seleccionar una sala predeterminada que se utilizará si no proporciona una room_id en tiempo de ejecución.
Mostrará todas las salas unidas, así como las salas a las que estas invitado. Seleccionar uno de estos últimos también aceptará la invitación y se unirá a esa sala.
También puedes utilizar este script sin iniciar sesión primero. Si tienes acceso a un token, puedes usarlo así:
Como he instalado el script en mi sistema, ahora para ejecutarlo solo tendré que introducir el comando matrix
También podemos utilizar la opción --send
, aunque no es necesario introducirla:
Para que habilite la sintaxis html, introduciremos la opción --html
Esto se pone interesante. Con echo, podemos enviar el mensaje a matrix y podemos no solo escribir un texto, sino que mostrar el valor de una variable:
Si estuviéramos dentro del directorio donde está el script, lo haríamos así:
Podemos utilizar --pre
para enviar mensajes formateados como código. Esto también se escapará Etiquetas HTML.
Listamos el contenido de un directorio:
Ejecutando el script sin instalar:
## Enviar archivos
Para enviar un archivo, es tan sencillo como:
Además use --audio
, =-image=o =–video=para enviar archivos como audio, imágenes o video, respectivamente:
## Enviar a otra sala
Puedes utilizar --room=<room_id>
para proporcionar un room_id. Esto reemplaza la sala predeterminada.
A bash no le gustan los signos de exclamación en cadenas entre comillas dobles. Es recomendable utilizar comillas simples para la identificación la sala.
## Otras acciones
--help
Muestra todos los comandos y opciones disponibles.--join-room
Se une a una habitación. Se le pedirá la identificación de la habitación.--invite-user
Invita a un usuario a la sala predeterminada o la proporcionada por --room
. Se le pedirá la identificación de usuario.--leave-room
Deja una sala. Se le preguntará qué sala dejar.## Fuentes
Publicado por Angel el Wednesday 26 January del 2022 y actualizado el Monday 06 February del 2023
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.