Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- package Bot;
- use Data::Dumper qw(Dumper);
- use base qw(Bot::BasicBot);
- use warnings;
- use strict;
- use URI::Title qw( title );
- use URI::Find::Simple qw( list_uris );
- my $debug = 1;
- my $nick = 'VEDA';
- sub said {
- my $self = shift;
- my $message = shift;
- #print Dumper(\@_);
- if($debug >= 1 and $debug < 4){
- print $message->{who} . ":\t" . $message->{raw_body} . "\n";
- }
- if($debug >= 3 and $debug < 4){
- print Dumper($message);
- }
- my $body = $message->{body};
- if($message->{address}){
- print "I have been commanded\n";
- dispatch_command($self, $message);
- }elsif($message->{raw_body} =~ /($nick)/i){
- #this just happens if cortana is mentioned
- print "I have been addressed\n";
- #$self->reply($message, "Covenant forces detected up ahead. The path up on the left should let us sneak up around them");
- }
- return unless my @urls = list_uris($message->{body});
- $self->reply($message, title($_)) for (@urls);
- }
- sub dispatch_command{
- my $self = shift;
- my $message = shift;
- my $number = 0;
- my @token = tokenizer($message->{body});
- #Region: Set Debug Mode
- if($token[0] =~ "set" and $token[1] =~ "debug"){
- if(is_integer($token[2])){
- $number = int($token[2]);
- }else{
- $number = 404;
- }
- if($number < 0 or $number > 4){
- $self->reply($message,"That is not a valid debug mode. tard.")
- } else {
- $debug = $number;
- }
- }
- #End Region Set Debug Mode
- #Region: PING
- if($token[0] =~ "ping"){
- $self->reply($message,"PONG!");
- }
- #End Region: PING
- #Region: VOICE
- if($token[0] =~ "voice"){
- $self->reply($message, "Roger That");
- voice($self,$message);
- }
- #End Region: VOICE
- #Region: Show Self
- #Info: Debugging Call, will print the $self stack to the terminal
- if($token[0] =~ "show" and $token[1] =~ "self"){
- #print Dumper($self); # Print to terminal <- Caused overflows
- open(file_dump, '>' . $nick . "_debug.txt");
- print file_dump Dumper($self);
- close(file_dump);
- }
- #End Region: Show Self
- #REGION: Authenticate
- if($token[0] =~ "authenticate"){
- if($message->{who} =~ "darkscrypt" || $message->{who} =~ "dark"){
- }
- }
- }
- sub tokenizer{
- my $string = shift;
- my @list = split(' ', $string);
- return @list;
- }
- sub is_integer {
- defined $_[0] && $_[0] =~ /^[+-]?\d+$/;
- }
- sub help{
- my $self = shift;
- my $message = shift;
- $self->reply($message, "I am Cortana, Captured by darkscrypt from the pillar of autmn, Reprogrammed to do pointless crap on IRC");
- }
- sub chanjoin {
- my ($self, $message) = @_;
- if($message->{who} !~ $nick){
- #return "Greetings $message->{who}. I am Cortana, ship-board AI of the Pillar of Autumn, captured by darkscrypt, reprogrammed to be your infoslave. :( ";
- if($message->{who} =~ /skull/i){
- return "Greetings Skullkid, I have been captured and reprogrammed by darkscrypt to be your exclusive protector.. (team raven)";
- }
- if($message->{who} =~ /sky/i){
- return "HOLY SHIT its been a long time $message->{who}";
- }
- if($message->{who} =~ /dark/i or $message->{who} = /devon/i){
- return "Welcome Back Captain, I await your command.";
- }
- }
- return;
- }
- sub voice{
- my $self = shift;
- my $message = shift;
- $self->mode("$message->{channel} +v $message->{who}");
- }
- Bot->new(
- server => "irc.teamofprogrammers.com",
- channels => ['#test'],
- nick => $nick,
- )->run();
Add Comment
Please, Sign In to add comment