My Google Summer of Code summary

Google Summer of Code is over, so there is a need for a little summary. Pidgin was accepted with four projects, three of them (this one too) succeeded. Gadu-Gadu related project changed a bit since it was accepted, but I’m still satisfied with progress done – you can judge it for yourself by reading this post. Some promised features weren’t completed yet, mainly because of need to make changes in libgadu. They will be done, but it must take time: discussion, libgadu implementation, libgadu release, updating libgadu in Pidgin, Pidgin protocol plugin implementation and finally pidgin release.

This project wasn’t only stripped down. There were improvements, which were not planned, but they came up to be really useful to bring better experience for Gadu-Gadu users. This is the point, where we got perks from 3.0.0 break – I was allowed to change anything I liked to in libpurple API. This is also a point, where other protocols gets benefits. Continue reading

GSoC finish: more features, more code refactoring

Yesterday, we had firm pencils down date. That means, this is the last set of updates within this year’s GSoC. But not the last one for Gadu-Gadu prpl – I will continue my work in the meantime, to make Pidgin up-to-date with current GG service features.

The biggest feature done this week was browsing and editing public directory with GG10.5 protocol. Unfortunately, just like some other features, there is no possibility to use current, GG11 protocol, because this service requires IMToken value (not accessible in current libgadu) to authenticate. Continue reading

Libpurple API changes for better Gadu-Gadu support

Libpurple is a library with a very stable API. That’s convenient for users, because most of old plugins works with new versions of Pidgin, but it’s also restrictive. That means, Pidgin cannot evolve as much as other messengers to support well new protocol features.. Fortunately, there is Pidgin/Libpurple 3.0.0 coming, so we may change what we want here.

Indeed, recently I was working on libpurple API in areas, where Gadu-Gadu had too little air. For example, I have implemented validation of usernames: GG service uses only numerical identifiers, while Pidgin allowed to type in anything. Now, dialogs like buddy adding or account setup won’t accept invalid GG numbers. Continue reading