Computer :(

/home/rrix:blog:tags:cgit:rss

Random Hair Brained Idea: Universal Chat bouncer

For quite a while there have been a lot of different softwares which [let you connect an IRC client to them](http://www.dmoz.org/Computers/Software/Internet/Clients/Chat/IRC/Bouncers/), so that you can always be online (like in irssi) but also enjoy all the benefits of a GUI client (like Konversation, Xchat, etc)… They're a nice happy medium between the two extremes, and are generally regarded as a Good Thing. And indeed, they are. I run irssi and connect to it using konversation via a module called irssiproxy. (/load proxy, on any distro package should work fine as its an official module)

But what I lack is a bouncer for non-IRC modes of communication: AIM, MSN, XMPP and Yahoo! primarily. I have yet to find one… yes, there is bitlbee, which can be used just fine through any number of BNCs, but I want to be able to use Kopete for that. IRC queries for everyone and their dog simply don't "work" for me… it becomes hard to manage in Konversation, and Kopete's UI seems better suited, imo.

So, idea: create a universal IM proxy, which supports, well, everything that libpurple does. Basically it would sit there, listening on all the accounts that it is configured to listen on, and dump incoming messages to a SQLite database. When a user connected, it would purge the database to the user. The server-side (the part which the user connects to, and is relayed messages via) would probably have to be written from scratch since I think that libpurple wouldn't support that, but, it would be mostly trivial to do the reverse of libpurple, or use libraries when they are available. This would also include IRC, which makes it more or less a universal bouncer.

Here's the kicker, say you only had an XMPP client, or an IRC client. This thing, because it's simply a database in the middle, could act as a bridge between, say AIM and XMPP or MSN and Yahoo, etc, turning it into, in some ways, bitlbee. Say a config snippit looks like this:

[account1]
incomingType=MSN
outgoingType=Yahoo
incomingUser=BobSagat211@hotmail.com
incomingPass=bobsagatbobssssssagat
outgoingUser=bobstheman
logging=true

Would cause the bouncer to receive messages from other people messaging BobSagat211@hotmail.com, and relay them to the user when they are online via the yahoo account bobstheman.

Sound feasible?