Pārlūkot izejas kodu

Adjust some things

Tulir Asokan 3 gadi atpakaļ
vecāks
revīzija
25d85962e4
6 mainītis faili ar 14 papildinājumiem un 20 dzēšanām
  1. 1 1
      go.mod
  2. 2 2
      go.sum
  3. 3 3
      guildportal.go
  4. 2 3
      portal.go
  5. 5 5
      puppet.go
  6. 1 6
      user.go

+ 1 - 1
go.mod

@@ -11,7 +11,7 @@ require (
 	github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
 	github.com/yuin/goldmark v1.4.12
 	maunium.net/go/maulogger/v2 v2.3.2
-	maunium.net/go/mautrix v0.11.1-0.20220530120827-7eec0bd4d3c4
+	maunium.net/go/mautrix v0.11.1-0.20220530212627-b15517460fdb
 )
 
 require (

+ 2 - 2
go.sum

@@ -58,5 +58,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
 maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
 maunium.net/go/maulogger/v2 v2.3.2 h1:1XmIYmMd3PoQfp9J+PaHhpt80zpfmMqaShzUTC7FwY0=
 maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A=
-maunium.net/go/mautrix v0.11.1-0.20220530120827-7eec0bd4d3c4 h1:/A03e5QOu8nTi6QChiEr0Udg2YE6alB7ZNJwYdHqDQk=
-maunium.net/go/mautrix v0.11.1-0.20220530120827-7eec0bd4d3c4/go.mod h1:CiKpMhAx5QZFHK03jpWb0iKI3sGU8x6+LfsOjDrcO8I=
+maunium.net/go/mautrix v0.11.1-0.20220530212627-b15517460fdb h1:MTY4bW0yhg8bHszMSNymTrHvIRdiDjcnQKC8qSbt5BE=
+maunium.net/go/mautrix v0.11.1-0.20220530212627-b15517460fdb/go.mod h1:CiKpMhAx5QZFHK03jpWb0iKI3sGU8x6+LfsOjDrcO8I=

+ 3 - 3
guildportal.go

@@ -21,6 +21,7 @@ import (
 	"sync"
 
 	log "maunium.net/go/maulogger/v2"
+
 	"maunium.net/go/mautrix"
 	"maunium.net/go/mautrix/event"
 	"maunium.net/go/mautrix/id"
@@ -265,15 +266,14 @@ func (guild *Guild) UpdateAvatar(iconID string) bool {
 	}
 	guild.AvatarSet = false
 	guild.Avatar = iconID
+	guild.AvatarURL = id.ContentURI{}
 	if guild.Avatar != "" {
 		var err error
 		guild.AvatarURL, err = uploadAvatar(guild.bridge.Bot, discordgo.EndpointGuildIcon(guild.ID, iconID))
 		if err != nil {
-			guild.log.Warnln("Failed to reupload avatar %s: %v", iconID, err)
+			guild.log.Warnfln("Failed to reupload guild avatar %s: %v", guild.Avatar, err)
 			return true
 		}
-	} else {
-		guild.AvatarURL = id.ContentURI{}
 	}
 	if guild.MXID != "" {
 		_, err := guild.bridge.Bot.SetRoomAvatar(guild.MXID, guild.AvatarURL)

+ 2 - 3
portal.go

@@ -1401,16 +1401,15 @@ func (portal *Portal) UpdateGroupDMAvatar(iconID string) bool {
 	}
 	portal.Avatar = iconID
 	portal.AvatarSet = false
+	portal.AvatarURL = id.ContentURI{}
 	if portal.Avatar != "" {
 		uri, err := uploadAvatar(portal.MainIntent(), discordgo.EndpointGroupIcon(portal.Key.ChannelID, portal.Avatar))
 		if err != nil {
-			portal.log.Warnln("Failed to reupload avatar:", err)
+			portal.log.Warnfln("Failed to reupload channel avatar %s: %v", portal.Avatar, err)
 			return true
 		} else {
 			portal.AvatarURL = uri
 		}
-	} else {
-		portal.AvatarURL = id.ContentURI{}
 	}
 	portal.updateRoomAvatar()
 	return true

+ 5 - 5
puppet.go

@@ -206,16 +206,16 @@ func (puppet *Puppet) UpdateAvatar(info *discordgo.User) bool {
 	if puppet.Avatar == info.Avatar && puppet.AvatarSet {
 		return false
 	}
+	avatarChanged := info.Avatar != puppet.Avatar
 	puppet.Avatar = info.Avatar
 	puppet.AvatarSet = false
+	puppet.AvatarURL = id.ContentURI{}
 
-	if puppet.Avatar == "" {
-		// TODO should we just use discord's default avatars?
-		puppet.AvatarURL = id.ContentURI{}
-	} else {
+	// TODO should we just use discord's default avatars for users with no avatar?
+	if puppet.Avatar != "" && (puppet.AvatarURL.IsEmpty() || avatarChanged) {
 		url, err := uploadAvatar(puppet.DefaultIntent(), info.AvatarURL(""))
 		if err != nil {
-			puppet.log.Warnln("Failed to reupload user avatar:", err)
+			puppet.log.Warnfln("Failed to reupload user avatar %s: %v", puppet.Avatar, err)
 			return true
 		}
 		puppet.AvatarURL = url

+ 1 - 6
user.go

@@ -454,7 +454,6 @@ func (user *User) Connect() error {
 
 	user.Session = session
 
-	// Add our event handlers
 	user.Session.AddHandler(user.readyHandler)
 	user.Session.AddHandler(user.connectedHandler)
 	user.Session.AddHandler(user.disconnectedHandler)
@@ -482,7 +481,6 @@ func (user *User) Connect() error {
 func (user *User) Disconnect() error {
 	user.Lock()
 	defer user.Unlock()
-
 	if user.Session == nil {
 		return ErrNotConnected
 	}
@@ -490,9 +488,7 @@ func (user *User) Disconnect() error {
 	if err := user.Session.Close(); err != nil {
 		return err
 	}
-
 	user.Session = nil
-
 	return nil
 }
 
@@ -507,14 +503,13 @@ func (user *User) bridgeMessage(guildID string) bool {
 		return true
 	}
 
-	user.log.Debugfln("Cgnoring message for non-bridged guild %s", guildID)
+	user.log.Debugfln("Ignoring message for non-bridged guild %s", guildID)
 	return false
 }
 
 func (user *User) readyHandler(_ *discordgo.Session, r *discordgo.Ready) {
 	user.log.Debugln("Discord connection ready")
 
-	// Update our user fields
 	if user.DiscordID != r.User.ID {
 		user.DiscordID = r.User.ID
 		user.Update()