Here's some good news. The code for the whole Social Feed thing is now clean & stable enough, so I decided to finally put it online, where the development will now continue.
Right now it consists of several parts (which you all need in order to have it working):
This is a library handling the OAuth stuff in Twitter/Identi.ca. It's a modified version of the Microblog dataengine auth mechanism. The code is quite heavy and can be simplified significantly with the help of QtOAuth library, so I plan to refactor it on top of QOAuth class.
The nice thing about this approach is that we don't need to store user's password/credentials. User still has to put them in, but then it will authorize him with the service and return an OAuth token, which is stored in KWallet and that's all that is stored (well the username is stored as well, but that's for convenience only, the password is never saved anywhere).
This one provides several utilities for both Akonadi resources and the Social Feed itself. It contains an Akonadi serializer for serializing/deserializing the data to/from Akonadi database and an avatar provider, which fetches avatars from the social networks and stores them in cache (KImageCache). The provider is asynchronous and works dynamically with the Social Feed model - whenever the view asks for the avatar, it is first checked if it is in the cache and if not, it starts a KJob to fetch it, once it's fetched, it will immediately show up in the view (and stay cached for the future). I want to start the avatar provider as soon as you start syncing the feed data in Akonadi, so it is all downloaded in one batch and you can view the feed even offline without missing avatars.
By using this serializer and the correct mime-type, you can have arbitrary data included in the feed, be it rss, birthdays, reminders, whatever you need. But someone needs to write such Akonadi resource ;)
This library and the koauth library miss the proper cmake files for finding them, so they're just hardcoded in the linker command for now, so you might have troubles with compilation if you try building this in non-standard prefix.
I plan to include this library in kdepim-libs, so it can all be available "by default" and you don't have to install one more package.
3) Akonadi resources
The microblog and Facebook resources now use both the same serializer (from the Utils lib above), that means they are both stored in the same way inside Akonadi and allows easy and straightforward querying and displaying. The microblog now supports both Twitter and Identi.ca and you can add it twice, once for each network. The configuration is a bit crap at the moment, but at least works ;) I also don't want to spend too much time on it as we'll soon have a central place to configure all kinds of accounts in KDE and so the configuration should be moved there then.
4) Social Feed
Social Feed is basically an Akonadi model, which is exported as a QML plugin, so it can be used in QML plasmoids. This repo also contains a testing plasmoid, which only tests the model and is not intended for real usage (though it might work ;).
I also became the maintainer of Akonadi Facebook resource and will soon do a release. We're also working together with Pankaj Bhambhani on splitting up the library (libkfacebook) out of the resource and turn it into a standalone library. The microblog resource also has its own library and it's the same architecture, so maybe in the future we'll see a merge of these two into something like "libksocialnet" (no plans yet).
The ultimate goal is to have all these components in such a shape that it can all be shipped with default KDE installation. With the release of KDE Workspaces & Application 4.9.0 just outside the door, the nearest target could be 4.10, so hopefully I'll have it ready by then.