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. Whole public directory related code was rewritten from scratch, so bugs (#14951) present with the old code should not exists now. This approach allowed to implement new feature: using buddy public alias for new contacts added to buddy list (#2188). To try it out, just add some buddy without filling alias field. There is now also possible to set your own profile information (#6918). On the occasion of moving to newer protocol, OAuth support was extended, so it’s possible now to support more services.

Another large code refactoring (but this one without so many new features) was new implementation of status handling. Some bugs were fixed: there were problems with long status messages, or these which contained UTF-8 characters.

Libpurple API wasn’t forgotten this time: there is now possibility to provide a list of hints for text fields in protocol setup dialog. This may be used for example in protocols, which allows to type in custom character encoding (like IRC).

With this new libpurple extension there were now also possible to implement new GG related feature: servers history (#11693). All successfully connected servers are added to global history and displayed as hints in account setup dialog.

There are still some discussions in progress:

  • message delivery notifications: none of the main Pidgin devs answered, but probably because it just needs to be implemented;
  • custom username labels for certain protocols: discussion stuck;
  • new http support, based on library like curl or libsoup: there is a need to select one;
  • new status – chatty: requires more work than it looks like;
  • custom connection functions for libgadu (this is needed for proxy support): implementation-related discussion paused for a while;
  • getting buddy public alias before adding him to buddy list: no-one answered yet.

In next few days I plan to publish whole GSoC summary.

Leave a Reply

Your email address will not be published. Required fields are marked *