Irc Bot V.2.0

  • Uploaded by: Frank
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Irc Bot V.2.0 as PDF for free.

More details

  • Words: 558
  • Pages: 4
#!/usr/bin/perl # Created by Franc. you're # privmsg it. Right more # than one word, it # JEFF Wanted me to

This is an IRC Bot, it will message back to you as long as now you can only do 'weather oneWord oneWord', if the city has won't work. So yea, this is version 1 of the Bot. make it D:

# 'perl irc -h' for help menu, 'sudo chmod a+x irc' to make it executable using './' system "clear"; print "Internet Relay Chat Bot\n\n"; # The modules you'll need to make this bot work. Download via CPAN. use strict; use Net::IRC; use Term::ANSIColor; use Weather::Underground; use HTML::Parser; use HTML::Tagset; use LWP::UserAgent; open (LOGFILE, ">>logfile.txt"); $SIG{INT} = \&signalint; my $h = @ARGV[0] eq '-h'; shift @ARGV if $h; if($h) { print print print print exit; } my my my my my

color 'bold blue'; "Usage: perl irc \n"; "Example: perl irc bot102928 irc.freenode.net \\#ubuntu\n"; color 'reset';

$irc = new Net::IRC; $date = scalar(localtime); $ircb = shift; $ircs = shift; $ircc = shift;

my $conn = $irc->newconn ( Nick => $ircb, Ircname => $ircb, Server => $ircs ); sub signalint { print color 'bold red'; print STDERR "\nKilled the bot.\n"; print color 'reset'; print LOGFILE "\n\n"; system("reset"); exit;

} sub on_connect { my $self = shift; $self->join($ircc); } sub on_msg { my ($conn, $event) = @_; if($event->{args}[0] =~ /\bcommands\b/i) { print "Checked commands.\n"; print LOGFILE "Checked commands\n"; $conn->privmsg($event->{nick}, "version ; info ; date ; weather help"); }elsif($event->{args}[0] =~ /\bversion\b/i) { print "Checked version.\n"; print LOGFILE "Checked version\n"; $conn->privmsg($event->{nick}, "Version: 2.0A"); }elsif($event->{args}[0] =~ /\binfo\b/i) { print "Checked bot information.\n"; print LOGFILE "Checked bot information\n"; $conn->privmsg($event->{nick}, "Created by Francois, Perl 5."); }elsif($event->{args}[0] =~ /^(-)?\d+\.\d+$/) { print "Entered decimal \(floating-point\) number.\n"; print LOGFILE "Entered decimal \(floating-pointing\) number\n"; $conn->privmsg($event->{nick}, "You entered a floating-point number."); }elsif($event->{args}[0] =~ /^(-)?\d+$/) { print "Entered whole \(integer\) number.\n"; print LOGFILE "Entered whole \(integer\) number\n"; $conn->privmsg($event->{nick}, "You entered an integer number."); }elsif($event->{args}[0] =~ /\b(date|time)\b/i) { print "Date.\n"; print LOGFILE "Checked date\n"; $conn->privmsg($event->{nick}, "The date is $date"); }elsif($event->{args}[0] =~ /^weather(\s+)(\w+)(\s+)(\w+)/i) { print "Weather: '$2, $4'\n"; print LOGFILE "Checked weather for '$2, $4'"; my $weather = Weather::Underground->new ( place => "$2, $4", debug => 0

); my $ref = $weather->get_weather(); my $loc = "$ref->[0]->{place}"; my $upd = "$ref->[0]->{updated}"; my $csc = "$ref->[0]->{conditions}"; my $h = "$ref->[0]->{humidity}\%"; my $temp = "$ref->[0]->{temperature_fahrenheit}F $ref->[0]>{temperature_celsius}C"; my $wind = "$ref->[0]->{wind_direction} $ref->[0]>{wind_kilometersperhour}KPH $ref->[0]->{wind_milesperhour}MPH\)"; $conn->privmsg($event->{nick}, "-----"); $conn->privmsg($event->{nick}, "Location: $loc"); $conn->privmsg($event->{nick}, "\[Sky: $csc\] \[Humidity: $h\] \[Temperature: $temp\] \[Wind: $wind\]"); $conn->privmsg($event->{nick}, "Last updated: $upd"); $conn->privmsg($event->{nick}, "-----"); }elsif($event->{args}[0] =~ /^weather(\s+)help/) { print "Asked for weather help.\n"; print LOGFILE "Asked for weather help\n"; $conn->privmsg($event->{nick}, "Details: Gives you the the weather."); $conn->privmsg($event->{nick}, "Syntax: weather cityname countryname"); $conn->privmsg($event->{nick}, "Example: weather toronto canada"); }elsif($event->{args}[0] =~ /\bhi\b/) { print "Wrote hello to bot.\n"; print LOGFILE "Wrote hello to bot\n"; $conn->privmsg($event->{nick}, "Hello back, type 'commands'"); }else{ print "Typed something that does't exist.\n"; print LOGFILE "Typed something that doesn't exist\n"; $conn->privmsg($event->{nick}, "Command does\'t exist. type 'commands'"); } } sub on_join { my ($self, $event) = @_; my ($channel) = ($event->to)[0]; my $nick = $event->{nick}; $self->privmsg($ircc, "Hello $nick, type '/msg $ircb commands' for help."); } $conn->add_handler('join', \&on_join); $conn->add_global_handler('376', \&on_connect); $conn->add_handler('msg', \&on_msg); print print print print print print

LOGFILE "---- File written: $date ----\n\n"; "--------------------"; "\nBot: $ircb\n"; "IRC Server: $ircs\n"; "IRC Channel: $ircc\n"; "--------------------\n\n";

print "Ctrl+C to terminate script.\n\n"; print color 'bold blue'; print "------IRC Bot Queries------\n"; $irc->start();

Related Documents

Irc Bot V.2.1
June 2020 15
Irc Bot V.2.0
May 2020 16
Irc
November 2019 35
V20.pdf
November 2019 25
Bot
November 2019 29
Bot
May 2020 31

More Documents from "Hai"

Ct-g2175 Panasonic Diagrama
December 2019 36
May 2020 12
Irc Bot V.2.1
June 2020 15
980908_02rev
May 2020 12
Irc Bot V.2.0
May 2020 16