Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
344 lines (216 sloc) 7.43 KB

Number Six

Build Status

Number six is a custom IRC bot, developed for student IRC channels at UGent.

Compiling & Running

Begin by installing the library:

cabal configure
cabal build
cabal install

Them, you can get started by copying Sample.hs and starting from there. Configure it, then compile & run using:

`ghc --make Sample.hs`


Handlers are plugins which react to IRC messages. Here, we give a short listing of the available Handlers, together with the commands they provide.


Binary conversions. Commands:

  • !bin decimal: Convert a number number to binary notation
  • !unbin binary: Convert a binary number to decimal notation
  • !hex decimal: Convert a decimal number to hex notation
  • !unhex: Convert a hex number to decimal notation


A cool IRC game.

  • !bomb nick: Attach a bomb to the specified user. This bomb will kick the user in a certain amount of time (a countdown will be visible).
  • !pass: Passes the bomb to the user who placed the bomb. This command can only be issued by the current person owning them bomb.
  • !pass nick: Passes the bomb to the specified user


Ask a question to the wise 8-ball handler. Commands:

  • !8ball question: Ask a question


Provides the latest action of a GitHub user. Commands:

  • !github username: Prints the latest GitHub action of the given user


Check who the gods are on this server, and manage them. Commands:

  • !gods: Show the gods on this server
  • !addgod password: This adds the sender as a god. Obviously, you should run this in a private query.
  • !removegod: Removes you as a god.
  • !removegod pattern: Removes all gods which match the given pattern.


Searches the web using Google. Commands:

  • !google query, !g query: Searches google for query and returns the first link found


Prints the title and link to an item on Hacker News. Commands:

  • !hn number: Prints the item which is currently on the given position on Hacker News.


Test handler, simply greets a user. Commands:

  • !hello: Greet the user


Provides information. Commands:

  • !help: Print help information


Sends an HTTP GET request to a server and returns the status line, useful if you want to check if a web service is down for everyone or just you. Commands:

  • !http uri: Check the given URI


System handler which sets the nickname and the real name of the bot. This handler has no commands.


Lookup a movie on IMDB. Commands:

  • !imdb title: Lookup the given movie.


Insult a user. Commands:

  • !insult user: Insults the given user.


Have the bot join channels. The bot will automatically join the channels specified in the the configuration file. When the bot is kicked out of a channel, this handler will try to rejoin the channel. Commands:

  • !join channel: Join the specified channel


Check what track a user last listened to on Commands:

  • !lastfm username: Print the track the given user last listened to.


Authenticates the bot with NickServ. This handler has no commands.


Show the currently playing track on a radio station. Commands:

  • !nowplaying station: Print the currently playing track on the given radio station

Supported radio stations:


Give channel operator privileges. Commands:

  • !op nick: Given channel operator privileges to the specified user
  • !deop nick: Take away channel operator privileges from the specified user


Pick a random item from a list. Commands:

  • !pick item1 item2 item3 ..., !who ...: Print a random item from the list.


Replies to IRC ping's. This handler has no commands.


Print a random item from a subreddit. Commands:

  • !reddit subreddit: Prints a random item from the given subreddit
  • !reddit subreddit number: Print the given item from the given subreddit
  • !reddit: Print a random item from the front page
  • !reddit number: Print the given item from the front page


Set reminders for yourself. Commands:

  • !remind some note: Store a note
  • !remind: Collect stored notes


Print the menu of today in the Ghent University resto's, see also

  • !resto: Print today's menu
  • !resto day: day can be: morgen, tomorrow, overmorgen, day after tomorrow


Challenge a user to a game of russian roulette. Commands:

  • !rr username: Challenge the specified user


Interface to the epic quote database. Commands:

  • !quote: Prints a random quote
  • !quote id: Prints the quote with the given id
  • !quote pattern: Prints a random quote matching the given pattern
  • !lastquote: Prints the most recently added quote
  • !addquote quote: Adds a quote to the database


Make the bot say arbitrary text. God is required. Commands:

  • !say channel text: Say the given text in the given channel


Check when a user was last seen in the channel. Commands:

  • !seen username: Check when the given user was last seen


Shortens a URL using Commands:

  • !shorten url: Shorten the given URL


When the user greets the bot with sup botname, the bot will respond with sup username.


Send a message to a user who is currently away. Commands:

  • !tell username message: Tell the message to the given user when he becomes active.


Set the channel topic. Only gods may give this command:

  • !topic message: Set the channel topic


Bindings to the haskell evaluation service of Commands:

  • > expression, !haskell expression: Evaluate the given expression


Bindings to the ruby evaluation service of Commands:

  • !ruby expression: Evaluate the given expression


Get either a random tumble from the specified user of his last tumble.

  • !tumblr last username: Print the slug and the URL for the last tumble user posted
  • !tumblr username: Print the slug and the URL from a random tumble made by the user, currently only taking the last 50 into account


Handler to get twitters by id or user. Commands:

  • !twitter username: Prints the last tweet of the given user
  • !twitter id: Prints the tweet with the given id


Lookup an expression on Commands:

  • !urban term: Looks up the given term on urban dictionary


When people join the channel, the bot will give them voice (+v). This can also be set manually, altough this requires god privileges:

  • !voice nick: Give a user voice
  • !devoice nick, !stfu nick: Take voice from a user


How is the fucking weather? Commands:

  • !weather: Prints the weather in Ghent
  • !weather city: Prints the weather in the given city


Lookup a term on wikipedia. Commands:

  • !w term, !wik term, !wiki term: Looks up the given term on wikipedia


Lookup a video on Commands:

  • !youtube term, !y term: Looks for videos related to the given term on youtube