From 95c8c014502e2023d49d1a356bc5ba4c9819dcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Sommer?= Date: Wed, 5 Dec 2018 10:30:07 +0100 Subject: [PATCH] Check errors of GetProfilePicThumb When a request for GetProfilePicThumb fails, WhatsApp sends an JSON object containing a status field: `{"status":404}`. In my tests, it did send the codes 401 and 404 which might correspond to the HTTP status codes. At least, we don't have data to update the avatar and should stop doing so. --- portal.go | 6 ++++++ whatsapp-ext/whatsapp.go | 2 ++ 2 files changed, 8 insertions(+) diff --git a/portal.go b/portal.go index 45ef236..10a9803 100644 --- a/portal.go +++ b/portal.go @@ -258,6 +258,12 @@ func (portal *Portal) UpdateAvatar(user *User, avatar *whatsappExt.ProfilePicInf } } + if avatar.Status != 0 { + // 401: ??? + // 404: ??? + return false + } + if portal.Avatar == avatar.Tag { return false } diff --git a/whatsapp-ext/whatsapp.go b/whatsapp-ext/whatsapp.go index 2dfe558..9f38345 100644 --- a/whatsapp-ext/whatsapp.go +++ b/whatsapp-ext/whatsapp.go @@ -95,6 +95,8 @@ func (ext *ExtendedConn) GetGroupMetaData(jid string) (*GroupInfo, error) { type ProfilePicInfo struct { URL string `json:"eurl"` Tag string `json:"tag"` + + Status int16 `json:"status"` } func (ppi *ProfilePicInfo) Download() (io.ReadCloser, error) {