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 :)
I have some build errors, i'm i missing something?
http://paste.kde.org/551258/
http://paste.kde.org/551264/
Posted by: schumski | Monday, 17 September 2012 at 23:55
@schumski - The first one should be fixed (though there might be more like this), the second one is old akonadi-social-utils, please update that and reinstall, then try again (update all the repos while at it).
Posted by: Marty | Tuesday, 18 September 2012 at 00:13
Managed to build microblog-ng, but needed to add ${QJSON_LIBRARIES} & ${QJSON_LIBRARY}) to target link libraries in the toplevel CMakelists.txt, otherwise it would fail:
http://paste.kde.org/551480/
Socialfeed still doesn't build, and i have the latest code :-(
Posted by: schumski | Tuesday, 18 September 2012 at 04:29
Strangely the QJSON does not fail here, even though it should. What system are you using?
Btw. feel free to ping me (mck182) at #kde-devel irc channel any time, I'll be happy to solve all the build failures.
Posted by: Marty | Tuesday, 18 September 2012 at 11:04
I'm also getting comple errors, this is with both the akonadi-facebook that depends on the social utils and the akonadi-microblog. (error is the same for both so I'm only giving one example)
http://paste.kde.org/564830/
Posted by: David "Judah's Shadow" Blue | Tuesday, 09 October 2012 at 03:37
@David - Yes, this is the result of recent merge of akonadi-social-utils into kdepimlibs, akonadi-facebook needs updating (haven't had time for that yet) and you should be using kdepimlibs master now. I might fix the social-utils repo so it will still work with that, but I won't keep this around for long ;)
Posted by: Marty | Tuesday, 09 October 2012 at 11:21
How do you do to manage Facebook posts? In KDE 4.10 I installed akonadi-facebook sucessfully but I only see OpenDesktop notifications on it. Also, on the calendar events (the popup that appears when clicking on the 'Digital clock' plasmoid) doesn't show Facebook birthdays or events...
Posted by: Miler Moreno P. | Saturday, 23 March 2013 at 16:40
@Miler - akonadi-facebook is currently outdated and unmaintaned; it was merged into kdepim-runtime some time ago and all the development continues there.
Notifications are currently only downloaded, but nothing is happening with them (I'm working on this right now). Calendar events are broken in akonadi-facebook, this was fixed in kdepim-runtime and for birthdays, you need to add Birthdays resource in Akonadi.
Hope that helps :)
Posted by: Marty | Monday, 25 March 2013 at 12:16