瀏覽代碼

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.
Jörg Sommer 6 年之前
父節點
當前提交
95c8c01450
共有 2 個文件被更改,包括 8 次插入0 次删除
  1. 6 0
      portal.go
  2. 2 0
      whatsapp-ext/whatsapp.go

+ 6 - 0
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
 	}

+ 2 - 0
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) {