NAME

Net::Gadu - Interfejs do biblioteki libgadu.so dla protoko³u Gadu-Gadu

DESCRIPTION

Wykorzystuje bibliotekê libgadu.so która jest czesci± projektu EKG. Aby zaintalowaæ libgadu.so nale¿y skompilowaæ EKG z opcj± --with-shared. Je¶li u¿ywasz EKG z pakietu prawdopodobnie biblioteka ta zosta³a zainstalowana. Szczegó³owe informacje znajdziesz na stronie projektu EKG - http://dev.null.pl/ekg/

DOWNLOAD

http://krzak.linux.net.pl/perl/Net-Gadu-1.5.tar.gz

METHODS

Dostepne metody :

$gg = new Net::Gadu()
opcjonalny parametr :
server => "11.11.11.11"  (ip alternatywnego serwera)
async => 1 lub 0   (komunikacja asynchroniczna lub nie)
$gg->login(uin, password);

Po³±czenie z serwerem oraz logowanie do serwera.

$gg->logoff();

Wylogowanie z serwera i zakoñczenie sesji.

$gg->send_message(receiver_uin, message);

Wysy³a wiadomo¶æ pod wskazany numer UIN.

$gg->send_message_chat(receiver_uin, message);

Wysy³a wiadomo¶æ pod wskazany numer UIN.

$gg->set_available();

Ustawia status na dostepny. Podobne funkcje : set_busy(), set_invisible(), set_not_available(), change_status().

$gg->change_status();

Zmiana statusu mo¿liwa na jeden z:

$Net::Gadu::STATUS_NOT_AVAIL
$Net::Gadu::STATUS_NOT_AVAIL_DESCR
$Net::Gadu::STATUS_AVAIL
$Net::Gadu::STATUS_AVAIL_DESCR
$Net::Gadu::STATUS_BUSY
$Net::Gadu::STATUS_BUSY_DESCR
$Net::Gadu::STATUS_INVISIBLE
$Net::Gadu::STATUS_INVISIBLE_DESCR
$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
$gg->check_event()
Sprawdza czy zasz³o jakie¶ zdarzenie (szczegolnie istotne przydatne przy po³aczeniu asynchronicznym)
$gg->get_event()
    Zwraca informacje o zdarzeniu które mia³o miejsce, 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}

	$Net::Gadu::EVENT_SEARCH_REPLY
		$e->{results}

    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
    $Net::Gadu::EVENT_SEARCH_REPLY

EXAMPLES

        #!/usr/bin/perl
    
        use Net::Gadu; 
        use Data::Dumper;
    
        my $gg = new Net::Gadu(async=>1);
    
        ## LOGIN
        $gg->login("0123456","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();
    	    # Send THANKS to author
    	    $gg->send_message_chat("42112","dziekuje za Net::Gadu");
    	    
    	    # SEARCH INIT
    	    $gg->search("","krzak","","","","male",0);
    	}
    
    	if ($type == $Net::Gadu::EVENT_MSG) {
    	    print $e->{message}." ".$e->{sender}."\n";
    	}
    
    	if ($type == $Net::Gadu::EVENT_SEARCH_REPLY) {
    	    # SEARCH RESULT
    	    print Dumper($e->{results});
    	    $gg->logoff();
    	    exit(1);
    	}
    
    	if ($type == $Net::Gadu::EVENT_ACK) {
    	}
         }
        }

AUTHOR

Marcin Krzy¿anowski, http://krzak.linux.net.pl

LICENCE

Lesser General Public License

SEE ALSO

http://dev.null.pl/ekg/
http://www.gadu-gadu.pl
http://www.gnugadu.org
http://www.hakore.com

1 POD Error

The following errors were encountered while parsing the POD:

Around line 160:

Non-ASCII character seen before =encoding in 'protoko³u'. Assuming CP1252