NAME
Net::Gadu - Interfejs do biblioteki libgadu.so dla protoko³u Gadu-Gadu
DESCRIPTION
Wykorzystuje biblioteke libgadu.so ktora jest czescia projektu EKG. Aby zaintalowac libgadu.so nalezy skompilowac EKG z opcja --with-shared. Jesli uzywasz EKG z pakietu prawdopodobnie biblioteka ta zostala zainstalowana. Szczegolowe informacje znajdziesz na stronie projektu EKG - http://ekg.chmurka.net/ Do zbudowania pakietu potrzeba jest zainstalowana biblioteka z prefixem /usr lub /usr/local , jesli lokalizacja jest niestandardowa mozna wyedytowac plik Makefile.PL podajac wlasciwe lokalizacje
DOWNLOAD
http://www.cpan.org/modules/by-module/Net/Net-Gadu-1.8.tar.gz
SUBVERSION
$ svn co http://svn.hakore.com/netgadu/trunk
METHODS
Dostepne metody :
- $gg = new Net::Gadu()
-
opcjonalny parametr : server => "11.11.11.11" (ip alternatywnego serwera) async => 1 lub 0 (komunikacja asynchroniczna lub nie) - $gg->login(uin, password);
-
Polaczenie z serwerem oraz logowanie do serwera.
- $gg->logoff();
-
Wylogowanie z serwera i zakonczenie sesji.
- $gg->send_message(receiver_uin, message);
-
Wysyla wiadomosc pod wskazany numer UIN.
- $gg->send_message_chat(receiver_uin, message);
-
Wysyla wiadomosc pod wskazany numer UIN.
- $gg->set_available();
-
Ustawia status na dostepny. Podobne funkcje : set_busy(), set_invisible(), set_not_available(), change_status().
- $gg->add_notify()
-
Możesz użyc tej funkcji w celu poinformowania serwera, że chcesz znać status danej osoby i czekać na zdarzenia zwiazane ze zmiana statusu. Zaczynaja dochodzic zdarzenia EVENT_NOTIFY,EVENT_NOTIFY60 gdy ktos sie pojawi oraz EVENT_STATUS,EVENT_STATUS60 gdy ktos zmieni status (patrz opis get_event())
- $gg->remove_notify()
-
Możesz użyc tej funkcji w celu poinformowania serwera, że nie chcesz otrzymywac zdarzen zwiazanych ze zmiana statusu od tej osoby.
- $gg->change_status();
-
Zmiana statusu mozliwa na jeden z:
$Net::Gadu::STATUS_NOT_AVAIL $Net::Gadu::STATUS_AVAIL $Net::Gadu::STATUS_BUSY $Net::Gadu::STATUS_INVISIBLE - $gg->change_status_descr();
-
Zmiana statusu z opisem, mozliwa na jeden z:
$Net::Gadu::STATUS_NOT_AVAIL_DESCR $Net::Gadu::STATUS_AVAIL_DESCR $Net::Gadu::STATUS_BUSY_DESCR $Net::Gadu::STATUS_INVISIBLE_DESCR - $gg->search($uin,$nickname,$first_name,$last_name,$city,$gender,$active)
-
Wyszukiwanie, jesli parametr ma warto¶æ "", czyli pust± wtedy to pole nie jest brane pod uwagê podczas wyszukiwania. Zwracana jest tablica ze szczego³owymi informacjami. Odpowied¼ nale¿y odebraæ po otrzymaniu zdarzenia $Net::Gadu::EVENT_SEARCH_REPLY. Przyk³adowe u¿ycie oraz wynik znajduj± siê w przyk³adowym programie "ex/ex1" dostarczanym wraz ze ¼ród³ami. Uwaga: $gender = "male" lub "female" lub "none") $active = 1 lub 0 - $gg->check_event()
-
Sprawdza czy zaszlo jakies zdarzenie (szczegolnie istotne przydatne przy polaczeniu asynchronicznym) - $gg->get_event()
-
Zwraca informacje o zdarzeniu ktore mialo miejsce, zwracany jest hasz np : $e = $gg_event(); $e->{type} zawiera kod ostatniego zdarzenia $Net::Gadu::EVENT_MSG $e->{message} # tresc wiadomosci $e->{sender} # uin wysylajacego $e->{msgclass} # typ wiadomosci $Net::Gadu::EVENT_ACK # potwierdzenie wyslania wiadomosci $e->{recipient} $e->{status} $e->{seq} $Net::Gadu::EVENT_STATUS # zmiana statusu (wersja klienta Gadu-Gadu < 6.0) $e->{uin} $e->{status} $e->{descr} $Net::Gadu::EVENT_STATUS60 # zmiana statusu (wersja klienta Gadu-Gadu >= 6.0) $e->{uin} $e->{status} $e->{descr} $Net::Gadu::EVENT_NOTIFY # informacja o pojawieniu sie kogos (wersja klienta Gadu-Gadu < 6.0) $e->{uin} $e->{status} $Net::Gadu::EVENT_NOTIFY_DESCR # informajca o pojawieniu sie kogos, z opisem (wersja klienta Gadu-Gadu < 6.0) $e->{uin} $e->{status} $e->{descr} $Net::Gadu::EVENT_NOTIFY60 # informacja o pojawieniu sie kogos (wersja klienta Gadu-Gadu >= 6.0) $e->{uin} $e->{status} $e->{descr} $Net::Gadu::EVENT_SEARCH_REPLY $e->{results} Dostepne kody zdarzen : $Net::Gadu::EVENT_NONE $Net::Gadu::EVENT_MSG $Net::Gadu::EVENT_NOTIFY $Net::Gadu::EVENT_NOTIFY_DESCR $Net::Gadu::EVENT_NOTIFY60 $Net::Gadu::EVENT_STATUS $Net::Gadu::EVENT_STATUS60 $Net::Gadu::EVENT_ACK $Net::Gadu::EVENT_PONG $Net::Gadu::EVENT_CONN_FAILED $Net::Gadu::EVENT_CONN_SUCCESS $Net::Gadu::EVENT_DISCONNECT $Net::Gadu::EVENT_SEARCH_REPLY
EXAMPLES
#!/usr/bin/perl
use Net::Gadu; use Data::Dumper;
my $gg = new Net::Gadu(async=>1);
## LOGIN $gg->login("1234567","password") or die "Login error\n";
## EVENTS(this example, after successful login change status, send message and logout while (1) { while ($gg->check_event() == 1) {
my $e = $gg->get_event();
my $type = $e->{type};
if ($type == $Net::Gadu::EVENT_CONN_FAILED) {
die "Connection failed";
}
if ($type == $Net::Gadu::EVENT_NOTIFY60) {
print "EVENT_NOTIFY60 from ".$e->{uin}."\n" ;
}
if ($type == $Net::Gadu::EVENT_STATUS60) {
print "EVENT_STATUS60 from ".$e->{uin}.", status ".$e->{status}."\n" ;
}
if ($type == $Net::Gadu::EVENT_DISCONNECT) {
die "disconnect";
}
if ($type == $Net::Gadu::EVENT_CONN_SUCCESS) {
$gg->set_available();
# notify server that you want to receive status notifications
$gg->add_notify("42112");
# Send THANKS to author
$gg->send_message_chat("42112","dziekuje za Net::Gadu");
# SEARCH INIT
$gg->search("","krzak","","","","male",0);
}
if ($type == $Net::Gadu::EVENT_MSG) {
print $e->{message}." ".$e->{sender}."\n";
}
if ($type == $Net::Gadu::EVENT_SEARCH_REPLY) {
# SEARCH RESULT
print Dumper($e->{results});
#$gg->logoff();
#exit(1);
}
if ($type == $Net::Gadu::EVENT_ACK) {
}
}
}
AUTHOR
Marcin Krzy¿anowski, http://www.hakore.com/
LICENCE
Lesser General Public License
SEE ALSO
http://www.gadu-gadu.pl/
http://ekg.chmurka.net/
http://www.gnugadu.org/
http://www.hakore.com/
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 176:
Non-ASCII character seen before =encoding in 'protoko³u'. Assuming CP1252