Updated November 12, 2009
E2D2 is a chatterbox bot written in C# by in10se. He is named after the lovable droid from Star Wars, R2-D21. While he was lurking in the catbox for about a week or so before this, he said his first words in the catbox on May 8, 2009 by giving a karma update. Creating a bot was something I wanted to do long before the days of Donginger, but Senso got to it first, and more than one bot on E2 is too many. Now that Mr. Don Ginger is gone (may he rest in peace), perhaps there is room for someone new.
View his homenode which includes a lovely picture of him, or view the E2 Annex to find him on a world map.
Features
While you're not going to get him to randomly change your words to dong or butt, E2D2 has most of the other features that Donginger had, plus several new ones.
In general, there are two ways to get him to speak:
(NOTE: E2D2 is case in-sensitive which means it doesn't matter if you use upper case or lower case when you write something to him)
Say something to him
Start your message with e2d2 followed by a command (see below)
Say something about him
By mentioning his name (i.e., other than at the beginning of your message), there is about a 10% chance that he will respond
Commands
Commands About Users
e2d2 random
This will return a random quote (from any user).
e2d2 random {username}
This will return a random quote from the specified user. Aliases are supported (see below).
e2d2 {username} vs {username} (or v, v., vs.)
Will display one random quote from each user. Aliases are supported. (See also "{anything} vs {anything}" below)
e2d2 what would {username} say (or summarize {username}, summarise {username})
This will generate a random Markov Chain based on everything said by the specified noder. Aliases are supported (see below).
e2d2 what would {USERNAME} say about {WORD OR PHRASE}
Very similar to the "e2d2 what would {USERNAME} say" command, only this command will generate a markov chain from catbox messages by the user which only include that word or phrase
e2d2 what are people saying about me (or what's been said about me)
This will return a Markov Chain based on all the messages that mention your username. It is basically the same as the command below, only you don't have to type your own username. Aliases are supported (see below).
e2d2 what are people saying about {username} (or what's been said about {username}, tell me about {username})
Similar to the command above, only this will tell you about someone other than yourself. Aliases are supported (see below).
e2d2 add alias {your alias}
This command comes in handy for noders who have aliases, nicknames, or shortened names that people use to refer to them in the catbox. You can only add an alias to yourself. Be careful about that the aliases you add to yourself aren't parts of common words or you might not get the results you wanted. Commands that support aliases are listed above.
e2d2 remove alias {your alias}
If you have added an alias to yourself, and want to remove it just use this command.
Commands About Nodes/Writeups
e2d2 tell me about [node title] (or tell us about [node title])
By asking this question with a traditional hard or pipe link, he will generate a random markov chain from the node (if it exists). If it doesn't exist, he will look through his catbox archive and generate something from there. If he can't find it there, there's no telling what he'll say...
e2d2 random nodeshell
Will return a random nodeshell (who would have guessed?)
e2d2 good bad ugly (actually just mentioning 'good', 'bad' and 'ugly' in that order will work such as 'e2d2 list the good the bad and the ugly')
Will list the good (a link to a node which contains a writeup with a high reputation), the bad (a link to a node which contains a writeup with a low reputation), and the ugly (a link to a node which contains a writeup with a lot of votes, but a reputation close to 0).
Other Commands
e2d2 anything vs anything
You can now do 'vs' with anything (not just two users). By default, it will look for users/aliases first, but if not found, it will return markoved catbox or node quotes instead. (See also {username} vs {username} above)
/egg e2d2 (or you can use any of the other egg commands {/omelet, /anvil, /hug, /maul, /rubberchicken, etc})
Egging him will result in a quote from the robot in I hate this god damn robot by artman2003, or funny quote from some other fictional robot or computer. Labia.
e2d2 {anything}
E2D2 has become a full-fledged chatterbox (based on Eliza). Unfortunately, when I turned this feature on, there were so many people chatting with him (and therefore so many responses from him), that he tended to dominate the conversation. I have therefore scaled this feature back, and he will only respond in an Eliza-type manner 25 times. After that he will only respond to the "normal" commands until 250 non-E2D2 messages have been said in the catbox. After these 250 messages have occurred, the Eliza feature will turn back on. Rinse, lather, repeat.
e2d2 karma {word or phrase}2
E2D2 will track "++" and "--" typed into the catbox. This command will tell you the total "karma" of the specified word or phrase (see below).
e2d2 topic (or what's going on, what's happening, summarize, summarise)
This will generate a random Markov Chain based on the last 1000 things said in the catbox
{anything} e2d2 {anything} (i.e., mentioning the bot's name)
By typing the bot's name, there will be a 10% chance that he will respond.
Additional Features (that aren't commands)
Added dozens of new quotes and references famous robots and computers from TV, movies, and books that he will use if he's got no answer to your command or question. References from Futurama, Bladerunner, 2001, Star Wars, Star Trek, Lost in Space, and more. Have some suggestions? /msg me
* catches common typos of his name
Karma Tracking2
E2D2 will track all "++"s and "--"s used in the catbox. You do not have to specify "e2d2" before using ++ or --. Please note however that multi-word phrases must be surrounded by parenthesis or hard linked for the bot to know you are talking about the whole group of words rather than just the single word that comes before the symbols. Aliases are supported.
Random stuff, hidden stuff, easter eggs, etc.
e2d2 process my writeups
He will download all your writeups, and generate a new writeup based on all of them using Markov Chains. Please note that this process may take quite some time to complete - especially if is your first request, or if there are people in line ahead of you. You may make this request as many times as you want (and each writeup will be different), however, please note that making multiple requests when you are already in the queue will automatically push you to the end of the line.
NOTE FROM in10se: Technically, this feature still works, but it is not fully automated, so I don't really have a lot of extra time to copy the text files E2D2 generates into his scratch pads, wait for you guys to pick your paragraphs, and post them. If you are *REALLY* interested, feel free to /msg me, and I'll see if I can work it in...
Examples:
BookReader |
Dimview |
Hatshepsut |
in10se |
Nadine_2 |
The Custodian |
wertperch |
Add yours here | more in E2D2's scratch pads
More to come...
I'd like to get him to respond to private messages, but there does not seem to be a priority on that at the moment.
Technical Information
E2D2 was coded in Visual Studio 2008, and uses a SQL Server 2005 Express backend. The basic concept for the Markov Chains was taken from the original Mark V. Shaney algorithm, however it was substantially changed to handle punctuation better, and specific code was added to handle hard/pipe links (which still isn't quite perfect). It also gives preference to the most recent chatterbox conversation and commonly used words, so his responses are generally "on topic" (or as much on topic as anyone else is).
Suggestions, Bugs, Comments, etc.?
I'd be happy to hear them. I don't mind complaints or critiques either. Just /msg me.
1 ...not, as has been suggested in the catbox, Everything2, Donginger2
2 Trying to increase your own karma or asking for your own karma will decrease it by 1.