As of now I managed to get everything I need to save the history to the disk and update the files, merging when needed.
It is now possible to take a history from another computer, for example, and run skype2gmail to update the files, consolidating without duplications. Implementing this feature enabled me to develop all the concepts I need to send the messages to gmail and update them, also without duplication. I just need to develop few classes that make the connection and edit gmail using ldap.
I already made some simple concept tests that are capable of sending mail, so I believe the first working version will soon be out. The first version will need to be ran from the command line once and will require an external mean to keep running once in a while. Also, there are a lot of optimizations that will be left for the next version.
So, I'm planning the following features:
- can store the chat history in a directory in the filesystem
- can store the chat history in a gmail or google apps mail account
- in both cases, it will be able to consolidate the chats, which means there won't be duplicate messages
- it will be "parallel" safe, that is, running two instances in different machines won't conflict when updating gmail at the same time.
- will run under linux (both 32-bit and 64-bit) and windows
- will always fetch the entire history to update the storage (gmail/disk)
- won't send store voice chats (I don't know whether I'll ever do that)
- won't regurlarly automatically
- will require the user to provide the mail credentials in a file in the .skype2gmail directory or ask every run
- created mail messages won't have the sender actual mail, only his skype name
- might not work under OS-X (I don't have means to test it under OS-X)
Some features I'm planning for the future:
- use a mechanism to detect whether the last update was in less than 24 hours in the giving machine; if so, I can use only the recent chat history to update the storage, which is A LOT faster (almost a minute vs less than 2 seconds)
- create indexes to speedup storage update (instead of looking all entries, it will use the index to learn which entries need to be updated just by checking the index)
- run in the system tray regularly, with configurable schedule
- since it may keep running, it may only ask gmail credentials when starting and store in the memory (don't need to ask again in the next update)
- will keep allowing the user to save the credentials in the filesystem
- integrate with gnome-keyring to store credentials
- will be more robust (this depends on skype4java fixes)
- will allow the user to specify, for each skype name, a mail address, so the chat messages will in gmail will have the correct mail address
This is only what I'm able to remember now. I'll certainly take requests from the community once the application is at least implementing the above features (heck, I might take good suggestions anytime) =)