2010-07-27 15 views
5

Mam starą maszynę w moim domu i jedną z rzeczy, którą wykonuje ta maszyna, jest wykrywanie, czy dane drzwi zostały otwarte lub zamknięte w danym domu w .Dobry przykład użycia libpurple?

W tej chwili mam tę maszynę do wpisania tweeta na prywatnym koncie Twitter .

Chciałbym teraz dać tej maszynie własne konto AIM i wysłać mi wiadomość na AIM. Jedyne wiadomości, które zostaną wysłane, to dosłownie "otwarte drzwi frontowe" i "zamknięte drzwi przednie".

Wydaje się, że libpurple jest powszechnie stosowanym biblioteki czynienia z różnymi protokołami komunikatorów i używane nawet w Adium, ale to jest strasznie skomplikowane i nie mogę dowiedzieć się, jak go używać.

Czy ktoś ma lub zna prosty przykład kodu, który używa libpurple?

Odpowiedz

3

Osobiście znalazłem kod źródłowy Pidgin, aby można go było przeczytać bezpośrednio. Istnieje o wiele więcej klientów komunikatorów korzystających z libpurple, ale możesz sprawdzić więcej szczegółów pod numerem Wikipedia.

+0

libpurple został opracowany jako back-end dla Pidgin, tak że powinno być de facto miejscem, aby rozpocząć. Ale, jak mówisz, jest teraz również wielu innych, którzy używają go. – Spudley

+0

Po 2 latach. Czy uważasz, że twoja odpowiedź powinna zostać zaktualizowana! –

1

Zrobiłem tego rodzaju rzeczy w skrypcie bash wcześniej. Niestety kod zostaje utracony, ale możesz spojrzeć na dbus jako kawałek rozwiązania. Kod był stosunkowo prosty.

This page on updating pidgin status może być dobrym punktem wyjścia.

dla danej aplikacji, to może być tak proste, jak:

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

(Watch cytowania!)

Zobacz purple-remote(1).

1

Walczyłem przez smoki^Wnonexistent documentations i wydaje się to prawdopodobne :-) Mając trochę czasu na zhackowanie niektórych rzeczy, myślę, że warto to sprawdzić.

Ważne i dobrze wiedzieć, że aby korzystać z wewnętrznego usług DBus,

  1. prowadzony w ten przykład ekran przez długi czas :),
  2. fioletowy-remote powinien być uruchomiony w tej samej sesji dbus. Zrobiłem skrypt , który uruchamia sesję podczas rozruchu i eksportuje DBUS_SESSION_BUS_ADDRESS we wszystkich bashrc użytkownika. Czujesz się hacky?:)

Każdy, kto ma lepsze umiejętności z libpurple, proszę nas powstrzymać! :-)

+0

Uh, a plik Makefile: http://koshinae.pastebin.com/TPM8en2i – Koshinae

0

Powinieneś zdecydowanie rzucić okiem na nullclient.c podany w źródłach libpurple (libpurple/example/nullclient.c). Wykonuje logowanie do serwera i dodaje kilka przydatnych wywołań zwrotnych. Aby wysłać wiadomość, dodać do (na przykład) na signed_on funkcji:

PurpleConvIm im; 
im.conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, "[email protected]"); 
purple_conv_im_send(&im, "open door"); 
Powiązane problemy