KTp/Components/Integration Daemon
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.
- Deal with accounts being removed from MC.
- Port to latest ontologies (see https://bugs.freedesktop.org/show_bug.cgi?id=31381 ).
- 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.