IRC bot
From Bob's Basement
Project Inception: 23rd June, 2007
Status: In development
Project Leader: BOfH
Contents |
Introduction
I decided it would be nice if the Bob's Basement IRC channel had its own Bot, so I'm working on a PERL based Bot called Jam. The lastest dev version lives in #bb-dev on irc://irc.hackervoice.co.uk and the production release lives in #bobsbasement on irc://irc.hackervoice.co.uk. For more information on develpoment, see the development diary.
Features
Weather
!weather <id>
Gives a summary of the weather for the next three days.
!temp <id>
Gives the maximum and minimum temperatures for the next three days in Celsius and Fahrenheit.
!miscweather <id>
Gives a more detailed report on the weather for the next three days.
!sun <id>
Gives the sunrise and sunset times for the next three days.
The ID is the weather ID from the BBC online forecast from http://www.bbc.co.uk/weather/.
The ID can be found from the URL http://www.bbc.co.uk/cgi-perl/weather/search/new_search.pl?search_query=$url where $url is a postcode, city or country. The returned page is a redirect to a page using the station ID.
News
!breaking news
Gives you breaking news from the BBC.
Remind me
!remind me in <number> <units> to <message>
!remind me in 10 minutes Crash HR server
Times supported: minutes, hours, days, weeks, months
You can have 20 reminders active at any one time.
If the Bot restarts you loose all your reminders :-)
Tiny URL
!tiny <url>
PM the bot a URL and it will be posted into channel as a tinyurl.
Rot13 encrypter
!rot13 <text>
Encrypts and decrypts the text with the rot13 algorithm.
Seen
!seen <nick>
Tells you when the nick was last seen to speak. At the moment this does not count joining the channel or any other actions other than speaking to be considered "seen". This needs some work.
syslog
The bot now has an internal system logger. Hopefully this should aid with diagnosing problems.
irclog
The bot now has channel logging to log the channel to a web page. This is still under development. If you fancy doing a bit of decorating to the existing lame attempt, please polish up www.bobsbasement.co.uk/~jam/200785.html and send me the resulting art work and I will incorporate it into the bot.
stats
!stats <nick>
Provides statistics on a user. Currently the number f characters they have typed.
tell
!tell <nick> <message>
Gives a message to the user when they are next seen to be active.
Mailing list alerts
Jam now shouts up in the IRC channel when someone posts to the mailing list
Geocache updates
Bob's Basement placed four geocaches and let four travel bugs out into the wild. The bot shouts up when they move!
Tube alerts
Jam can send you updates on your chosen Tube lines via PM. The commands are:
!tfl alert <line>
!tfl remove <line>
I'll leave it to your imagination which turns them on and which turns them off. The bot is rather fussy about the line names, so make sure they are in full and with capitals. The following command will give a full report with names:
!tfl
News headlines
You can get BBC news headlines with:
!news
Current weather
You can get the current weather data with two commands:
!current weather <id>
!current misc weather <id>
Where the weather ID is the BBC weather ID
Resistor colour code data
Jam can convert resistor colour codes to numbers and vice versa
!res col <value><unit> <tolerance>%
!res col 47K 5%
!res num <Colour1> <Colour2> <Colour3> <Colour4> [<Colour5>] !res num Orange Orange Brown Gold
Wishlist
Fill in with your feature requests. For more information, see the Wishlist.
Subversion commit notifications
Wiki stats
Remind group about things (meetings, other events and stuff)
Maybe a basic directory? i.e. email addresses for members?
Help system
Poke
Subnet calculator
Stats webpage
Binary/Octal/Decimal/Hex converter
Ping
Dictionary
Topic changer to update the IRC meetings
Fortune
Server monitoring
Wiki update monitoring
Google "I'm feeling lucky"
Interact with Google calendar
Resistor colour code calculator
!idea frontend
Send to mailing list feature
Read mailing list feature
ASCII converter
Say no to 0870 frontend
Earthquake updates
Phase of the moon from http://interglacial.com/rss/moon_phase.rss
Tower bridge lifts
V = IR calculator
Backend work
Daemonise
Reloading
Bug fixes and code improvements
Remind me
Maybe move into main channel. Maybe not.
Reminder save file is buggy
syslog
Need to log more events in the code.
IRC log
Need to drastically improve the log output and also log actions and events.
Mailing list notifications
Change this to record statics about mailing list usage.
Saving to disk
Saving reminders, etc to disk
Jabber bork
If the Jabber server becomes unreachable, the bot will crash
Resistor colour code
This needs tidying up a bit. Some rounding of large numbers as well as some spaces. Might laos add support for 6 band resistors.
Socket interface
Change authentication from files to kerberos and remove redundant code
Jabber intergration
!tell and !remind
Breaking news, TFL and Tower Bridge alerts
Make Jam aware of which Jabber users are online.

