forked from lug/matterbridge
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package bxmpp
 | |
| 
 | |
| import (
 | |
| 	"github.com/42wim/matterbridge/bridge/config"
 | |
| 	"github.com/42wim/matterbridge/bridge/helper"
 | |
| 	"github.com/matterbridge/go-xmpp"
 | |
| )
 | |
| 
 | |
| // handleDownloadAvatar downloads the avatar of userid from channel
 | |
| // sends a EVENT_AVATAR_DOWNLOAD message to the gateway if successful.
 | |
| // logs an error message if it fails
 | |
| func (b *Bxmpp) handleDownloadAvatar(avatar xmpp.AvatarData) {
 | |
| 	rmsg := config.Message{
 | |
| 		Username: "system",
 | |
| 		Text:     "avatar",
 | |
| 		Channel:  b.parseChannel(avatar.From),
 | |
| 		Account:  b.Account,
 | |
| 		UserID:   avatar.From,
 | |
| 		Event:    config.EventAvatarDownload,
 | |
| 		Extra:    make(map[string][]interface{}),
 | |
| 	}
 | |
| 	if _, ok := b.avatarMap[avatar.From]; !ok {
 | |
| 		b.Log.Debugf("Avatar.From: %s", avatar.From)
 | |
| 
 | |
| 		err := helper.HandleDownloadSize(b.Log, &rmsg, avatar.From+".png", int64(len(avatar.Data)), b.General)
 | |
| 		if err != nil {
 | |
| 			b.Log.Error(err)
 | |
| 			return
 | |
| 		}
 | |
| 		helper.HandleDownloadData(b.Log, &rmsg, avatar.From+".png", rmsg.Text, "", &avatar.Data, b.General)
 | |
| 		b.Log.Debugf("Avatar download complete")
 | |
| 		b.Remote <- rmsg
 | |
| 	}
 | |
| }
 | 
