NAME
Net::Gadu - Interfejs do biblioteki libgadu.so (czesc ekg)
DESCRIPTION
Bardzo wstepna i testowa wersja modulu, ale chyba dziala.
Wykorzystuje biblioteke libgadu.so ktora jest czescia projektu Ekg ( http://dev.null.pl/ekg/ ) Aby ja otrzymac nalezy skompilowac ekg z opcja --with-shared. Jesli uzywasz ekg z pakietu prawdopodobnie biblioteka ta jest automatycznie instalowana w systemie.
DOWNLOAD
http://krzak.linux.net.pl/perl/Net-Gadu-0.9.tar.gz
METHODS
Dostepne metody :
- $gg = new Net::Gadu(server => "server_ip")
-
opcjonalny parametr : server => "11.11.11.11" (ip alternatywnego serwera) async => 1 lub 0 (komunikacja asynchroniczna)
- $gg->login(uin, password);
-
Polaczenie z serwerem i zalogowanie.
- $gg->logoff();
-
Zakonczenie sesji.
- $gg->send_message(receiver_uin, message);
-
Wysyla wiadomosc pod podany UIN.
- $gg->send_message_chat(receiver_uin, message);
-
Wysyla wiadomosc pod podany UIN.
- $gg->set_available();
-
Ustawia status na dostepny, podobne funkcje : set_busy(), set_invisible(), set_not_available().
- $gg->search($nickname,$first_name,$last_name,$city,$gender,$active)
-
$gender = "male" lub "female" lub "none") $active = 1 lub 0
- $gg->search_uin($uin,$active)
-
szuka uzytkownika o podanym UIN (active oznacza czy ma szukac posrod aktywnych czy nie)
- $gg->check_event()
-
Sprawdza czy zaszlo jakies zdarzenie (przydatne przy polaczeniu asynchronicznym zwlaszcza)
- $gg->get_event()
-
Zwraca dane ze zdarzenia ktore zaszlo, 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 $e->{uin} $e->{status} $e->{descr} Dostepne kody zdarzen : $Net::Gadu::EVENT_NONE $Net::Gadu::EVENT_MSG $Net::Gadu::EVENT_NOTIFY $Net::Gadu::EVENT_NOTIFY_DESCR $Net::Gadu::EVENT_STATUS $Net::Gadu::EVENT_ACK $Net::Gadu::EVENT_PONG $Net::Gadu::EVENT_CONN_FAILED $Net::Gadu::EVENT_CONN_SUCCESS $Net::Gadu::EVENT_DISCONNECT
EXAMPLES
#!/usr/bin/perl
use Net::Gadu;
my $gg = new Net::Gadu(async=>1);
# SEARCH
my $res = $gg->search("","Ania","","","female",0);
foreach my $a (@{$res}) {
print $a->{nickname}." ".$a->{uin}." ".$a->{first_name}." ".$a->{last_name}." ".$a->{city}." ".$a->{born}." ".$a->{active}."\n";
}
#print ($res->[1]->{uin});
#print ($res->[1]->{first_name});
#print ($res->[1]->{last_name});
## LOGIN
$gg->login("12121212","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_CONN_SUCCESS) {
$gg->set_available();
$gg->send_message_chat("42112","dziekuje za Net::Gadu");
}
if ($type == $Net::Gadu::EVENT_MSG) {
print $e->{message}." ".$e->{sender}."\n";
}
if ($type == $Net::Gadu::EVENT_ACK) {
$gg->logoff();
}
}
}
AUTHOR
Marcin Krzyzanowski krzak@linux.net.pl GG: 42112
SEE ALSO
http://dev.null.pl/ekg/
http://www.gadu-gadu.pl/