Number six is a custom IRC bot, developed for student IRC channels at UGent.
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:
!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 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: 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 https://github.com/blackskad/Resto-menu
!resto: Print today's menu!resto day:daycan 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 bit.ly. 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 tryhaskell.org. Commands:
> expression,!haskell expression: Evaluate the given expression
Bindings to the ruby evaluation service of tryruby.org. Commands:
@ expression,!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!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 youtube.com. Commands:
!youtube term, !y term: Looks for videos related to the given term on youtube
