2010-07-27 19 views
5

Ho una vecchia macchina in casa mia e una delle cose questa macchina fa rilevare se una particolare porta in la casa ha appena aperto o chiuso.Un buon esempio di utilizzo di libpurple?

In questo momento, ho registrato un tweet su un account Twitter privato .

Vorrei ora dare a questa macchina il proprio account AIM e inviarmi un messaggio su AIM. Gli unici messaggi che verranno inviati sono letteralmente "porta aperta" e " " porta d'ingresso chiusa. "

sembra che libpurple è una libreria comunemente usato per affrontare i vari protocolli di messaggistica istantanea ed è anche utilizzato in Adium, ma è terribilmente complicato e io non riesco a capire come usarlo.

Qualcuno ha o sa di un semplice esempio di codice che utilizza libpurple?

risposta

3

Personalmente ho trovato il codice sorgente di Pidgin per essere semplice da leggere. Ci sono molti altri client di messaggistica istantanea che usano libpurple, tuttavia, è possibile controllare Wikipedia per maggiori dettagli.

+0

libpurple è stato sviluppato come un back-end per Pidgin, in modo che dovrebbe essere il luogo de facto per iniziare. Ma come dici tu, ci sono molti altri che lo usano ora. – Spudley

+0

Dopo 2 anni. Pensi che la tua risposta dovrebbe essere aggiornata! –

1

Ho fatto questo genere di cose in uno script bash prima. Sfortunatamente il codice è andato perso, ma potresti voler considerare dbus come un pezzo della soluzione. Il codice era relativamente semplice.

This page on updating pidgin status potrebbe essere un buon punto di partenza.

Per la vostra applicazione, potrebbe essere facile come:

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

(Vedere la citazione!)

Vedi purple-remote(1).

1

Ho combattuto attraverso i draghi^Documentazioni wonexistent e sembra essere plausibile :-) Avere un po 'di tempo per hackerare alcune cose insieme, penso che valga la pena di fare un controllo veloce.

importante e bene sapere, che per utilizzare i servizi interni DBus,

  1. run questo esempio schermo per lungo tempo :),
  2. il viola-remote deve essere eseguito nella stessa sessione dbus. Ho creato uno script che avvia una sessione all'avvio ed esporta DBUS_SESSION_BUS_ADDRESS nella bascrc di tutti gli utenti. Ti sembra hacky?:)

Chiunque abbia competenze migliori con libpurple, interrompiamoci! :-)

+0

Uh e il Makefile: http://koshinae.pastebin.com/TPM8en2i – Koshinae

0

Si consiglia di dare un'occhiata allo nullclient.c fornito nei sorgenti libpurple (libpurple/example/nullclient.c). Esegue l'accesso al server e aggiunge alcune chiamate utili. Per inviare un messaggio, aggiungere questo a (per esempio) la funzione signed_on:

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