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` `./Sample`
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
Manage Atom/RSS feed subscriptions. New items will be printed to the IRC channel.
!feed add http://example.com/rss.xml: Subscribe to a feed
!feed remove http://example.com/rss.xml: Unsubscribe from a feed
!feed list: List subscribed feeds
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:
!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 last.fm. 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 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 https://github.com/blackskad/Resto-menu
!resto: Print today's menu
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 bit.ly. Commands:
!shorten url: Shorten the given URL
When the user greets the bot with
sup botname, the bot will respond with
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 tryhaskell.org. Commands:
!haskell expression: Evaluate the given expression
Bindings to the ruby evaluation service of tryruby.org. 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 urbandictionary.com. 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
!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 youtube.com. Commands:
!youtube term, !y term: Looks for videos related to the given term on youtube