It is possible to make a converter, however there are design issues with aMSN's logging system that prevent us from making a fully working solution. WLM's message log is in XML format. The log can be processed with an XSL stylesheet
that is generated by WLM when the first log is created.
The XML log looks like so:
<?xml-stylesheet type='text/xsl' href='MessageLog.xsl'?>
<Log FirstSessionID="1" LastSessionID="1">
<!-- Example Sent Message -->
<Message Date="23/09/2008" Time="10:28:53" DateTime="2008-09-23T09:28:53.990Z" SessionID="1">
<From><User FriendlyName="Local User"/></From>
<To><User FriendlyName="Remote User"/></To>
<Text Style="font-family:FONT_FAMILY; color:#HEXCOLOR; ">sent message body</Text>
<!-- Example Received Message -->
<Message Date="23/09/2008" Time="10:29:05" DateTime="2008-09-23T09:29:05.412Z" SessionID="1">
<From><User FriendlyName="Remote User"/></From>
<To><User FriendlyName="Local User"/></To>
<Text Style="font-family:FONT_FAMILTY; color:#HEXCOLOR; ">received message body</Text>
The Log is saved under the name (not account, just the username) with a numeric suffix, and .xml as the extension. It is saved by default in the "My Recieved Files" directory under "History".
Implementing this style of log should be simple. However aMSN doesn't retain enough information with it's current log format to allow us to make a complete log (font-family isn't logged). Also, there are some issues with the way the From & To portions of the Message elements would need to be handled. In aMSN we log the follwing for a sent message: friendly_name, message, time, color. The simplest way of building the To/From lists, would be to make a list of users in the chat, and add/remove users as they enter/leave it (in the log). This method however falls down when the users nickname is changed. As then we have no (simple) way of knowing for sure who has changed their nick (as it isn't logged), and so our list is no longer valid.
If anyone can think of a better method to do this (other than re-writing aMSN's logging system) please let me know.