pymsn is the library behind the msn connection manager : telepathy-butterfly. It is a rewrite of the libivy msn library used in the Ivy msn client. pymsn uses the glib mainloop to process the network events in an asynchronous manner.
Get pymsn
Pymsn releases are here:
To get the latest development (aka fun to hack on) branch featuring some support for MSNP13-15:
Features
Here is a quick features list :
- + MSNP15
- + Best MSNP2P implementation : avatars and custom emoticons
- + Yahoo messenger contacts support : chat and presence
- + Live Address Book support : full contact and group management
- + Server side contacts aliasing
- + Offline messages support
- + MSN Spaces
- + Content Roaming support : avatar, display name and personal message storage
- + Full support for HTTP and HTTPS proxies
- + Support HTTP Polling transport
- + No threads, fully asynchronous
+ Caching system (only used for storing the SSO tickets for now, but will be used to support deltas in the AddressBook later)
- + Very solid and extensible architecture
- + Solid networking through a new sublibrary : gnet
Dependencies
pymsn depends on:
python >= 2.4
python gobject >= 2.10.1
ElementTree >= 1.2.0 or cElementTree >= 1.0.5 or python >= 2.5
pyOpenSSL >= 0.6
pyCrypto >= 2.0.0
adns-python >= 1.0
Try it
to give pymsn a try, run the test.py python code, this will connect to the msn IM service, and try to fetch the first online contact's display picture:
- python test.py
Report bugs
To report bugs, use the freedesktop.org bugzilla here and select the pymsn component.
Help out
The things that are still to be done in pymsn can be found in the TODO page.
Documentation
Generate the documentation with python setup.py doc (you need epydoc)
Doc is generated in doc/user-api/ directory
This link can help : pymsn article : the crack-powered address book
Troubleshooting
OverflowError: long too big to convert
If you get something like that:
Overflow Error: long too big to convert (while registering property 'bytes-transferred' for GType 'pymsn+msnp2p+P2PMessage')
you probably would need to update your python gobject binding. This is a known bug of python gobject that was fixed in python gobject 2.10.1.
Contact
You can contact developers using IRC: #pymsn on irc.freenode.net

