From
[email protected] Mon Jun 21 07:29:38 1993
Received: from UCS.ORST.EDU by feenix.metronet.com with SMTP id AA19111
(5.65c/feenix for <
[email protected]>); Mon, 21 Jun 1993 16:29:41 -0500
Return-Path: <
[email protected]>
Received: by ucs.orst.edu (5.57/fma-120691);
id AA27771; Mon, 21 Jun 93 14:29:38 -0700
From:
[email protected] (its MR. DAVO to you...)
Message-Id: <
[email protected]>
Subject: Re: A C bot.
To:
[email protected] (Bill Middleton)
Date: Mon, 21 Jun 93 14:29:38 PDT
In-Reply-To: <
[email protected]>; from "Bill Middleton" at Jun 21, 93 4:28 pm
X-Mailer: ELM [version 2.3 PL11]
Status: OR
Okeydokey, here it is. Any questions, just ask :)
---
$| = 1;
warn("Dbot2---nicknamed scary");
while(<>) {
warn("$_");
if (/End of \/MOTD command\./) {
last;
}
if (/Henson/) {
exit(-1);
}
}
warn("Motd finished.\n");
print( "/join #test\n" );
warn("Join issued.\n");
while(<>) {
if ( /has joined/ ) {
last;
}
}
warn("Join complete. Now monitoring traffic...");
$regs="false";
$master="";
$pubs="true";
$noop="false";
while(<>) {
chop;
if ( /<(.+)> (.*)/ ) {
$nick=$1;
$text=$2;
$type="public";
&pubhandl($nick,$text);
}
if ( /\*(.+)\* (.*)/ ) {
$nick=$1;
$text=$2;
$type="private";
&privhandl($nick,$text);
}
if ( /\*\*\* (.+) (.+) has joined channel (.+)/ ) {
$nick=$1;
$login=$2;
$channel=$3;
&joinhandl($nick,$login,$channel);
}
if ( /\*\*\* Mode change "(.+) (.+)" on channel (.+) by (.+)/ ) {
$typ=$1;
$nick=$2;
$channel=$3;
&modehandl($typ,$nick,$channel);
}
}
sub privhandl {
local($nick,$text)=@_;
if ($nick eq $master) {
if ($regs eq "true") {
if ($text =~ /join (.+)/ ) {
print("/join $1\n");
}
if ($text =~ /gone/ ) {
print("/quit\n");
}
if ($text =~ /akick (.+) (.+)/) {
$anik=$1;
$akik=$2;
print("/notice $master Autokick on $anik!$akik...\n");
}
if ($text =~ /pubon/) {
$pubs="true";
print("/notice $master Public messages on.\n");
}
if ($text =~ /ops/) {
$noop="false";
print("/notice $master Ops Allowed.\n");
}
if ($text =~ /noop/) {
$noop="true";
print("/notice $master No ops allowed.\n");
}
if($text =~ /leave (.+)/) {
print("/leave $1\n");
}
if ($text =~ /dereg/) {
print("/notice $master De registering...\n");
$master="";
$regs="false";
}
}
} else {
if ($text =~ /pass (.+)/) {
if ($1 eq "k7uyx") {
print("/notice $master Access gone:$nick\n");
$master=$nick;
$regs="true";
print("/notice $nick You have full access.\n");
} else {
print("/notice $master Access try:$nick\n");
print("/notice $nick Access denied.\n");
}
}
if ($text =~ /nopubs/) {
$pubs="false";
print("/notice $nick Now not talking to channel.\n");
print("/notice $master Nopubs turned on by $nick.\n");
}
if ($text =~ /help/) {
print("/notice $nick --- Welcome to DbotII (Dbot2).\n");
print("/notice $nick --- There is no current help facility.\n");
}
if ($text =~ /poem (.+)/ ) {
print("/notice $nick Sending poem to $1...\n");
print("/notice $1 $nick sends you the following poem:\n");
&poem($1);
}
}
}
sub joinhandl {
local($nick,$login,$channel)=@_;
if ($nick eq "davo" ) {
if ($login eq "(
[email protected])" ) {
print("/mode $channel +o $nick\n");
} else {
print("/notice $channel The person nicknamed ``davo'' who is\n");
print("/notice $channel on this channel is not the real davo\n");
print("/notice $channel Please beware that any actions the davo\n");
print("/notice $channel on this channel takes, the real davo\n");
print("/notice $channel is not responsible for.\n");
}
}
if ($login eq "(
[email protected])") {
print("/mode $channel +o $nick\n");
}
if (($login eq $akik) || ($nick eq $anik)) {
print("/kick $channel $nick\n");
}
}
sub modehandl {
local($typ,$nick,$channel)=@_;
if (($typ eq "+o") && ($noop eq "true")) {
printf("/mode $channel -o $nick\n");
}
}
sub pubhandl {
local($nick,$text)=@_;
if ($pubs eq "true") {
if ($text =~ /scary/) {
if ($text =~ /hello/) {
print("Hi there, $nick!\n");
}
if (($text =~ /master/) || ($text =~ /owns/) || ($text =~/owner/)) {
print("Davo owns me!\n");
}
if (($text =~ /shut up/) || ($text =~ /die/)) {
print("My public responses my be stopped by typing /msg scary nopubs\n");
}
if (($text =~ /who/) || ($text =~ /what/)) {
print("/notice $channel This is Dbot II, currently nicknamed scary.\n");
print("/notice $channel I am owned by David Noor,
[email protected],\n");
print("/notice $channel IRC nickname ``davo''.\n");
}
}
}
}
sub poem {
local($nick)=@_;
$a=&rst(19,"adjects");
$n=&rst(19,"nouns");
$v=&rst(19,"verbs");
print("/notice $nick $a $n $v\n");
$a=&rst(19,"adjects");
$n=&rst(19,"nouns");
$v=&rst(19,"verbs");
print("/notice $nick as $a $n $v.\n");
}
sub rst {
local($times,$fname)=@_;
open(fhandl,$fname);
$tot=int(rand($times))+1;
$ctr=1;
while($ctr!=$tot) {
$ctr++;
$stng=<fhandl>;
chop $stng;
}
close(fhandl);
return $stng;
}
---
David Noor
[email protected]