rendered paste body#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket;
use Switch;
use Cwd;
use XML::RSS::Feed;
use LWP::Simple qw(get);
use threads;
my $cwd = getcwd;
my $tmpdir = $cwd . "/tmp";
my $peeraddr = "irc.freenode.net";
my $peerport = 6667;
my $nick = "Paw2";
my $user = "caca";
my $realname = "rocks";
my $chan = "#zork";
my $socket = new IO::Socket::INET(PeerAddr => $peeraddr,
PeerPort => $peerport,
Proto => 'tcp') or die "Couldn't connect!\n";
print $socket "NICK $nick\r\n";
print $socket "USER $user 65.34.212.49 $peeraddr $realname\r\n";
while (my $input = <$socket>) {
my @word = $input;
my $elements = scalar(@word);
my $server = $socket->peerhost;
print "$input\n";
if ( $input =~ /^PING/ ) {
print $socket ("PONG :$peeraddr\r\n");
}
if ((index $input, " 376 ") ne -1) { print "Conectado a $server - entrando a canales..\n"; print $socket "JOIN #ZOrK\n"; my $thread = threads->create(\&activate_feeds, $chan, $socket); $thread->detach(); }
undef @word;
}
sub activate_feeds {
my $socket = $_[1];
my $chan = $_[0];
my $feed = XML::RSS::Feed->new(
url => "http://mitworld.mit.edu/rss/new.xml" ,
name => $nick . "rsstemp",
delay => 10,
tmpdir => $tmpdir,
debug => 0,
);
$feed->pre_process;
$feed->max_headlines( 2 );
$feed->parse(get($feed->url));
print "$_->headline\n" for $feed->late_breaking_news;
print $socket "PRIVMSG :$chan $_->headline\n" for $feed->late_breaking_news;
print $socket "PRIVMSG :$chan hola!\r\n";
}