Estos días con el #findenegro estuvimos dándole bastante rato al mumble, poniendo música, incluso algunos usamos un cable para conectar la entrada del micrófono a la salida de altavoces para poner música sin meter ruido de acoples. Fue entonces cuando a nuestro querido Drymer se le debió ocurrir la idea de montar un bot en mumble. Sabíamos que ya existen varios bots, radiobot es uno de ellos, pero como siempre la curiosidad debió llevar a Drymer hasta mumble-ruby. Unas librerías escritas en ruby para manejar un objeto cliente de mumble disponibles en github https://github.com/perrym5/mumble-ruby Me enseñó la api e hizo sus pruebas, un script que se conectaba y hacía el streaming del mpd. Fue entonces cuando despertó mi curiosidad también. Así que en un par de tardes y con nuestro método de trabajo por xmpp nos pusimos a darle más brío al tema para sacar este bot.
A tener en cuenta: ninguno de los dos habíamos programado en ruby anteriormente, si bien es un lenguaje parecido a python y eso anima.
Para bajar el proyecto desde gitorius:
git clone git@gitorious.org:eve/eve.git
Como se usa:
./eve.rb --name namebot --owner dueño --server elbinario.net --port 60601 --channel canal --key password
Como se maneja desde el chat:
La ayuda:
Escribir !help en el mismo canal donde este el bot y verás esta ayuda:
!play – Play música
!current – Canción actual
!stop – Stop música
!next – Siguiente canción
!quit – Desconectar y salir
Esperamos completar el TODO e iremos puliendo el proyecto. Por su puesto aceptamos sugerencias, colaboraciones y reportes de errores para futuros fix.
Configuración
Este bot usa mpd y mpc. mpd es un demonio para reproducir música, y mpc es el cliente, que permite incluso dar órdenes al mpd de otra máquina. Veamos cómo configurarlo.
su -c "aptitude install mpd mpc" mkfifo /tmp/mumble.fifo su -c "nano /etc/mpd.conf"
En este archivo comentamos todos los audio_output que veamos y añadimos estas lineas para configurar un audio_output que dirija la salida de mpd a un archivo «/tmp/mumble.fifo» que luego usaremos con nuestro bot:
#fifo output audio_output { type "fifo" name "My FIFO" path "/tmp/mumble.fifo" format "24000:16:2" }
Ahora sólo queda meter música en /var/lib/mpd/music, hacer:
mpc ls | mpc add
Para agregar toda la música de ese directorio en una lista, y a reproducir!
¿Y esto sirve para poder hablar con microfono al mismo tiempo?
En mi caso el proceso para hacerlo funcionar, en debian SID, ha sido:
finalmente para lanzarlo:
./eve.rb –name bobylo –owner fanta –server elbinario.net –port 60601 –channel Recreo –key password
https://gitorious.org/eve/eve?p=eve:eve.git;a=snapshot;h=4339986836f65eb7c8cebd7441991e4304cab303;sf=tgz