Handle user avatar changes

This commit is contained in:
Tulir Asokan
2018-08-26 00:39:36 +03:00
parent 060516f9cf
commit ccfa85e44a
5 changed files with 91 additions and 7 deletions

View File

@ -146,17 +146,26 @@ func (puppet *Puppet) Intent() *appservice.IntentAPI {
return puppet.bridge.AppService.Intent(puppet.MXID)
}
func (puppet *Puppet) UpdateAvatar() bool {
avatar, err := puppet.user.Conn.GetProfilePicThumb(puppet.JID)
if err != nil {
puppet.log.Errorln(err)
return false
func (puppet *Puppet) UpdateAvatar(avatar *whatsapp_ext.ProfilePicInfo) bool {
if avatar == nil {
var err error
avatar, err = puppet.user.Conn.GetProfilePicThumb(puppet.JID)
if err != nil {
puppet.log.Errorln(err)
return false
}
}
if avatar.Tag == puppet.Avatar {
return false
}
if len(avatar.URL) == 0 {
puppet.Intent().SetAvatarURL("")
puppet.Avatar = avatar.Tag
return true
}
data, err := avatar.DownloadBytes()
if err != nil {
puppet.log.Errorln("Failed to download avatar:", err)
@ -189,7 +198,7 @@ func (puppet *Puppet) Sync(contact whatsapp.Contact) {
}
}
if puppet.UpdateAvatar() {
if puppet.UpdateAvatar(nil) {
puppet.Update()
}
}