ďťż

Ładny brzuch

Witam. Napisałem bota dla Gadu Gadu. Po otrzymaniu wiadomości ma on wysyłać najnowsze wyniki LOTTO. I wysyła. Problem w tym, że po kilku minutach działania bot rozłącza się, i nie reaguje na zdarzenie $Net::Gadu::EVENT_DISCONNECT. Czy ktoś ma pomysł co tu jest źle ? Kod zamieszczam poniżej.
#!/usr/bin/perl use Net::Gadu; use LWP; $lista =""; $url = 'http://www.wyniki-lotto.w.activ.pl/index.php?game=0&arch=0'; $agent = LWP::UserAgent->new; $request = HTTP::Request->new(GET => $url); $response = $agent->request($request); $response->is_success or die "$url: ", $response->message, "\n"; @plik = split(/\n/, $response->content); foreach(@plik) { if(m|\d\d.\d\d.\d\d\d\d r.|) { @a = split(/<br>/); $a[2] =~ s|<b>||; $a[2] =~ s|</b>||; $lista .= "Wyniki Duzego Lotka z dnia $a[2]: $a[3]\n"; } } $url = 'http://www.wyniki-lotto.w.activ.pl/index.php?game=1&arch=0'; $agent = LWP::UserAgent->new; $request = HTTP::Request->new(GET => $url); $response = $agent->request($request); $response->is_success or die "$url: ", $response->message, "\n"; @plik = split(/\n/, $response->content); foreach(@plik) { if(m|\d\d.\d\d.\d\d\d\d r.|) { @a = split(/<br>/); $a[2] =~ s|<b>||; $a[2] =~ s|</b>||; $lista .= "Wyniki Multi Lotka z dnia $a[2]: $a[3] \n"; } } $url = 'http://www.wyniki-lotto.w.activ.pl/index.php?game=2&arch=0'; $agent = LWP::UserAgent->new; $request = HTTP::Request->new(GET => $url); $response = $agent->request($request); $response->is_success or die "$url: ", $response->message, "\n"; @plik = split(/\n/, $response->content); foreach(@plik) { if(m|\d\d.\d\d.\d\d\d\d r.|) { @a = split(/<br>/); $a[2] =~ s|<b>||; $a[2] =~ s|</b>||; $lista .= "Wyniki Numerka z dnia $a[2]: $a[3] \n"; } } $url = 'http://www.wyniki-lotto.w.activ.pl/index.php?game=3&arch=0'; $agent = LWP::UserAgent->new; $request = HTTP::Request->new(GET => $url); $response = $agent->request($request); $response->is_success or die "$url: ", $response->message, "\n"; @plik = split(/\n/, $response->content); foreach(@plik) { if(m|\d\d.\d\d.\d\d\d\d r.|) { @a = split(/<br>/); $a[2] =~ s|<b>||; $a[2] =~ s|</b>||; $lista .= "Wyniki Express Lotka z dnia $a[2]: $a[3] \n"; } } print $lista; my $gg = new Net::Gadu(async=>0); print "Lacze...\n"; $gg->login("numer", "tu_wpisz_haslo") or die "Login error\n"; while(1) { while($gg->check_event() == 1) { $e = $gg->get_event(); $type = $e->{type}; if($type == $Net::Gadu::EVENT_CONN_FAILED){ die "Connection failed\n"; } if($type == $Net::Gadu::EVENT_CONN_SUCCESS){ $gg->set_available(); } if ($type == $Net::Gadu::EVENT_MSG) { print $e->{message}." ".$e->{sender}."\n"; if(!$gg->send_message_chat($e->{sender}, $lista)) { die "Nie udalo sie wyslac\n"; } } if($type == $Net::Gadu::EVENT_DISCONNECT){ die "rozlaczylo :P\n"; } if($type == Net::Gadu::EVENT_ACK){ } } }
Użytkownik Balcerowicz edytował ten post 20 listopad 2005, 17:59


Nie chce mi sie czytac kodu i szukac bledu, ale jesli rozlacza ci sie po kilku minutach to chyba wiem co moze byc nie tak. Otoz gg co jakistam czas wysyla pakiet sygnalizujacy, ze klient jest dalej polaczony. Jesli nie zostanie owy pakiet wyslany serwer rozlacza sie z klietnem :)

//edit- literowki :P
Użytkownik Kajetanek edytował ten post 20 listopad 2005, 18:30
gdyby nie to, że nie chce mi sie wychodzić z domu, to bym cię uściskał :) Wielkie dzięki !!
P.S. Pakiet do serwera wysyłamy komendą $gg->ping();

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •