#!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; use Net::XMPP; sub getxmpp { my $mech = WWW::Mechanize->new( cookie_jar => {} ); $mech->agent_alias( 'Windows IE 6' ); $mech->add_header('Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8' ); $mech->add_header('X-Requested-With' => 'XMLHttpRequest' ); my ( $self, $event ) = @_; my $nick = shift; my $loginpost = $mech->post( 'http://www.quakelive.com/user/login', { u => 'email@domain.com', p => 'meinpass', r => '0', } ); $mech->get("http://www.quakelive.com/user/load"); my $site = $mech->content(); if($site =~/".+XAID":"(.+)","STATUS/){ return $1; } else { print "fail"; } } sub xmppconnect { my $connection = Net::XMPP::Client->new(); my $xmpp = getxmpp(); $connection->Connect( hostname => 'xmpp.quakelive.com') or die "Cannot connect ($!)\n"; my @result = $connection->AuthSend( "username" => 'qlstats', "password" => $xmpp, "resource" => 'quakelive'); if ($result[0] ne "ok") { die "Ident/Auth with server failed: $result[0] - $result[1]\n"; } # $connection->PresenceSend(); my $message = Net::XMPP::Message->new(); $message->SetMessage( "to" => 'Mindfoo\@xmpp.quakelive.com', "type" => "chat", "body" => "testmsg from script"); $connection->Send($message) or die "Cant send msg!\n"; sleep(2); $connection->Disconnect(); } xmppconnect();