NAME

Net::Gadu - Interfejs do biblioteki libgadu.so (czesc ekg)

DESCRIPTION

Bardzo wstepna i testowa wersja modulu, ale chyba dziala.

Wykozystuje 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.5.tar.gz

METHODS

Dostepne metody :

$gg = new Net::Gadu(server => "server_ip")
    opcjonalny parametr : server   (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 "famale" lub "none")
$active = 1 lub 0
$gg->check_event()
Sprawdza czy zaszlo jakies zdarzenie (przydatne przy polaczeniu asynchronicznym zwlaszcza)
$gg->get_event()
    Zwraca dane ze zdarzenia ktore zaszlo, zwracana jest tablica haszy np :
	$e = $gg_event();
	
    $e->[0]->{type} zawiera kod ostatniego zdarzenia
    
	$Net::Gadu::EVENT_MSG
	        $e->[0]->{message}  # tresc wiadomosci
		$e->[0]->{sender}   # uin wysylajacego
		$e->[0]->{msgclass}    # typ wiadomosci

	$Net::Gadu::EVENT_ACK	    # potwierdzenie wyslania wiadomosci
	        $e->[0]->{recipient}
		$e->[0]->{status}
		$e->[0]->{seq}

	$Net::Gadu::EVENT_STATUS    # zmiana statusu
	        $e->[0]->{uin}
		$e->[0]->{status}
		$e->[0]->{descr}

    Dostepne kody zdarzen :
    
    $Net::Gadu::EVENT_NONE = 0
    $Net::Gadu::EVENT_MSG = 1
    $Net::Gadu::EVENT_NOTIFY = 2
    $Net::Gadu::EVENT_NOTIFY_DESCR = 3
    $Net::Gadu::EVENT_STATUS = 4
    $Net::Gadu::EVENT_ACK = 5
    $Net::Gadu::EVENT_PONG = 6
    $Net::Gadu::EVENT_CONN_FAILED = 7
    $Net::Gadu::EVENT_CONN_SUCCESS = 8
    $Net::Gadu::EVENT_DISCONNECT = 9

EXAMPLES

    #!/usr/bin/perl

    use ExtUtils::testlib;
    use Net::Gadu;

    my $gg = new Net::Gadu(async=>1);

    # SEARCH
    my $res = $gg->search("","Ania","","","famale",0);
    foreach my $a (@{$res}) {
        print $a->{nickname}." ".$a->{uin}." ".$a->{first_name}." ".$a->{last_name}." ".$a->{city}." ".$a->{born}."\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 ($gg->check_event() == 1) {

	my $e = $gg->get_event();

	my $type = $e->[0]->{type};
	
	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->[0]->{message}." ".$e->[0]->{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/