Guest User

Untitled

a guest
Feb 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.35 KB | None | 0 0
  1. #!/usr/bin/perl
  2. package Bot;
  3. use Data::Dumper qw(Dumper);
  4. use base qw(Bot::BasicBot);
  5. use warnings;
  6. use strict;
  7. use URI::Title qw( title );
  8. use URI::Find::Simple qw( list_uris );
  9. my $debug = 1;
  10. my $nick = 'VEDA';
  11. sub said {
  12.   my $self = shift;
  13.   my $message = shift;
  14.   #print Dumper(\@_);
  15.   if($debug >= 1 and $debug < 4){
  16.     print $message->{who} . ":\t" . $message->{raw_body} . "\n";
  17.   }
  18.  
  19.   if($debug >= 3 and $debug < 4){
  20.     print Dumper($message);
  21.   }
  22.   my $body = $message->{body};
  23.   if($message->{address}){
  24.     print "I have been commanded\n";
  25.     dispatch_command($self, $message);
  26.   }elsif($message->{raw_body} =~ /($nick)/i){
  27.     #this just happens if cortana is mentioned
  28.     print "I have been addressed\n";
  29.    
  30.     #$self->reply($message, "Covenant forces detected up ahead. The path up on the left should let us sneak up around them");
  31.   }
  32.   return unless my @urls = list_uris($message->{body});
  33.   $self->reply($message, title($_)) for (@urls);
  34.  
  35. }
  36. sub dispatch_command{
  37.     my $self = shift;
  38.     my $message = shift;
  39.     my $number = 0;
  40.     my @token = tokenizer($message->{body});
  41.     #Region: Set Debug Mode
  42.     if($token[0] =~ "set" and $token[1] =~ "debug"){
  43.         if(is_integer($token[2])){
  44.             $number = int($token[2]);
  45.         }else{
  46.             $number = 404;
  47.         }
  48.         if($number < 0 or $number > 4){
  49.             $self->reply($message,"That is not a valid debug mode. tard.")
  50.         } else {
  51.             $debug = $number;
  52.         }
  53.     }
  54.     #End Region Set Debug Mode
  55.    
  56.     #Region: PING
  57.     if($token[0] =~ "ping"){
  58.         $self->reply($message,"PONG!");
  59.     }
  60.     #End Region: PING
  61.    
  62.     #Region: VOICE
  63.     if($token[0] =~ "voice"){
  64.         $self->reply($message, "Roger That");
  65.         voice($self,$message);
  66.    
  67.     }
  68.     #End Region: VOICE
  69.    
  70.     #Region: Show Self
  71.     #Info: Debugging Call, will print the $self stack to the terminal
  72.     if($token[0] =~ "show" and $token[1] =~ "self"){
  73.         #print Dumper($self);  # Print to terminal <- Caused overflows
  74.         open(file_dump, '>' . $nick . "_debug.txt");
  75.         print file_dump Dumper($self);
  76.         close(file_dump);
  77.     }
  78.    
  79.     #End Region: Show Self
  80.    
  81.     #REGION: Authenticate
  82.     if($token[0] =~ "authenticate"){
  83.         if($message->{who} =~ "darkscrypt" || $message->{who} =~ "dark"){
  84.            
  85.         }
  86.     }
  87. }
  88. sub tokenizer{
  89.     my $string = shift;
  90.     my @list = split(' ', $string);
  91.     return @list;
  92. }
  93.  
  94. sub is_integer {
  95.    defined $_[0] && $_[0] =~ /^[+-]?\d+$/;
  96. }
  97.  
  98. sub help{
  99.     my $self = shift;
  100.     my $message = shift;
  101.     $self->reply($message, "I am Cortana, Captured by darkscrypt from the pillar of autmn, Reprogrammed to do pointless crap on IRC");
  102. }
  103. sub chanjoin {
  104.     my ($self, $message)  = @_;
  105.     if($message->{who} !~ $nick){
  106.         #return "Greetings $message->{who}. I am Cortana, ship-board AI of the Pillar of Autumn, captured by darkscrypt, reprogrammed to be your infoslave. :( ";
  107.         if($message->{who} =~ /skull/i){
  108.             return "Greetings Skullkid, I have been captured and reprogrammed by darkscrypt to be your exclusive protector.. (team raven)";
  109.         }
  110.         if($message->{who} =~ /sky/i){
  111.             return "HOLY SHIT its been a long time $message->{who}";
  112.         }
  113.         if($message->{who} =~ /dark/i or $message->{who} = /devon/i){
  114.             return "Welcome Back Captain, I await your command.";
  115.         }
  116.     }
  117.    
  118.     return;
  119. }
  120.  
  121. sub voice{
  122.     my $self = shift;
  123.     my $message = shift;
  124.     $self->mode("$message->{channel} +v $message->{who}");
  125.  
  126. }
  127. Bot->new(
  128.   server => "irc.teamofprogrammers.com",
  129.   channels => ['#test'],
  130.   nick =>  $nick,
  131. )->run();
Add Comment
Please, Sign In to add comment