The first two weeks of the program were mostly spent exploring about various APIs and protocols that could be used to carry out the tasks that were assigned to me.
My mentor, Daniel, split up the project in multiple modules to accomplish the task in an organised way. To start with, I was assigned with ‘Communication’ module which predominantly concerned with creating appropriate scripts for the user to get subscribed to mailing lists, and setup mail filters , IRC and XMPP. My mentor created two wiki pages for the project to compile all the information, technologies, aim, details about the project at one place.
The primary assignment was to implement mail filters for incoming mails and top-posting configuration inside mail-reply in Mozilla Thunderbird. Hence, I started to study about Mozilla Thunderbird, an open source mailing client and configured in my system.
I learned about the Thunderbird extensions that could be integrated with it, and how to implement specific tasks by using them. The learning involved here, was tough as it called for creating a new extension using Java script and then packaging it. I mailed my doubts to my mentors.
For mail filters, started to look into languages that allow to filter mails for a user like Procmail, Sieve and maildrop. Getting acquainted to their concepts took some time.
Extensible Messaging and Presence Protocol (XMPP) is a communication protocol that can be used to send/receive messages and find a person’s presence status.
As I was new to this, I spent my time to extensively learn about the technology through videos and articles. My module required setting up XMPP service for the user. I searched for various XMPP APIs in Python that can be used for the task.
I learned about ‘sleekxmpp’ python framework through its documentation. ‘slixmpp’, a subset of sleekxmpp with some architectural and syntax changes was another useful library that could be used to create a XMPP bot. I went through their code for creating a bot that could send message, reply and can ping users.
My mentor recommended to use Pidgin as XMPP client for the user for IM. I downloaded and setup Pidgin in my system.
Next week, I will work on creating Jabber and Salsa account for the user.
Stay tuned for updates!