KTp/Components/Integration Daemon: Difference between revisions

From KDE Community Wiki
< KTp
No edit summary
Line 3: Line 3:
It's going to take me ages to have enough time to finish rewriting the telepathy nepomuk service, so here's the TODO list to finish off my branch (here: http://gitweb.kde.org/clones/telepathy-nepomuk-service/gberg/telepathy-nepomuk-service.git/shortlog/refs/heads/mvc-refactor ) if anyone else wants to take it on sooner.
It's going to take me ages to have enough time to finish rewriting the telepathy nepomuk service, so here's the TODO list to finish off my branch (here: http://gitweb.kde.org/clones/telepathy-nepomuk-service/gberg/telepathy-nepomuk-service.git/shortlog/refs/heads/mvc-refactor ) if anyone else wants to take it on sooner.


* <strike>Implement contact-properties parts of the Storage class.</strike> 18:04, 6 December 2010 (UTC)
* <strike>Implement contact-properties parts of the Storage class.</strike> [[User:Grundleborg|Grundleborg]] 18:05, 6 December 2010 (UTC)


* Deal with accounts being removed from MC.
* Deal with accounts being removed from MC.
Line 22: Line 22:


* Add unit-tests for the Telepathy Observer part of the codebase.
* Add unit-tests for the Telepathy Observer part of the codebase.


==Old==
==Old==

Revision as of 18:05, 6 December 2010

TODO List

It's going to take me ages to have enough time to finish rewriting the telepathy nepomuk service, so here's the TODO list to finish off my branch (here: http://gitweb.kde.org/clones/telepathy-nepomuk-service/gberg/telepathy-nepomuk-service.git/shortlog/refs/heads/mvc-refactor ) if anyone else wants to take it on sooner.

  • Implement contact-properties parts of the Storage class. Grundleborg 18:05, 6 December 2010 (UTC)
  • Deal with accounts being removed from MC.
  • Re-add support for capabilities
  • Make sure that group changes on the server when this computer is off are correctly synchronised when we launch telepathy-nepomuk-service again. This could probably be most simply acheived by using a groupsChanged() signal with all groups we are in as the parameter instead of the current groupAdded() and groupRemoved() signals. Also check if any other properties suffer from the same issue.
  • Re-add support for avatars, this time using the avatar cache and only storing a URL in nepomuk.
  • Ensure that nepomuk gets updated correctly on launch even if some properties have changed server-side since we were last running.
  • Re-write unit tests based on the new improved application structure.
  • Add a Telepathy Observer to the code base - this will observe all channels and ensure that the participants in all these channels are correctly stored in Nepomuk so that libktelepathy can build a Person list for channel participants.
  • Add unit-tests for the Telepathy Observer part of the codebase.

Old

About

telepathy-integration-daemon is a Daemon that syncs details of your Telepathy accounts and their contacts into Nepomuk. It should always be running in the background (telepathy-monitor-kded or whatever it's called - basically a KDED module for keeping an eye on services that KDE requires to be running for fully integrated Telepathy functionality - should launch it on startup and keep it running.

Current Status

At the moment, this daemon works well enough for developer purposes.

Current working features:

  • Add my accounts to Nepomuk, and sync their presence and nickname.
  • Add my contacts to Nepomuk, and sync their presence and nickname.

Notable missing features:

  • Handle deletion of accounts or contacts.
  • Sync any other account/contact parameters.
  • Sync from Nepomuk to Telepathy (is this even a desirable feature? I don't yet know).
  • Handle avatars.
  • Performance/reduce unnecessary network round trips.

Get the source code here: svn://svn.kde.org/home/kde/trunk/playground/network/telepathy-integration-daemon

Program Structure

TelepathyAccountMonitor

Main class TelepathyAccountMonitor monitors the Tp::AccountManager keeping track of any new accounts which are added or removed. For each existing account, creates an instance of TelepathyAccount.

TelepathyAccount

Monitors one Tp::Account. Keeps its data in sync with the relevant data in nepomuk for that account. When the account is connected, gets the contact list for the connection and creates TelepathyContact objects for each one.

TelepathyContact

Monitors one Tp::Contact. Keeps any info on it synced to Nepomuk. Destroyed when parent connection goes down.