[Kde-pim] Google PIM Support

Adenilson Cavalcanti savagobr at yahoo.com
Fri Feb 27 16:12:17 GMT 2009


Friends

Sorry about getting somewhat late into this discussion (I was busy
implementing photo support for google contacts and was not reading the
mailing list). Not only that, but it was canival here in Brazil.

I have already read all the emails on this thread and will try to
address the most important topics:

a) KDE google support: I think is important for kde-pim to offer
support for google services, being calendar/contacts/notes priorities
in my opinion, specially considering that other linux desktops already
support those services.

b) libgcal: I started to code it 10 months ago as a replacement for
opensync google calendar plugin (that was written in python) and
realized that it could be used to write an akonadi resource too.

I'm somewhat biased to talk about it (since I'm its author), but is a
nice and small piece of code (BSD licensed, so commercial use is
possible), featuring support for common operations for google calendar
and contacts (authentication, atom feed parsing with XPath,
get/add/edit/delete entries). Not only that, but the code is heavily
commented with doxygen and the unit test coverage of it is around
80-82% (the whole code was written using Test Driven
Development). More statistics here:
http://www.ohloh.net/projects/libgcal

It has 2 public APIs: one based on gcal_t objects and other using RAW
xml (which was used for opensync). The object based is pretty
standard, set the object (e.g. event) properties (e.g. title) and do
operations on it (add/edit/delete). This is the API that I'm using for
the akonadi resource.

The RAW XML API will accept a string with the entry (calendar event or
contact) in gdata format and contact the google server to do
add/edit/delete operations. It was used in opensync and the main
purpose of it is to easily integrate with other software that
*already* uses a XML representation (so is just a matter of writing
XSLT conversion stylesheet between the formats).

Support for other services (e.g. notes) could be easily added, the
only thing that is missing is man-power since is a one-man spare time
project (and I have myself other pet-projects to take care, e.g. Amora)

Now that Qt 4.5 will have XQuery/XPath full support it should be easy
to write a qtgcal/libqgcal/libqtgcal (or whatever name could be
fancier) to free us from libxml/libcurl dependencies (which themself
are well tested and multiplatform libraries present in practically all
linux distributions...).

Basically is a matter of rewriting the code, but the tough part
(understanding the protocol, writing the XPath expressions, etc) is
already done.

I just started libgcal because at that moment I was not aware of any
well documented and actively mantained C/C++ library implementing
google data protocols.

*But* with a desktop user perspective, I think is more important to
complete the akonadi resource to have something working (maybe for the
upcoming KDE 4.3), which lead us to the next topic.

c) akonadi resource: it (please look in playground/pim/googledata) already
support most of operations for google contacts (get/add/edit/delete)
and is pretty stable (I have tested it with more than 500 contacts
without any hicup). It uses KWallet to store the user account details
and has a Qt based dialog for user account details input.

What is missing now is:
 * Contact photo support (protocol part is done, is all about integration);
 * Retrieve server side changes (query by updated is already implemented in libgcal)
 * Proxy support (libgcal already has it, is a matter of getting the
proxy from the desktop environment);
 * Support for google calendar (again, is a matter of adding the code
to call libgcal).
 * Support for more fields;
 * Further testing;


So gentleman, there are lot of work to be done, and definitely
contributions are welcome. Anyone that is interested in the subject
and want to help can contact me (irc: Savago, email:
cavalcantii-at-gmail-dot-com).


Best regards


Adenilson
a.k.a. Savago


      
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list