Mail webatequ.in   Home Home

Elois IRC bot

Elois icon

Elois is a bot (automated user) on IRC, created circa 2005. She can perform some useful tasks, such as currency conversion and looking up time zones. Elois never speaks unless spoken to.

Commands can be given in channel or in a private message and are case-insensitive: you can capitalise them as you wish. They are usually written with a leading exclamation mark, like this: !help. However, if you want to direct a command at Elois specifically — so that other bots don't pick it up — you can say Elois, help or Elois: help.

The restricted commands are only available to Elois' nearest and dearest. Make sure you change the default password in password.txt to something unguessable.

  • Download Elois 1.1.0.0 with data files (1.35 MB) - requires .NET Framework 2.0.
  • See a screenshot of the user interface.

Note: I haven't used Elois since 2007, and it is likely that a few of the commands are broken, because they relied on "screen-scraping" various Web sites whose addresses and page structure might have changed. I might fix these if you nag me; if you fix them yourself, feel free to send me updated code.

Source code

Here's the Elois source code with data files (1.8 MB). It's written in C# for .NET 2.0 and is very object-oriented.

Feel free to reuse parts of Elois if you find them useful, but don't be a jerk and re-release the whole thing with your name on it. I'd appreciate being credited if you use large portions.

Elois incorporates the Thresher IRC library, which is released separately under the GNU GPL licence (with a linking exception), included in the package.

Known issues: a harmless "double disconnection" error; ownership being per host and not per user; lack of flood protection; theoretical race condition with error messages being reported to the wrong user; ownership password stored in plain text (so anyone else using your computer might stumble on it).

General commands

Command

Purpose

Syntax

convert

Converts a value from one measurement unit or world currency to another, e.g. miles to kilometres, or US dollars to British pounds. This command can be abbreviated to conv.

!convert [amount] [from_unit] [to_unit]

dict

Looks up a word in the Merriam-Webster Dictionary.

!dict [word]

domain

Displays the country (or type of organisation) associated with an Internet top-level domain code, or the code associated with a country.

!domain [code]
!domain [country_name]

gem

Displays a random gem, which is a funny or notable comment somebody made in channel. If partial text is specified (such as somebody's nickname), Elois will select a random gem containing that text.

!gem
!gem [partial_text]

gender

Determines how male or female a person's name sounds, based on the frequency of its three-letter sequences in other names.

!gender [name]

help

Displays a help message and list of available commands.

!help

math

Calculates the result of a mathematical expression. The most useful operators are + add, - subtract, * multiply, and / divide. Anything in brackets gets evaluated first.

!math [expression]

newgem

Adds a gem to the list used by the !gem command.

!newgem [text]

rot13

Scrambles the letters of a message so that each letter is rotated thirteen places through the alphabet. This is sometimes used to hide "spoilers", such as solutions to puzzles.

!rot13 [message]

seen

Tells you when Elois last saw a nickname and what the user was doing, or — if no nickname is specified — the last thing Elois saw anyone doing. Supported events are public messages and actions, nickname and topic changes, joining and leaving channels, and quitting IRC.

!seen
!seen [nick]

test

Displays a test message (Hello, world!) to demonstrate that Elois is awake and functioning correctly.

!test

time

Displays the local time on Elois' computer, or — if the name of a major city is specified — the current time in that city.

!time
!time [city]

translate

Translates a message from one language to another. Languages are represented by two-letter codes, and one of them must always be en (English).

!translate [from_lang] [to_lang] [message]

version

Displays information about Elois, including version number, operating system, HTTP user agent string, and how long she has been connected.

!version

weather

Displays the two-day weather forecast for a town or city.

!weather [city]

Restricted commands

Command

Purpose

Syntax

deop

Takes away a user's channel operator status.

!deop [nick]
!deop [channel] [nick]

die

Makes Elois disconnect from IRC. If no reason is specified, your nickname is used as the quit message.

!die
!die [reason]

hop

Leaves the current channel and joins another one.

!hop [channel]
!hop [channel] [password]

join

Joins a channel.

!join [channel]
!join [channel] [password]

kick

Ejects a user from a channel. If no reason is specified, your nickname is used as the kick message.

!kick [nick]
!kick [nick] [reason]
!kick [channel] [nick]
!kick [channel] [nick] [reason]

me

Performs an action.

!me [action]
!me [channel] [action]

msg

Sends a private message to a user.

!msg [nick] [message]

nick

Changes Elois' nickname.

!nick [new_nick]

op

Grants channel operator status to a user.

!op [nick]
!op [channel] [nick]

oper

Grants IRC operator status to Elois. If this succeeds, you can perform IRC operator commands through Elois with !msg OperServ.

!oper [username] [password]

part

Leaves a channel.

!part
!part [channel]

say

Sends a message to the current user or current or specified channel.

!say [message]
!say [channel] [message]

sleep

Prevents Elois from responding to commands in any channel or private message (except the commands die and help) until woken with the wake command.

!sleep

topic

Sets the topic for a channel.

!topic [message]
!topic [channel] [message]

wake

After the sleep command, restores Elois to full responsiveness.

!wake

This page was last updated 280 days ago.

Top Top of page   Home Home