Net-Gadu
view release on metacpan or search on metacpan
sub search {
my ($cl,$uin,$nickname,$first_name,$last_name,$city,$gender,$active) = @_;
my %gd = ("male" => 2, "female" => 1, "none" => 0);
return Net::Gadu::gg_search($cl->{session},$uin,$nickname,$first_name,$last_name,$city,$gd{$gender},$active);
}
sub login {
my ($cl,$uin,$password,$initial_status) = @_;
$cl->{uin} = $uin;
$cl->{password} = $password;
$cl->{session} = Net::Gadu::gg_login($cl->{uin},$cl->{password},$cl->{async}, $cl->{server}, $initial_status ? $initial_status : $STATUS_AVAIL);
return $cl->{session};
}
sub get_event {
my $cl = shift;
return Net::Gadu::gg_get_event($cl->{session});
}
sub check_event {
my $cl = shift;
return Net::Gadu::gg_check_event($cl->{session});
}
sub ping {
my $cl = shift;
return Net::Gadu::gg_ping($cl->{session});
}
sub logoff {
my $cl = shift;
Net::Gadu::gg_logoff($cl->{session}) if ($cl->{session});
Net::Gadu::gg_free_session($cl->{session}) if ($cl->{session});
}
sub send_message {
my ($cl,$receiver,$message) = @_;
return Net::Gadu::gg_send_message($cl->{session},0x0004,$receiver,$message);
}
sub send_message_chat {
my ($cl,$receiver,$message) = @_;
return Net::Gadu::gg_send_message($cl->{session},0x0008,$receiver,$message);
}
sub change_status {
my ($cl,$status) = @_;
return Net::Gadu::gg_change_status($cl->{session},$status);
}
sub change_status_descr {
my ($cl,$status,$descr) = @_;
return Net::Gadu::gg_change_status_descr($cl->{session},$status,$descr);
}
sub set_available {
my ($cl) = @_;
$cl->change_status($Net::Gadu::STATUS_AVAIL); # GG_STATUS_AVAIL
}
sub set_busy {
my ($cl) = @_;
$cl->change_status($Net::Gadu::STATUS_BUSY); # GG_STATUS_BUSY
}
sub set_not_available {
my ($cl) = @_;
$cl->change_status($Net::Gadu::STATUS_NOT_AVAIL); # GG_STATUS_NOT_AVAIL
}
sub set_invisible {
my ($cl,$status) = @_;
$cl->change_status($Net::Gadu::STATUS_INVISIBLE); # GG_STATUS_INVISIBLE
}
sub notify {
my ($cl) = @_;
return Net::Gadu::gg_notify($cl->{session});
}
sub add_notify {
my ($cl,$uin) = @_;
return Net::Gadu::gg_add_notify($cl->{session},$uin);
}
sub remove_notify {
my ($cl,$uin) = @_;
return Net::Gadu::gg_remove_notify($cl->{session},$uin);
}
1;
######################################################
__END__
=head1 NAME
Net::Gadu - Interfejs do biblioteki libgadu.so dla protokoÅu komunikatora Gadu-Gadu
=head1 DESCRIPTION
Wykorzystuje bibliotekÄ libgadu.so która jest czÄÅciÄ
projektu EKG.
SzczegóÅowe informacje na temat instalacji biblioteki Libgadu znajdziesz na stronie projektu EKG - http://ekg.chmurka.net/
.Do zbudowania pakietu Net::Gadu potrzebna jest zainstalowana w systemie biblioteka Libgadu.
Jeżeli biblioteka Libgadu zostaÅa zainstalowana w niestandardowym miejscu w systemie należy wyedytowac plik Makefile.PL podajÄ
c wÅaÅciwÄ
lokalizacjÄ.
=head1 DOWNLOAD
http://www.cpan.org/modules/by-module/Net/Net-Gadu-1.9.tar.gz
=head1 SUBVERSION
$ svn co http://svn.hakore.com/netgadu/
=head1 METHODS
Dostepne metody :
=over 4
=item $gg = new Net::Gadu()
opcjonalny parametr :
async => 1 lub 0 (komunikacja asynchroniczna lub nie)
server => "91.197.13.211" (alternatywne IP serwera Gadu-Gadu. Nie ustawiaj jezeli nie wiesz co to oznacza)
=item $gg->login($uin, $password, $initial_status);
Polaczenie z serwerem oraz logowanie do serwera. Pamietaj aby zaraz po polaczeniu wykonac $gg->notify();
parametry:
$uin = numer Gadu-Gadu
$password = haslo
$initial_status = status ustawiany po polaczeniu (opcjonalny)
=item $gg->logoff();
Wylogowanie z serwera i zakoÅczenie sesji.
=item $gg->send_message($receiver_uin, $message);
WysyÅa wiadomoÅÄ pod wskazany numer UIN.
=item $gg->send_message_chat($receiver_uin, $message);
WysyÅa wiadomoÅÄ pod wskazany numer UIN.
=item $gg->set_available();
Ustawia status na dostepny. Podobne funkcje : set_busy(), set_invisible(), set_not_available(), change_status().
=item $gg->add_notify($uin)
parametry:
$uin = numer Gadu-Gady który chcemy obserwowaÄ.
Możesz użyÄ tej funkcji w celu poinformowania serwera, że chcesz znaÄ status danej osoby i otrzymywaÄ zdarzenia zwiazane ze zmianÄ
statusu. Od tego momentu zaczynajÄ
nadchodziÄ z serwera zdarzenia EVENT_NOTIFY, EVENT_NOTIFY60 zawsze gdy ktoÅ...
=item $gg->remove_notify($uin)
Możesz użyÄ tej funkcji w celu poinformowania serwera, że nie chcesz otrzymywaÄ zdarzeÅ zwiÄ
zanych ze zmianÄ
statusu od tej osoby.
parametry:
$uin = numer Gadu-Gadu
=item $gg->change_status($status);
Zmiana statusu możliwa jest na jeden z:
$Net::Gadu::STATUS_NOT_AVAIL
$Net::Gadu::STATUS_AVAIL
$Net::Gadu::STATUS_BUSY
$Net::Gadu::STATUS_INVISIBLE
=item $gg->change_status_descr($status, $descr);
parametry:
$status = nowy status
$descr = tekst opisu
Zmiana statusu z opisem możliwa na jeden z:
$Net::Gadu::STATUS_NOT_AVAIL_DESCR
$Net::Gadu::STATUS_AVAIL_DESCR
$Net::Gadu::STATUS_BUSY_DESCR
$Net::Gadu::STATUS_INVISIBLE_DESCR
=item $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
=item $gg->check_event()
Sprawdza czy zaszlo jakies zdarzenie (szczegolnie istotne przydatne przy polaczeniu asynchronicznym)
=item $gg->get_event()
( run in 1.675 second using v1.01-cache-2.11-cpan-5a3173703d6 )