Skip to content

Instantly share code, notes, and snippets.

@sergioccrr
Created March 15, 2012 15:29
Show Gist options
  • Save sergioccrr/e3ca78229a8db4d93e6f to your computer and use it in GitHub Desktop.
Save sergioccrr/e3ca78229a8db4d93e6f to your computer and use it in GitHub Desktop.
Verdana
#!/usr/bin/perl
use strict;
use IO::Socket;
use LWP::UserAgent;
use HTTP::Request;
### Config
my $SERVER = 'calvino.freenode.net';
my $PORT = 6667;
my $CHANNEL = '#fearnode';
my $NICK = '_Verdana_';
my $PASS = '';
my $GOD = 'Blas';
$SIG{INT} = \&tsktsk;
my ($response, $status, $fkl);
my $socket = IO::Socket::INET->new(
PeerAddr => $SERVER,
PeerPort => $PORT,
Proto => 'tcp',
) or die "Error mortal de la muerte.\n";
&s("NICK $NICK");
&s("USER anonymous 0 * Anonymous User");
while($response = <$socket>) {
####print $response;
# Saludar
if($response =~ /^\:(\S*)\!(\S*)\@(\S*)\sJOIN\s$CHANNEL/) {
&s("PRIVMSG $CHANNEL :hola $1 que tal?");
}
# Solicitar +o
if($status == 1) {
&s("PRIVMSG ChanServ :OP $CHANNEL");
$status = 2;
}
# Ping-Pong
if($response =~ /PING :/) {
&s("PONG $'");
} elsif($response =~ /^\:(\S*)\s376\s$NICK\s/) {
# Identificarse
if($PASS) {
&s("PRIVMSG NickServ :IDENTIFY $PASS");
} else {
&s("JOIN $CHANNEL");
$status = 1;
}
} elsif($response =~ /^\:NickServ\!NickServ\@services\.\sNOTICE\s$NICK\s\:You are now identified for\s/) {
&s("JOIN $CHANNEL");
$status = 1;
} elsif($response =~ /^\:(\S*)\!(\S*)\@(\S*)\sKICK\s$CHANNEL\s$NICK\s\:(.*)/) {
my $user = "$1!$2\@$3";
my $why = $4; chop($why);
print "[Kick] $user ($why)\n";
####die;
# Rejoin
&s("JOIN $CHANNEL");
$status = 1;
} elsif($status and $response =~ /^\:(\S*)\!(\S*)\@(\S*)\sMODE\s$CHANNEL\s\-(v|o)\s$NICK/) {
my $user = "$1!$2\@$3";
my $which = $4;
print "[Modo] $user (-$which)\n";
&s("QUIT :Ahora me enfado y no respiro");
die;
} elsif($status and $response =~ /^\:(\S*)\!(\S*)\@(\S*)\sPRIVMSG\s(\S*)\s\:(.*)/) {
my $nickname = $1; my $username = $2; my $hostname = $3;
my $where = $4; my $what = $5; chop($what);
my $query = ($where eq $NICK) ? 1 : 0;
####print "[Mensaje $query] $nickname - $username - $username - $where :\n";
####print "[>>] $what\n";
# Comando say
if($query == 1 and $nickname eq $GOD and $what =~ /!say(.*)/) {
&s("PRIVMSG $CHANNEL :$1");
next;
}
# Inicializar
if($query == 1) { $where = $nickname; }
my $tmp = ($nickname eq $GOD) ? 'Si' : 'No';
# Primera función
if($what =~ m/(^|\s)no\?(\s|$)/i) {
&s("PRIVMSG $where :[$nickname] $tmp.");
}
# Anti adrinavarrada
if($what =~ m/(^|\s)he follado/i) {
&s("PRIVMSG $where :[$nickname] $tmp.");
if($nickname ne $GOD) {
&s("KICK $where $nickname :Por decir que follas");
}
}
# Spotify
if($what =~ m/http\:\/\/open\.spotify\.com\/track\/(\S*)/i) {
my $track = spotify($1);
$track = "\x02\x0303,00 Spotify \x0f\x02 $track\x02";
&s("PRIVMSG $where :$track");
}
# brutalnazi
if($what =~ /^!brutalnazi$/ and time() > ($fkl + 10)) {
$fkl = time();
&brutalnazi($where);
}
} elsif($status) {
print "[Nidea] $response";
}
}
sub tsktsk {
$SIG{INT} = \&tsktsk;
if($status) {
&s("QUIT :Venga, hasta luego [^C]");
}
die "[^C]";
}
sub s {
print $socket "$_[0]\n";
}
sub spotify {
my $url = "http://ws.spotify.com/lookup/1/?uri=spotify:track:$_[0]";
my $ua = LWP::UserAgent->new;
$ua->agent('Perl Bot');
my $req = HTTP::Request->new(GET => $url);
my $response = $ua->request($req);
my $content = $response->content();
my @tmp;
while($content =~ /\<name\>(.*)\<\/name\>/g) {
push(@tmp, $1);
}
my $out = "$tmp[0] - $tmp[1]\n";
# https://twitter.com/jjontx/status/164106721915179008:
$out =~ s/loquillo/LOQUILLO/gi; # rlz?
return $out;
}
sub brutalnazi {
print $socket "PRIVMSG $_[0] :\x034,4________________________________________________________________\n";
print $socket "PRIVMSG $_[0] :\x034,4_____________________________0,0______4,4_____________________________\n";
print $socket "PRIVMSG $_[0] :\x034,4________________________0,0________________4,4________________________\n";
print $socket "PRIVMSG $_[0] :\x034,4____________________0,0________________________4,4____________________\n";
print $socket "PRIVMSG $_[0] :\x034,4_________________0,0______________________________4,4_________________\n";
print $socket "PRIVMSG $_[0] :\x034,4_______________0,0____1,1______0,0____1,1________________0,0____4,4_______________\n";
print $socket "PRIVMSG $_[0] :\x034,4_____________0,0______1,1______0,0____1,1________________0,0______4,4_____________\n";
print $socket "PRIVMSG $_[0] :\x034,4____________0,0_______1,1______0,0____1,1________________0,0_______4,4____________\n";
print $socket "PRIVMSG $_[0] :\x034,4___________0,0________1,1______0,0____1,1______0,0__________________4,4___________\n";
print $socket "PRIVMSG $_[0] :\x034,4___________0,0________1,1______0,0____1,1______0,0__________________4,4___________\n";
print $socket "PRIVMSG $_[0] :\x034,4__________0,0_________1,1__________________________0,0_________4,4__________\n";
print $socket "PRIVMSG $_[0] :\x034,4__________0,0_________1,1__________________________0,0_________4,4__________\n";
sleep(3);
print $socket "PRIVMSG $_[0] :\x034,4__________0,0_________1,1__________________________0,0_________4,4__________\n";
print $socket "PRIVMSG $_[0] :\x034,4___________0,0________0,0__________1,1______0,0____1,1______0,0________4,4___________\n";
print $socket "PRIVMSG $_[0] :\x034,4___________0,0________0,0__________1,1______0,0____1,1______0,0________4,4___________\n";
print $socket "PRIVMSG $_[0] :\x034,4____________0,0_______1,1________________0,0____1,1______0,0_______4,4____________\n";
print $socket "PRIVMSG $_[0] :\x034,4_____________0,0______1,1________________0,0____1,1______0,0______4,4_____________\n";
print $socket "PRIVMSG $_[0] :\x034,4_______________0,0____1,1________________0,0____1,1______0,0____4,4_______________\n";
print $socket "PRIVMSG $_[0] :\x034,4_________________0,0______________________________4,4_________________\n";
print $socket "PRIVMSG $_[0] :\x034,4____________________0,0________________________4,4____________________\n";
print $socket "PRIVMSG $_[0] :\x034,4________________________0,0________________4,4________________________\n";
print $socket "PRIVMSG $_[0] :\x034,4_____________________________0,0______4,4_____________________________\n";
print $socket "PRIVMSG $_[0] :\x034,4________________________________________________________________\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment