5 Sep 2002 abram   » (Observer)

I was home sick from work on Tuesday, so I took the opportunity to hack on Hep a bit.  And since I wasn't feeling well I didn't feel bad about ignoring the important-but-not-fun items on my TODO list, and playing with some interesting things instead.

So Jabber support is now working in Hep.  You give Hep a jabber account and password, and it logs in as username@server/Hep (with priority 2), and once for each of your destinations (username@server/DestinationName, priority 1).  Messages send to username@server/Hep (or just username@server since it Hep has the highest priority) go to your Hep Inbox.  Messages sent to the other resources get posted to the appropriate destinations (you configure a list of jabber accounts to accept messages from, to prevent strangers from sending messages to your weblog).

I also added the concept of "protocol handlers" to Hep, so that it can figure out how to send a message to a mailto: or jabber: address.  A protocol works much like a destination, except that every time you send a message you also specify an address.  That way you don't have to set up destinations for every e-mail or jabber address you might want to send a message to - you just set up your e-mail configuration once, and then specify the address when you send the message.  (I haven't figured out all the details of how this will work, but in the short term it should let Hep handle filters like "Copy all messages from Slashdot to this e-mail address").

Hep's architecture is making me happy.  Adding Jabber support was only 100 lines of code (thanks to the nice jabber.py library).  The rest of the work is all generic support for protocol handlers, which can be added in the future by dropping modules in the messaging/protocols directory.

Also I made a diagram of how Hep works, which may or may not help other people understand it.

I'll try to get another snapshot release ready this week, so that other people can start playing with this stuff.  And I really should write up some developer documentation...

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!