Net-Gadu

 view release on metacpan or  search on metacpan

Gadu.pm  view on Meta::CPAN

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 )