« If only I spoke Hovito | Main | Installing Fedora Core 5 on a Packard Bell iMedia 2559 »

May 14, 2006

Sharing "seen" data between IRC bots

I'm on a number of IRC channels each (theoretically) devoted to some kind of topic or other. There's a lot of overlap between them in terms of membership, and some of them also share utility bots, even occasionally across different networks. However, it's not perfect. Two channels I'm on are #london.pm (the channel for the London Perl Mongers) and #perl (AKA "THE #perl"), both part of irc.perl.org, and which have a high crossover percentage with each other for obvious reasons.

It's common practice to find out when someone was last around by asking one of the bots "seen Somebody?" - the bot will then respond something like "Somebody was last seen on #perl 3 days, 7 hours, 52 minutes ago saying 'You what?'" This, however, is limited to a per-channel basis for the two bots. If Somebody was in #perl three days ago but hasn't been in #london.pm for six months, then dipsy and purl are going to give conflicting answers to that question when asked.

#london.pm's main bot is dipsy, while #perl's is purl. Both were originally based on infobot code (which now appears to be often referred to as "the venerable infobot", which should tell you a lot), but have seen a lot of modification and custom hacks. (dipsy eventually got a total rewrite, and it's been proposed for purl for a long time although nothing's ever happened.)

Ideally speaking, there should be some sort of infobot data format which bots could send to each other, perhaps with a safety measure in the form of a secret key which would never actually be transmitted - in pseudocode key := salt( secret + msg ).

Posted by Earle Martin at 11:48 AM in: IRC, bots, communication