IRC bot

From Bob's Basement

Jump to: navigation, search

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.

Personal tools