diff --git a/registersession.py b/registersession.py index 963eeb2..2fc63ca 100644 --- a/registersession.py +++ b/registersession.py @@ -142,3 +142,6 @@ class RegisterSession(YowsupApp): def requestVCard(self, buddy, ID): pass + + def setProfilePicture(self, previewPicture, fullPicture = None): + pass diff --git a/whatsappbackend.py b/whatsappbackend.py index 46b2dc5..9c00798 100644 --- a/whatsappbackend.py +++ b/whatsappbackend.py @@ -117,6 +117,10 @@ class WhatsAppBackend(SpectrumBackend): self.logger.debug("handleVCardRequest(user=%s, buddy=%s, ID=%s)", user, buddy, ID) self.sessions[user].requestVCard(buddy, ID) + def handleVCardUpdatedRequest(self, user, photo, nickname): + self.logger.debug("handleVCardUpdatedRequest(user=%s, nickname=%s)", user, photo, nickname) + self.session[user].setProfilePicture(photo) + def relogin(self, user, legacyName, password, extra): """ Used to re-initialize the session object. Used when finished with @@ -136,8 +140,6 @@ class WhatsAppBackend(SpectrumBackend): def handleBuddyBlockToggled(self, user, buddy, blocked): pass - def handleVCardUpdatedRequest(self, user, photo, nickname): - pass def handleAttentionRequest(self, user, buddy, message): pass diff --git a/yowsupwrapper.py b/yowsupwrapper.py index bfdba95..7d195a6 100644 --- a/yowsupwrapper.py +++ b/yowsupwrapper.py @@ -259,7 +259,20 @@ class YowsupApp(object): """ iq = SetStatusIqProtocolEntity(statusText) self.sendIq(iq) - + + def setProfilePicture(self, previewPicture, fullPicture = None): + """ + Requests profile picture of whatsapp user + Args: + - previewPicture: (bytes) The preview picture + - fullPicture: (bytes) The full profile picture + """ + if fullPicture == None: + fullPicture = previewPicture + ownJid = self.stack.getLayerInterface(YowAuthenticationProtocolLayer).getUsername(full = True) + iq = SetPictureIqProtocolEntity(ownJid, previewPicture, fullPicture) + self.sendIq(iq) + def sendTyping(self, phoneNumber, typing): """ Notify buddy using phoneNumber that you are typing to him