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/