SoC: XMPP Improvements
This year, I completely forgot to post my inital greeting blog post, so I’ll do that now 🙂
Last year I implemented a Smack-based XMPP plugin, completely replacing the one based on libgaim (as libpurple was called back in the days). However, it got scrapped well after I finished it (more information is available in this blog post).
So, I’m doing the same thing again now, but this time in libpurple. On the one hand, this is much more difficult, since I have to learn a huge codebase, and fiddle around with it. On the other hand, I don’t have to implement all the basics like buddy management, since they’re already there and are working fine (more or less). So, my plan for this summer is slightly different, and can be found at the Google SoC page (this link will probably cease to work next year).
Since I’ve already started, there are already some things done, which I’d like to list right here:
- I implemented an XML console that logs all communication with the server, which allows easier problem tracking and enables advanced users to use XMPP features not (yet) implemented in Adium.
- PEP is implemented (no config, just publishing, retrieving and subscribing — should be good enough for now)
- Based on that, I implemented user mood, user avatar, user tune and user nickname.
- I implemented fields requests, which allow libpurple to display forms in Adium and get responses. This not only benefits XMPP, but also other prpls like ICQ. On XMPP, this enables registation forms, setting the account password, setting the vCard’s information, and some more I’d like to implement later.
Well, that’s all for now, but more is yet to come! I’m really looking forward to having a fully featured XMPP integration right in my favorite client 🙂