package main import ( "fmt" "strings" "time" "github.com/animenotifier/arn" gravatar "github.com/ungerik/go-gravatar" ) var gravatarLog = avatarLog.NewChannel("GRA") // Gravatar - https://gravatar.com/ type Gravatar struct { Rating string RequestLimiter *time.Ticker } // GetAvatar returns the Gravatar image for a user (if available). func (source *Gravatar) GetAvatar(user *arn.User) *Avatar { // If the user has no Email registered we can't get a Gravatar. if user.Email == "" { gravatarLog.Error(user.Nick, "No Email") return nil } // Build URL gravatarURL := gravatar.Url(user.Email) + "?s=" + fmt.Sprint(arn.AvatarMaxSize) + "&d=404&r=" + source.Rating gravatarURL = strings.Replace(gravatarURL, "http://", "https://", 1) // Wait for request limiter to allow us to send a request <-source.RequestLimiter.C // Download return AvatarFromURL(gravatarURL, user) }