This tale begins a long time ago in a galaxy far far away.

For reasons that seemed good to me at the time, I got an AOL account. I logged on as, and immediately was barraged with "instant messages" from total strangers demanding answers to a small set of same dumb questions.

In self-defense, I acquired the screen name "SJF 1959." My logic was that this would answer the four dumbest questions without requiring any repetitious typing on my part. This did not cut down the barrage of the same ten tedious questions.

So I created a FAQ, with the answers to the ten most popular questions from total strangers, plus a bonus question.

Here is the exact text:

1) Are you single?


2) Are you Jewish?


3) Are you female?


4) How old are you?

You can answer that by subtracting 1959 from the current year.

5) Do you have a GIF?


6) Will you send me your GIF?

Probably not.

7) What do you look like?

Average. Somebody has to score medium on the Conventional Good Looks scale.

8) Are you interested in cybersex?


9) Are you interested in phone sex?


10) Will you date me / sleep with me / marry me?

Really, now! Please slow down.

11) Are you tired of answering these questions?


I still got the same ten tedious questions via "instant message" from total strangers.

So I blocked all incoming "instant messages."

The funniest thing I've ever seen on AOL was the time I coded up a quick AOL bot using the Eliza perl module. It would hang out in a chat room, randomly bother people in an attempt to start conversations, then respond to anything they say in the form of a question. Of course, being AOL, the first thing most people asked were "a/s/l" or "who are you?" or something of that nature (AOL lusers are much more focused on somebody's physical form than "Can you write kernel modules?")

So, the bot managed to piss off most of the people it talked to, but a few AOLers persisted to talk to it most of the day I had it running, and never seemed to notice it wasn't a real person. (and Eliza isn't exactly the smartest AI) One person commented "Your a really stupid AI and whoever coded you is #$#$@$# #%@#@", but (s)he was the only one that seemed to notice. Most people thought it was just a really annoying person.

Anyway, this bot is very primitive and doesn't do much error checking. It picks a new username from its list at each login. Requires the Chatbot::Eliza and AOL::TOC modules. Here's the code: (everything2 munged the brackets, so put the brackets back around anything you see linked here)

use Chatbot::Eliza;
use AOL::TOC;

# seed the random number generator
srand( time ^ ($$ + ($$ << 15)) );    

######### Config stuff

$chatroom = "chat";

$name = listrand(qw( steve123412 bupaintt2 oscope54321 jdsjfdi 
                     voidptr34982 unknown4993));
$pwd = "zxcv";

if ($ARGV) {
        ($name,$pwd) = @ARGV;


$toc = AOL::TOC::new("","",

$chatbot = new Chatbot::Eliza $name;

# Register callbacks
$toc->register_callback("SIGN_ON", \&sign_on);
$toc->register_callback("IM_IN", \&im_in);
$toc->register_callback("CHAT_IN", \&client_chatin);

$toc->connect() or die "Can't connect";

while (1) {
        sleep 1;

sub sign_on {
    msg( "Connected as $name in room $chatroom\n");


# From jaim
sub im_in {
    my ($self) = shift;
    my ($name, $auto, $msg) = split(/:/, "$_:$_1:$_2", 3); 
    # ^ Looks stupid but needed when the $msg has ':' in it    
    # ^ Thanks gorn!
    # v this is for  in the message. it tries to strip it, but 
    # v not very hard
    $msg  =~ s/\<.*?\>//g;
    $name =~ s/\ //g;
    msg("$name: $msg\n");

    $reply = $chatbot->transform($msg);
    msg("To $name: $reply\n");
    sleep 4;

# (CHAT_IN) A new chat message has arrived
sub client_chatin {
    my $self = shift;
    my ($room_id, $nickname, $whisper, $message) = 
         split(/:/, "$_:$_1:$_2:$_3", 4); 
    $message  =~ s/\<.*?\>//g;
    $nickname =~ s/\ //g;
    msg("\<$room_id\> $nickname: $message\n");

    return if (rand()send_im($name,$reply);

sub msg {
    my ($str) = @_;
    $str = localtime()."\t".$str;
    print $str;
    open LOGF,">>aimpsych.log" or die;
    print LOGF $str;
    close LOGF;

sub listrand {
    return $_rand()*($#_+1);

### The End ###

Log in or register to write something here or to contact authors.