Created
March 15, 2012 15:29
-
-
Save sergioccrr/e3ca78229a8db4d93e6f to your computer and use it in GitHub Desktop.
Verdana
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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