|
|
| Line 28: |
Line 28: |
| | == Akonadi wishlist == | | == Akonadi wishlist == |
| | | | |
| − | * Batch jobs for modifying/deleting collections/items: it would be great to have jobs which perform operations on several entities in one sitting (a use-case: I want to modify a set of items to reset the \Seen flag).
| + | Now at the core [[Projects/PIM/Akonadi#Core|TODO-List]] |
| − | | + | |
| − | * Batch job to retrieve a set of items from Akonadi. Those items don't belong to the same collection, rather they are located in different collections [must have]
| + | |
| − | | + | |
| − | * CollectionFetchJob/ItemFetchJob should be able to retrieve entities:
| + | |
| − | ** by flags [must have]: I want to retrieve all items with the \Seen flag set.
| + | |
| − | ** by remote ids [must have]: I'm not sure whether that would improve the performance of ItemSync but at least I'll be able to implement a fast sync algorithm for RSS items
| + | |
| − | | + | |
| − | * ResourceBase::collectionsRetrievalDone is missing. I'm working around by calling collectionsRetrievedIncremental() with empty collection lists
| + | |
| − | | + | |
| − | * Monitor::itemChanged() and Monitor::itemRemoved() don't say which collection the changed/removed item belongs to. If the item resides in several collections (normal + virtual collections) then emit those signals for each collection. [must have]. I'm working around by keeping a mapping 'item => its collection'
| + | |
| − | | + | |
| − | * Provide a new command 'LINK': Akonadi resources should be able to link items to virtual/search collections [must have]. Since the RSS resource is going to be the first user of this feature, I can take a stab at this (after SoC).
| + | |
| − | | + | |
| − | * No parallel execution of jobs within an Akonadi::ResourceBase. I'm using a custom D-Bus interface to start parallel jobs.
| + | |
Revision as of 10:43, 13 August 2008
Needs research
- What are possible settings for the resource?
- Read up on OPML/RSS/Atom spec (+ on the itunes podcast extension so we can set appropriate attributes; other extensions?)
- Possible Nepomuk RSS ontology (I found one on the web, not sure if it's correct)
Long-term project goals
- Finish the basic framework (the goal of this SoC project)
- Port Akregator to it/rewrite Akregator from scratch
- Improve virtual/search feeds (Nepomuk/Strigi/Akonadi virtual collections?)
- Create a generic RSS Akonadi resource that allows to easily add other types of RSS sources (RSS feeds from an Openchange server, online feed readers)
- Implement an RSS resource for the Newsgator.com online reader
- Get KDE4/Akonadi/this RSS framework up and running on my N800 so I can *finally* read feeds everywhere and sync them via NG.com
Bugs to track down
- aboutToQuit() is not called when manually removing the resource via akonadiconsole (tracked down). aboutToQuit() is called from within AgentBase::quit() so it's invoked only in the second case:
- When removing a resource via akonadiconsole the calling sequence is:
- AgentManager::removeInstance(instance)
- org::freedesktop::Akonadi::AgentManager::removeAgentInstance(id) - via D-Bus
- org::freedesktop::Akonadi::Agent::Control::cleanup() - via D-Bus
- When removing a resource at 'akonadictl stop' the calling sequence is:
- org::freedesktop::Akonadi::AgentManager::~AgentManager() - from akonadictl
- org::freedesktop::Akonadi::AgentManager::AgentManager::cleanup()
- org::freedesktop::Akonadi::Agent::Control::quit() - via D-Bus for every agent
Akonadi wishlist
Now at the core TODO-List