You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
Perl
64 lines
1.7 KiB
Perl
4 years ago
|
# Infobot user extension stubs
|
||
|
# Kevin A. Lenzo
|
||
|
|
||
|
# put your routines in here.
|
||
|
|
||
|
@howAreYa = ("just great", "peachy", "mas o menos",
|
||
|
"you know how it is", "eh, ok", "pretty good. how about you");
|
||
|
|
||
|
sub myRoutines {
|
||
|
# called after it decides if it's been addressed.
|
||
|
# you have access tothe global variables here,
|
||
|
# which is bad, but anyway.
|
||
|
|
||
|
# you can return 'NOREPLY' if you want to stop
|
||
|
# processing past this point but don't want
|
||
|
# an answer. if you don't return NOREPLY, it
|
||
|
# will let all the rest of the default processing
|
||
|
# go to it. think of it as 'catching' the event.
|
||
|
|
||
|
# $addressed is whether the infobot has been
|
||
|
# named or, if a private or standalone
|
||
|
# context, addressed is always 'true'
|
||
|
|
||
|
# $msgType can be 'public', 'private', maybe 'dcc_chat'
|
||
|
|
||
|
# $who is the sender of the message
|
||
|
|
||
|
# $message is the current state of the input, after
|
||
|
# the addressing stuff stripped off the name
|
||
|
|
||
|
# $origMessage is the text of the original message before
|
||
|
# any normalization or processing
|
||
|
|
||
|
# you have access to all the routines in urlIrc.pl too,
|
||
|
# of course.
|
||
|
|
||
|
# example:
|
||
|
|
||
|
if ($addressed) {
|
||
|
# only if the infobot is addressed
|
||
|
if ($message =~ /how (the hell )?are (ya|you)( doin\'?g?)?\?*$/) {
|
||
|
return $howAreYa[rand($#howAreYa)];
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
# we haven't been addressed, but we are still listening
|
||
|
}
|
||
|
|
||
|
# another example: rot13
|
||
|
|
||
|
if ($message =~ /^rot13\s+(.*)/i) {
|
||
|
# rot13 it
|
||
|
my $reply = $1;
|
||
|
$reply =~ y/A-Za-z/N-ZA-Mn-za-m/;
|
||
|
return $reply;
|
||
|
}
|
||
|
|
||
|
return undef; # do nothing and let the other routines have a go
|
||
|
# Extras.pl is called next; look there for more complex examples.
|
||
|
}
|
||
|
|
||
|
1;
|
||
|
|