This year's Google Summer of Code is over and here's the status of the Social Feed project. Let me repeat what the Social Feed is actually all about. It's a project aiming at aggregating your social media content into one single feed of posts, using Akonadi in the backend and Plasma applet on the frontend (but it can be anything that can work on top of Akonadi, even full fledged app or some HTML5 craziness). Here's how the plasmoid currently looks:
It started as a testing plasmoid (and sort-of still is; serves mainly for me learning QML), but as I was unable to port the current Plasma's Microblog plasmoid, I continued improving this. Next week I'll look at the Microblog plasmoid again and will try again, ditching this plasmoid afterwards. Anyways let's have a look on what has been done and is ready.
From the screen you can see that Facebook posts are parsed completely - showing a thumbnail, link title, number of comments and likes. These can't be displayed yet, but they are loaded and stored in Akonadi, so it's just a matter of adding the visuals for it. Twitter provides so-called "Entities", which contains parsed links, image thumbnails, hashtags and whatnot. I had a trouble receiving these (you need to explicitly specify you want to receive them) and took me few days before I finally gave up trying to figure it out. A month later (yesterday) I was refactoring some code and re-reading Twitter docs and I saw what was wrong, so I finally fixed that and soon there will be Twitter posts with thumbs and links and stuff.
Basic posting to social networks now works for Facebook, Twitter and Identi.ca. Right now it posts to all networks, but users will be able to select to which network it should be posted.
All code is available in KDE's git, I hope to fine up the akonadi-facebook resource in time for 4.10 release and have it shipped by default. We'll see about the microblog one.
Here are the parts that are needed with their current status:
KOAuth - splitted from Plasma Microblog and slightly refactored, supports Twitter and Identi.ca only right now. The Facebook resource has its own auth mechanism for now, which I might port to KOAuth in time.
Akonadi-Social-Utils - these are special utilities and shared bits among the other components, it's stable and all and I want it to merge into kdepim-libs, all that is missing are unit tests, which I'm no friend with. Yet.
Akonadi-Facebook - the Facebook resource, pretty much all working, requires Akonadi-Social-Utils now
Akonadi-Microblog-NG - new microblog resource, using KOAuth for authentication, getting home timeline and posting works.
Social-Feed - the feed itself, a QML plugin and a model on top of Akonadi, contains the testing plasmoid as well. It fetches all items with the proper mimetype, so if you write a resource, that stores SocialFeedItem items, they will automatically appear in the feed, no matter what they are. More on that in some later post.
Even though the GSoC is now finished, I'm continuing working on this thanks to sponsoring by Blue Systems. And the future feature plan includes: retweeting and liking posts from the interface, adding comments to Facebook posts and replies to microblog posts, sharing pictures would be nice, needs some investigating though (hello kipi-plugins), kickass look'n'feel and that's probably it for the nearest future.
Stay tuned :)