Commit graph

105 commits

Author SHA1 Message Date
moyamo dbb66e0381 Prevent no caption in an image from crashing transwhat 2015-11-05 17:57:16 +02:00
moyamo 1c0ae79ec2 Fix join room, inform user of all groups, and new participants
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.
2015-10-26 19:27:35 +02:00
moyamo 744efd154f Use notify as buddies nickname when sending groupchats. 2015-10-09 18:45:17 +02:00
moyamo a5877bc1a9 Try to prevent transwhat from crashing on malformed protobuf 2015-10-09 18:45:17 +02:00
moyamo 29d92b456e Shorten the name of groupchats to overcome truncation bug
The names of groupchats are truncated internally to 22 characters.
This causes many problems with groupchats, since spectrum incorrectly
identifies the chat by the long name.

To overcome this the phoneNumber-unixTime is converted to hexadecimal,
to shorten the groupchat below 22 characters
2015-10-09 18:42:59 +02:00
moyamo ecfa2d7f85 Attempt to fix groupchats 2015-10-09 18:42:59 +02:00
moyamo f4e85f7689 Try to prevent transwhat from crashing on malformed protobuf 2015-09-21 21:45:18 +02:00
moyamo 7f1c9cd0db Shorten the name of groupchats to overcome truncation bug
The names of groupchats are truncated internally to 22 characters.
This causes many problems with groupchats, since spectrum incorrectly
identifies the chat by the long name.

To overcome this the phoneNumber-unixTime is converted to hexadecimal,
to shorten the groupchat below 22 characters
2015-09-21 20:30:11 +02:00
moyamo 6c12956dd6 Attempt to fix groupchats 2015-09-15 21:29:26 +02:00
moyamo 646f45434b Crude implementation of groupchat 2015-09-06 14:06:16 +02:00
moyamo 4fd313e516 Download whatsapp profile pictures
Everytime the user requests a VCard the profile pictures are updated.
The sha1hash hash of the picture is calculated and stored in buddy.
2015-09-06 00:14:12 +02:00
moyamo d2efa0dd7b Fix status message 2015-09-05 22:22:30 +02:00
moyamo 4c365e3f81 Add receiveing of images, videos and sound files
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.
2015-09-05 22:05:34 +02:00
moyamo e43aeedd9d Add presence and chatstate
* Chatstate typing and typing stop is sent and received
 * Presence is received and presence is sent when user types
2015-09-03 20:04:29 +02:00
moyamo 67c5a7c951 Add presence updates and looping asyncore.loop()
Add functions to update presence and status

Make asyncore.loop() timeout after some time and call the functions in
the YowStack.__detachedQueue.
2015-09-02 17:04:49 +02:00
moyamo 48313c5475 Minor fixes 2015-08-30 22:18:03 +02:00
moyamo 47d52ae22c Use new-style classes and Session should call super.__init__ 2015-08-30 21:07:31 +02:00
moyamo 254465301b Make Session use YowsupApp instead of SpectrumLayer 2015-08-30 20:54:42 +02:00
moyamo c7afff2cf9 Add more protocol layers to the yowstack 2015-08-30 19:16:53 +02:00
moyamo 59754848a7 Enable Axolotl encryption as it is mandatory. 2015-08-29 22:01:44 +02:00
moyamo 2f73ed1a10 Send Acks and Receipts on receiving a message 2015-08-29 20:50:07 +02:00
moyamo f2cadb7492 Reconnect when disconnected from whatsapp 2015-06-21 21:24:36 +02:00
moyamo f871ed664b Add PresenceProtocolEntity to YowStack 2015-06-21 19:05:28 +02:00
moyamo f0a19d1b6c Handle presence sent from whatsapp 2015-06-21 19:02:39 +02:00
moyamo af0150866d Add groups protocol layer 2015-06-21 18:20:09 +02:00
moyamo 85c320e24c Send presence requests 2015-06-21 17:16:04 +02:00
moyamo 8b6a12c798 Add YowIqProtocolLayer to prevent connection from timing out 2015-06-21 17:02:58 +02:00
moyamo 31bbab2ab1 Remove default layers, The logging layer causes problems 2015-06-21 16:59:09 +02:00
moyamo ebed803984 Use YowStackBuilder and the default stack 2015-06-21 16:44:20 +02:00
moyamo 926aa9a6c9 Send typing state updates 2015-06-21 16:31:01 +02:00
moyamo 6b1b714d3c Remove the domain from the buddy name before message is sent 2015-06-21 16:16:26 +02:00
moyamo 0c17a497ee Pass session into SpectrumLayer so that session specific things can be called 2015-06-21 16:11:43 +02:00
moyamo ce1bf5d35b Fix typo 2015-06-21 16:01:23 +02:00
moyamo 68f9ca43ea Add ability to receive whatsapp messages 2015-06-21 15:59:11 +02:00
moyamo 0fd33d38bb Add ability to send a message 2015-06-21 15:32:58 +02:00
moyamo 0ecc89d270 Catch TypeError thrown when password incorrectly formatted 2015-06-21 15:09:56 +02:00
moyamo 97c3aba3ec Session.call takes in kwargs instead of args 2015-02-27 19:30:18 +02:00
moyamo e9f40dbed9 Respond to presence updates 2015-02-27 19:24:57 +02:00
moyamo a496e01967 Handle disconnect from Yowsup 2015-02-27 18:40:27 +02:00
moyamo 467cc80b0d Catch AuthError
When authentication fails, yowsup throws and AuthError.
2015-02-27 17:40:34 +02:00
moyamo 9e35017523 Fix bug 2015-02-27 17:35:32 +02:00
moyamo b651ba8c37 Stop Start-Event from propogating 2015-02-27 17:33:08 +02:00
moyamo 479efedc26 Add logger remove calls 2015-02-27 17:25:45 +02:00
moyamo 05525a8a3a Fix bugs 2015-02-27 17:13:48 +02:00
moyamo ae826b1341 Use YowLayerEvent instead of Prop
We cannot use Prop in the __init__ of a YowLayer, since Prop is
initialised only after all the YowLayers are initialized.

Instead, we send a YowLayerEvent containing the values.
2015-02-27 17:09:39 +02:00
moyamo 74a09ad07f Fix typo 2015-02-27 16:19:51 +02:00
moyamo 1ebf4e5cc9 Add SpectrumLayer to YowStack and handle Auth
Things that Session handled should be handled by a YowInterfaceLayer.
SpectrumLayer is such a layer. Paramaters that Session's __init__ is
passed into SpectrumLayer via Props.
2015-02-27 16:14:01 +02:00
moyamo 9fc0dc7333 Add logout event and disable call 2015-02-27 14:59:35 +02:00
moyamo 1878a30fb6 Authenticate user with legacyName and password
I forgot to send the legacyName with the password when authenticating.
2015-02-27 14:33:55 +02:00
moyamo 8dcc028548 Add Yowsup stack to session
Try to replace the old yowsup library by using a yowsup 2 stack.
2015-02-26 22:52:29 +02:00
Vitaly Takmazov 8e2c03aaae Transport was not initialized if user have no status message 2013-08-06 23:21:37 +04:00
Steffen Vogel 5fb1934cc5 added copyright and author infos 2013-08-02 01:45:51 +02:00
Steffen Vogel 5d41cd712f changed a lot 2013-06-28 22:46:56 +02:00
Steffen Vogel a7e9cf853f cleaned up imports 2013-06-28 22:45:38 +02:00
Steffen Vogel 528d4ed759 initial code commit 2013-05-31 20:53:21 +02:00