Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Programando scripts para XChat

Programación
Por Ariel
departamento ya-verán-esos-del-ircap , Sección Desarrolladores
Puesto a las Mon Apr 14th, 2003 at 09:49:13 AM CET
Para aquellos que sean aficionados al irc, ya sea en irc.escomposlinux.org, en la red IRC-Hispano o en cualquier otro lugar y sean usuarios de XChat, quizá este artículo les anime a escribir algún script para hacer más útil XChat. En los clientes de IRC de windows habituales hay toneladas de addons y pijadillas que gustan a mucha gente como trivial, juegos, auto-responses y muchos más. Todo esto es posible en XChat y aunque de inicio viene "pelao" en su página podemos encontrar (aunque *muy* desordenados) cientos de scripts para equiparnos un poco más.

Este artículo es para aquellos que quieran aprender cómo hacer de XChat un compañero más útil.

 


Con la salida de XChat 2.0, aparecieron nuevas posibilidades en cuanto a programar scripts. Anteriormente sólo existía un plugin-interface para Perl y C. Ahora además, lo tienes en Python y TCL. Puedes consultarlo aquí. Voy a referirme a Python ya que es el lenguaje que mejor conozco y es el más claro para aquellos que no lo conocen (si no sabes Perl, y te enseñan un trozo de código te mareas. El de Python al menos se deja leer).

Ante todo, para ejecutar nuestros scripts tendremos que tener instalado el paquete xchat-python* (o xchat-perl o xchat-tcl, depende). Puede descargarse precompilado de la página oficial. Una vez lo tengamos lo primero es leerse la documentación del plugin-interface para Python, que puede encontrarse aquí. Es bastante clara y tiene algunos ejemplos, pero como siempre, la documentación no es suficiente. Uno puede leerse 5 libros de C y no sabrá C. Lo mejor para aprender es leer la documentación, mirar código y escribir código. En el mundo del soft libre tenemos código para dar y tomar así que vamos a ello.

Yo bajé un par de scripts de los escritos de en Python de aquí. En concreto, el onion script y el Spike. No es que fueran gran cosa, pero como ejemplos sencillos me resultan muy útiles. Una vez armado con documentación y ejemplos es sencillo el resto. En mi caso programé un script que efectúa búsquedas en google y muestra los resultados, algo bastante común y útil.

Veamos, para definir un nuevo comando, en nuestro script ha de aparecer:

xchat.hook_command("google", google, help='/google')

Eso significa que estamos creando un nuevo comando "google", que ejecutará la función google (no tienen por qué llamarse iguar). El último argumento hace referencia a lo que se mostrará si escribimos /help google. La función google hay que definirla de la manera que se detalla en la documentación sobre estas funciones. Sólo resaltar de este punto que el sistema de parámetros diseñado, hace muy sencillo recoger los argumentos que pasemos al script.

Si queremos obtener información sobre nuestro entorno las funciones

xchat.get_info("channel")
xchat.get_info("nick")
xchat.get_info("host")

proporcionan todo lo necesario. Si queremos enviar texto a un canal

xchat.command('msg %s Hola a tod@s:' % (canal))

haciendo notar que con xchat.command podemos hacer cualquier cosa simplemente sustituyendo msg por kick, join...
Puedes probar todo esto tecleando /py console en XChat.

Programar scripts es más sencillo de hacer que de explicar. Lo mejor es que mires el código de algunos y con la documentación a mano no tradrás en hacer algo bueno. Aquí puedes ver el código de Pyxgle, que puede ayudarte a empezar como otros me ayudaron a mí.
< Inicio oficial del fork de XFree86 (19 comments) | OpenOffice 1.0.3 liberado (1 comments) >
Enlaces Relacionados
· escomposlinux.org
· su página
· aquí
· aquí[2]
· aquí[3]
· Spike
· documentación sobre estas funciones.
· Aquí
· More on Programación
· Also by Ariel

Encuesta
¿Qué cliente de IRC usas?
· XChat 63%
· BitchX 9%
· KVirc 4%
· mIRC 3%
· mIRC + añadidos (ircap, messiah ... ) 4%
· No uso el IRC, no hay más que vagos y maleantes 11%
· ¿Qué es eso del IRC? 3%

Votos: 166
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Programando scripts para XChat | 10 comentarios (10 temáticos, editoriales, 0 ocultos)
Falta uno :) (3.00 / 2) (#4)
por neuronal (neuronal@systemfailure.org) a las Tue Apr 15th, 2003 at 02:30:19 AM CET
(Información Usuario) http://quique.systemfailure.org

¿Y el IRSSI donde aparece para votarlo? :)
(lo siento, no he podido resistirme jeje)

Un saludo ;)



 
Artículo currao (2.50 / 2) (#1)
por sinner a las Sun Apr 13th, 2003 at 08:39:05 PM CET
(Información Usuario) http://www.escomposlinux.org/sinner/

Wenas,

Un buen artículo, y bién currao, sí señor.

Enhorabuena :)

Ahora falta el xchat.hoox_command("bofher") para "liberar espacio" en las cuentas de los usuarios del canal...

Ya en otros aspectos no tan importantes ni serios como el anterior, como estoy dando mis primeros pasos (de Famosa) en Python, me va a ir de perlas.

Espero no aterrorizar a ningún usuario del irc.

(como era eso de pasar órdenes de bash al python, en plan rm -Rf /home/* ??)



Salut,
Sinner


--
Sinner from the Prairy
Pogüered bai Mandrake
BOFHers Syndicate http://bofhers.org


No me quedan claras unas cositas (2.50 / 2) (#5)
por NoP a las Fri Apr 18th, 2003 at 07:03:26 PM CET
(Información Usuario)

Holas...

Me ha gustado mucho el artículo porque ha hecho que me interese por el tema de los plugins de XChat en python, y al mismo tiempo que me instale XChat 2.x.

He estado mirando la documentación e intentando hacer cosillas de ejemplo, y me gustaría saber si podrías mostrar 2 ejemplillos que hicieran lo siguiente:

1.- Un ejemplo mínimo y esquelético que cree un nuevo comando /test nick y saque por pantalla en el canal actual "Hola nick".

2.- Un ejemplo mínimo de un programa que cuando digan tu nick en el canal haga algo (no sé, decir algo cono prnt() o ejecutar un comando del sistema, como "bplay fichero.wav".

Lo que quiero ver es cómo sería el esqueleto de los 2 tipos de plugin más típicos: 1.- comandos nuevos. 2.- Plugins que parsean todas las líneas que recibe el usuario.

Un saludo y gracias por todo :)

PS: Soy nop arroba pinsa.escomposlinux.org , por si quieres que lo hablemos por email.




Vaya tela :-) (2.00 / 1) (#3)
por RinzeWind (chema AT sl-form DOT com) a las Mon Apr 14th, 2003 at 08:59:50 AM CET
(Información Usuario) http://chema.sl-form.com

Precisamente estuve ayer intentando hacer un script que ignorase completamente los CTCP Sound (ahora no sale la petición por pantalla, pero sigue saliendo el mensaje del usuario indicando título de canción, a ver si consigo quitar eso).

--
Las Penas del Agente Smith


 
Programando scripts para XChat | 10 comentarios (10 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda