2010-07-27 14 views
5

Tengo una máquina vieja en mi casa y una de las cosas que hace es detectar si una puerta en particular en la casa acaba de abrirse o cerrarse.¿Buen ejemplo de usar libpurple?

En este momento, tengo esa máquina publicar un tweet en una cuenta privada de Twitter .

Ahora me gustaría darle a esta máquina su propia cuenta AIM y hacer que me envíe un mensaje en AIM. Los únicos mensajes que se enviarán son, literalmente, "puerta de entrada abierta" y "puerta de entrada cerrada".

Parece que libpurple es una biblioteca de uso general para hacer frente a diversos protocolos de mensajería instantánea y es incluso utilizado en Adium, pero es terriblemente complicado y no puedo encontrar la manera de usarlo.

¿Alguien tiene o conoce una muestra de código simple que usa libpurple?

Respuesta

3

Personalmente encontré que el código fuente de Pidgin es fácil de leer. Sin embargo, hay muchos más clientes de mensajería instantánea que usan libpurple, puede consultar Wikipedia para obtener más detalles.

+0

libpurple fue desarrollado como un back-end para Pidgin, por lo que debería ser el lugar de facto a empezar. Pero como dices, hay muchos otros que lo usan ahora también. – Spudley

+0

Después de 2 años. ¿Crees que tu respuesta debería estar actualizada? –

1

He hecho este tipo de cosas en un script bash antes. Lamentablemente, el código se pierde, pero es posible que desee ver dbus como parte de la solución. El código fue relativamente sencillo.

This page on updating pidgin status podría ser un buen punto de partida.

Para su aplicación, podría ser tan fácil como:

purple-remote uri 'aim:goim?screenname=yourimhandle&message="front door open"' 

(Ver la cita!)

Ver purple-remote(1).

1

Luché a través de los dragones^Documentaciones inexistentes y parece plausible :-) Tener algo de tiempo para hackear algunas cosas juntas, creo que puede valer la pena comprobarlo rápidamente.

importante y bueno saber, que para usar los servicios internos DBus,

  1. plazo esto en, por ejemplo pantalla durante mucho tiempo :),
  2. el control remoto púrpura debe ejecutarse en la misma sesión dbus. Hice una secuencia de comandos que inicia una sesión en el arranque y exporta DBUS_SESSION_BUS_ADDRESS en todos los bashrc del usuario. Se siente hacky?:)

¡Cualquier persona con mejores habilidades con libpurple, por favor sácanos! :-)

+0

Uh, y el archivo MAKE: http://koshinae.pastebin.com/TPM8en2i – Koshinae

0

Definitivamente debe echar un vistazo a nullclient.c provisto en las fuentes libpurple (libpurple/example/nullclient.c). Realiza el inicio de sesión en el servidor y agrega algunas devoluciones de llamada útiles. Para enviar un mensaje, añadir esto a (por ejemplo) la función signed_on:

PurpleConvIm im; 
im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "[email protected]"); 
purple_conv_im_send(&im, "open door"); 
Cuestiones relacionadas