Adium

SoC: XMPP Update

Hi,

It’s been a while since my last update, so I’d like to list what I’ve implemented so far. Since mid-eval is up pretty soon, I’ll need it anyways 🙂

  • The new registration interface (I already posted screenshots for it on this blog).
  • A small lock is shown next to connected accounts that use SSL/TLS encryption.
  • Integrated a fully-features discovery browser for accessing all the nice remote features. This also allows listing MUC channels and joining them (screenshot).
  • Implemented Ad-Hoc commands, both sending and receiving.
  • Implemented these commands into the discovery browser (screenshot). The server’s ad-hoc commands are shown in the account submenu (as demonstrated in this image), too. If any contact on the contact list has some ad-hoc commands available, they’re listed in their context menu (this is untested due to some non-Adium bugs).
  • Implemented displaying search results using the libpurple API. This will also benefit the other libpurple protocols.
  • Implemented MSN/Yahoo!-style buzz/nudge-support, including writing up a proposal for a XEP for it
  • Implemented XEP-0115: Entity Capabilities (version 1.3; I accidentally started a huge discussion on the xmpp-standards list to completely rewrite it after I implemented it)
  • Implemented XEP-0203: Delayed Delivery, which was very simple.
  • Automatic accept / accept+add / deny of subscription requests (called “Request for Authorization” in Adium I think)

The major parts still missing are:

  • The ad-hoc receiving part is planned to be used by AppleScript, so you can add custom AppleScripts to the list to be executed by clients connected to the same account (different resource), even with forms for interaction. This depends on Matthew Handley implementing the AS-part, though.
  • Multiuser-Chat enhancements. For this feature I’ll probably don’t have to do anything, since Erik Beerepoot agreed to add the connection between his work and libpurple itself, which should automagically make it work with XMPP (libpurple already implements all features I’d like to have added to Adium).
  • #1323
  • #4695

I’m well within my time plan, so the project is looking good so far.

8 Responses to “SoC: XMPP Update”

  1. Anonymous Says:

    yipiee. andreas. you are really my personal hero! 😉 i really love your progress and cant wait for the final release! 🙂 go go go! finally (near) full xmpp support. this will be huuuuuuge.

    b.t.w.:
    this is a really interesting feature, too:
    http://www.igniterealtime.org/blog/2007/06/28/xep-0136-message-archiving/

    (instead of using creeeeepy .mac for msg archiving/syncing)

  2. DF Says:

    Sounds really promising. Weiter so, Andreas!

  3. Anonymous Says:

    Finally Adium will have decent support for Jabber. Hopefully Jabber MUCs will be usable in adium after this summer 🙂

  4. Andreas Monitzer Says:

    There’s a ticket for message archiving: #4355. However, integrating this into the log viewer would be very complicated, so I’m afraid this won’t be an option for this summer. Could be later, though.

  5. Anonymous Says:

    With these additions it looks like Adium will become the premier choice of client for XMPP. I’m excited.

    Thanks for all your hard work.

  6. meandcat Says:

    hi andreas,
    i realize Spark also has nudge/ buzz support although there is no XEP for it yet. is your implementation compatible to the one Spark uses?

  7. tamarok Says:

    Just curious, but is most of the work UI or back end? If the latter how much is going into Adium specifically as opposed libpurple?

  8. Andreas Monitzer Says:

    @meandcat: didn’t know about that. It’s not compatible, but I don’t think their implementation is much different to mine (there’s only a single way to do it right, just the naming is different). I’ll wait for my XEP to be accepted, and will urge them to implement it then.

    @tamarok:
    The parts that are implemented in libpurple are:

    pep with user mood, user avatar, user tune and user nickname
    sending ad-hoc commands
    buzz/nudge-style messages send and receive
    entity capbabilities
    the new delayed delivery