#!usr/bin/env perl use Tk; use common::sense; use WWW::Mechanize; use WWW::Mechanize::DecodedContent; use JSON -support_by_pp; use HTTP::Cookies; use URI::Escape; my $mw = new MainWindow(-background => 'blue'); $mw->geometry("600x400"); $mw->minsize(qw(400 650)); $mw->maxsize(qw(800 750)); $mw->title("Invaders External ShoutBox"); my $getmsg = $mw -> Frame(-background => 'red', -relief=>'raised', -borderwidth=>1, ) ->place(-x =>70, -y =>25); my $gmsg = $getmsg->Scrolled ('Text', -width=> 60, -height => 20, -background => 'black', -foreground => 'green')->pack; $gmsg->insert('end',"Start External ShoutBox...\nInVaDeRs\n"); my $putmsg = $mw -> Frame(-background => 'red', -relief=>'raised', -borderwidth=>1, ) ->place(-x => 70, -y => 450); my $pmsg = $putmsg->Scrolled ('Text', -width=> 60, -height => 5, -background => 'black', -foreground => 'green')->pack; $pmsg->insert('end',"..."); my $url = WWW::Mechanize->new(); $url->get("http://www.forum-invaders.com.br/vb/login.php"); $url->submit_form( fields => { vb_login_username => 'login', vb_login_password => 'password', } ); if($url->decoded_content !~ /Bem-vindo/gi){$gmsg->insert('end', "Loggin Error\n");} else {$gmsg->insert('end', "Login OK!\n");} my $work = 1; my @old; my $num = 0; while ($work == 1){ my $r = $url->get("http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2"); my $json = JSON->new->relaxed; my $s = $json->decode($r->decoded_content); my $msg = $s->{"shouts"}->{0}->{"message_raw"}; my $user = $s->{"shouts"}->{0}->{"musername"}; my $name; if ($user =~ />(.+)<\/span/gi) {$name = $1;} else {$name = $user} my $now = join(" => ", $name, $msg) . "\n"; if ($num == 0){ $gmsg->insert('end', $now); push (@old, $now); $num++; } elsif($old[$num - 1] ne $now){ $gmsg->insert('end', $now); push (@old, $now); $num++; } } MainLoop;