Difference between revisions of "Projects/PIM/RSS framework for Akonadi"

< Projects‎ | PIM
Jump to: navigation, search
(add akonadi wishlist)
(Akonadi wishlist)
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

Contents

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


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal