Kopete is an instant messenger supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and more. It is designed to be a flexible and extensible multi-protocol system suitable for personal and enterprise use. The goal of Kopete is to provide users with a single easy-to-use way to access all of their instant messaging systems. Kopete features tools to enhance your instant messeging experience, such as message encryption, archiving, and many other fun and useful effects.
About the Project
Title: Kopete: Chat history improvements
The goal of this project is to improve Kopete’s chat history functionality. There are currently two plugins available for this task, but none of them really satisfy the requirements. Their API is messy, their graphical interface is cluttered, their offline data is unprotected and other issues are present. The improvement to this situation will take place by the creation of a new plugin, capable of deprecating the previous ones. Will a well designed, robust API, a performant storage system and an uncluttered UI, the new plugin should accomplish its task.
I have mainly worked on the original XML-based plugin. I added a façade to abstract the storage from the plugin main logic, and then moved the XML code to be a specific implementation. Then I added the new SQLite-based history implementation.
Things to be improved:
- Work to avoid SQL injection
- Support all current protocols, including group chats
- Use full text-search indexing for searching, and work on GUI for it