Por estos días he estado re descubriendo un viejo entretenimiento mio: el Internet Relay Chat (IRC) debido a que se me termino la cuota de internet de este mes; así que he estado frecuentando bastante el canal de IRC de la universidad de Pinar del Río (irc.upr.edu.cu/443) que también tiene su versión para la web en caso de no tener un cliente apropiado para estos menesteres.
Yo desde hacia rato no frecuentaba el IRC pero siempre que lo hacia usaba Xchat como cliente de IRC para ese tipo de actividades así que al sentir “el bichito” nuevamente me dispuse a instalarlo:
$sudo aptitude install xchat
Por que Xchat y no cualquier otro cliente de mensajería
Xchat es un cliente muy dócil, liviano y la parte que mas me gusta… es modular lo que significa que nosotros mismos podemos crearle nosotros mismos usando Python o PERL. Resulta que ya el IRC no es lo de antes que sino que muchos usuarios se dedican a poner en el canal el tema que están reproduciendo (eso se hace a través de los clientes de IRC) pero en el caso particular de Xchat esto no viene por defecto asi que tuve que hacer mi pequeña investigación del caso encontrando muchos script para Xchat pero que trabajaban con reproductores como XMMS y Amarok.
Yo uso Audacious porque a mi entender es uno de los mas livianos y me permite hacer dos o tres cositas mas que el clásico lxmusic que viene por defecto en mi LXDE. Buscando y hablando con los demás usuarios encontré uno que usaba Konversation (si, no pongan esa cara; en Cuba hay usuarios que utilizan GNU/Linux como mismo hacemos nosotros aunque no seamos el mayor grupo) y me facilitó un script para su cliente hecho en Python pero al leer su código me di cuenta que usaba librerías y comandos de KDE que no estaba muy familiarizados asi que me di a la tarea de buscar como lograr hacer algo parecido para Xchat.
El plato fuerte
Buscando en internet encontre que PERL se prestaba más para la creacion de scripts del tipo de los que estaba buscando asi que me puse a buscar informacion sobre como crear algo parecido, nuevamente encontre cantidad de script de PERL para Xchat pero con otros reproductores asi que me baje uno de ellos y lo adapté a mis caracteristicas: Debian + LXDE + Xchat2 + Audacious y aquí les va la explicacion de lo que hice:
Lo primero que se debe hacer (o que hicieron en el otro script) fue crear un flujo de texto que se utiliza para alamacenar y mostrar la informacion que se desea
use POSIX qw(strftime);
luego se crean las variables del script como pudieran ser la version del script etc etc
$script_name = «Anunciador de Audacious para Xchat»;
Antes de seguir…. en el script que tome de base usan los clasicos 4 espacios en lugar de TAB asi que yo seguí la misma filosofía
Luego que capturamos los datos del script hacemos la interaccion con el servidor IRC y registramos dichos datos mediante el comando:
IRC::register($script_name,$script_version,$script_description,»»);
tambien podemos poner cosas para saber su funciona como mensajes de carga como este otro:
IRC::print(«Cargado «.$script_name.»:»);
Asi podremos saber si el Xchat está cargando o no nuestro script. Luego vino la parte mas dificil … agregar los subcomandos del script que tienen que ser cosas de IRC y luego implementar las funcionalidades pero esa parte lejos de parece dificil solo me remití a utilizar una aplicación llamada audtool2 que me permite en otras cosas: extraer en texto claro los datos de las TAG de Audacious, saltar de una canción a otra, comenzar a reproducir la lista… en fin usar el Audacious desde la consola
mas o menos lo que hice fue esto:
Cree varios subcomandos de IRC y verifico que el proceso del Audacious este activo, obtengo los datos que quiero mostrar y devuelvo el valor para cada subcomando; luego imprimo en el canal de IRC los valores obtenidos y al final tengo una pequeña parte de tratamiento de erroes para en caso de que no este activo el Audacious se lance una excepcion y salga un mensaje en el Xchat.
Un ejemplo de como implementar estos subcomandos (en este caso el de mostrar en el canal el nombre de la canción que estoy reproduciendo) es este:
sub anuncia
{
if (`ps -C audacious2` =~ /audacious/) {
# Obtener datos de la cancion que se esta reproduciendo a travez de Audtool.
$song_info = `audtool –current-song-tuple-data title `;
chop $song_name;
#Mostrando en el canal la informacion de la canción
IRC::command(«/me Está Escuchando: » «.$song_name.» );
#Tratamiendo de errores
} else {
IRC::print(«Audacious no esta ejecutándose.»);
}
return 1;
}
De esta forma cuando estoy en en canal y quiero anunciar que cancion estoy escuchando escribo /anuncia y el Xchat se encarga de sacar esto en el canal:
Hyuuga_Neji Está Escuchando: Guns n’ Roses Welcome To The Jungle Greatest Hits 0:02 4:33 01 Guns n’ Roses Welcome To The Jungle.mp3Ahí les dejo parte de como seria la implementación de un subcomando de mi script y como se puede observar la estructura es bastante similar a las de otros lenguajes y con los comentarios creo que pueden ser capaces uds mismos de leer lo que se está haciendo. Si alguno de uds se ve en la misma situacion y desea usar Xchat2 con Audacious en un canal de IRC, si se embullan y deciden entrar al canal de la UPR entonces nos vemos allá.
mmm, interesante… Podemos incluirlo en el proximo numero de SWL-X???????
Eso está de mas pedirlo… claro que puedes usarlo y si alguien se embulla a optimizarlo encantado de cederle el codigo.
@Hyuuga_Neji, gracias por la mención en el artículo, jajajaja. Veo que algo bueno salió de aquellas «konversaciones». XD
no hay de que… sabes que no use tu script porque usa cosas que son propias de KDE y de Konversation como tal por eso no crei que me fueran muy util en mi situacion descrita en el articulo….
Reinventando la rueda, si contaras con una conexion a internet, bueno hubieras descubierto ese script, ventajas de vivir en cuba. aparte de eso, buen post, y como offtopic los que usan xchat para guindons tambien hay un script en perl que anuncia las canciones de winamp.
No se que parte de «encontrando muchos script para Xchat pero que trabajaban con reproductores como XMMS y Amarok.» fue la que no entendiste, Yo no se si sea suerte o desgracia pero cuento con el recursos de la internet y como ya te dije al final tuve que coger y cambiar un script que habia (precisamente para Winamp) por el mio propio de Audacious. No obstante…
eres bienvenido de colaborar con scripting o sea … la forma de crear script para que al final se expanda el conocimiento y no se quede solo una persona con el….
ALguien puede darme una direccion de sala de chat solo tengo intranet fabor. mi correo
richard.hernandez@mella.azcuba.cu
Me puedes esxplicar como lo configuro desde un jovenclub para poder acceder IRC de la UPR
Esto que pides no tiene nada que ver con crear un Script para Xchat sino mas bien sería la forma de conectarte usando Xchat a cualquier canal de IRC. Para lograr tu meta creas una nueva RED y dento de esta configuras los canales que quieres. (el de la UPR es irc.upr.edu.cu y utiliza como puerto el 443) lejos de eso no debe serte dificil.