Archive for February, 2016

A Hangouts Prpl

So Pidgin has fairly alrightish support for Hangouts through the XMPP server that Google provides. Unfortunately it’s missing a whole bunch of stuff – like group chats, self-sent messages et. al. – that make it just that little bit annoying to use.

So we had a Summer of Code 2015 student start work on a new protocol plugin (prpl) for Pidgin. Unfortunately due to a few roadblocks (mostly around new stuff in libpurple3) it didn’t get completed, so I’ve spent the last too-many weeks implementing the pblite/protobuf-json/jsprotobuf protocol (TODO find a link for this one) that Google uses, in C using the amazing protobuf-c library (in combination with the always awesome json-glib), to begin work on a new Hangouts prpl for Pidgin.

After the pblite-madness set in (seriously, that stuff will give you nightmares), Maiku came on board to help, and now we have a plugin that’s at a ‘good enough’ state right now that people can start using it.

We’ve taken inspiration from the Python-based Hangups library, and used the authentication code that Nakul wrote as part of GSoC2015 to come up with some moderately-sane code that works for both Pidgin 2.x and those foolish enough to be using Pidgin 3. There’s still a lot of pieces of the puzzle missing (you’ll see what I mean when you try it), but I think it’s good enough now that I’ve ditched my XMPP account in favour of it.

Please give it a go and tell us what you think. Just to be different, it’s over on BitBucket instead of GitHub.

1 Comment