Picture data was stored in the session object. This means that if you
send multiple pictures within a short period of time the last picture
would overwrite the data of the other pictures. This would cause
pictures to be lost. Now picture data is stored in closures
Buddy.py would try to subscribe to presence before the user had logged
in to whatsapp. A loginQueue was added, so that functions could be
deferred to login.
In the previous implementation join_room was called on all groups immediately
after the user was authenticated. When a user joined a group, join_room will be
called again. This was incorrect behaviour and confused spectrum. There was no
truncation error, thus _shortenGroupId and _lengthenGroupId have edited to be a
no-op (and should be removed in the next commit).
The correct behavoiur is to only call join_room in
whatsappbackend.py:handleRoomJoined, however the user may do this before the
groups have been loaded, in which case those requests must be added to a queue.
The bot informs the user of all the groups the user has joined and when the user
is added to a new group.
When a whatsapp buddy sends an image, video or sound to the spectrum
user, the spectrum user will receive a URL that links to the media.
FileTranfer in spectrum is not working, apparently. Thus media cannot be
sent yet.