Saturday 18 August 2012

GSoC Coding Phase Ends


GSoC coding phase officially ends on Monday, 20th August 2012. I enjoyed working on the Twitter-Backend project over the past three months. Thanks my mentor Jan Kaluza (hanzz) and the library twitcurl, I was able to complete the project successfully.

A brief description about the work done during the summer follows. The past three months I worked on creating a Twitter backend for spectrum 2. The backend allows spectrum users to communicate with their friends belonging to Twitter. The main task was to map XMPP messages on the spectrum side to Twitter API calls on the Twitter side. Spectrum 2 already had an abstract class NetworkPlugin, which made the task of writing the backend simple. All I needed to do was implement the virtual functions by providing the necessary code to interact with Twitter, thus effectively mapping XMPP messages to Twitter API calls. In order to interact with Twitter, I used the library called twitcurl. The library provides a set of easy-to-use functions that abstract all the details involved in sending a REST query (corresponding to actions such as status update, fetching timeline etc.) to Twitter and fetching the response. At present, the backend is running at jabber.hot-chilli.net.

Monday 6 August 2012

Spectrum 1 DB Compatibilty

Twitter-Backend (written for spectrum 2) is now compatible with spectrum 1 user database. So,  spectrum 1 (twitter) users can now login into their twitter accounts via spectrum 2 without the need for re-registration. Finally, my code was merged with libtransport main branch! :) The code will now be tested on jabber.hot-chilli.net.

Twitcurl Patch

I finally finished implementing all the important tasks that I claimed I would in my GSoC Application :) The twitter library twitcurl simplified the task of creating the Twitter-Backend. I had to add a few additional functions to the library to support certain features (Eg. retweets) and I sent a patch containing these changes to twitcurl. Next, I will be working on making spectrum 1 user database compatible with spectrum 2.

Thursday 19 July 2012

Avatars

The past few days I worked on fetching user avatars from Twitter. Twitter-Backend can now handle vCard-Based avatar requests, thus allowing an XMPP user, who is connected to the Twitter network via spectrum, to view his Twitter friend's profile image.



Wednesday 11 July 2012

Per-User Mode Configuration

As I have mentioned in my earlier posts, Twitter-Backend supports three different modes viz. Single Contact, Multiple Contact and Chatroom. This was, until now, a gobal setting i.e. the mode setting applies to all users connected to Twitter-Backend. In other words, all the users together could be in one of the above three modes and it wasn't possible to have few users in Single Contact, few in Multiple Contact and few in Chatroom modes simultaneously. Further, this mode setting was controlled by the admin managing Twitter-Backend with no user level control.  Past few days, I worked on making mode configurable per-user. Now, each user can use '#mode  <mode-number>' command to switch to the mode that he wants to!

Monday 2 July 2012

Improved Response Messages from Twitter Backend

Today I worked on improving Twitter Backend by providing messages regarding the status of various commands Eg. "Status updated successfully", "Retweet successful" etc. Also, I tested Chatroom mode. Now all three modes (single, multiple and chatroom)  are supported by Twitter Backend.

Thursday 21 June 2012

Chatroom Mode

Today, I worked on the Chatroom mode where the user's twitter account is mapped to a chatroom. In this mode, the user can access his twitter account by joining the chatroom twitter-account. The user can then use the same commands that are available in the Single and Multiple contact modes for performing actions actions such as status update, direct messages, fetching home timeline, fetching user timeline etc. The code is still in its initial stages and needs to be tested properly.