Adjust some things

This commit is contained in:
Tulir Asokan
2022-05-31 00:34:21 +03:00
parent 06dbb3612c
commit 25d85962e4
6 changed files with 14 additions and 20 deletions

2
go.mod
View File

@@ -11,7 +11,7 @@ require (
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
github.com/yuin/goldmark v1.4.12 github.com/yuin/goldmark v1.4.12
maunium.net/go/maulogger/v2 v2.3.2 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 ( require (

4
go.sum
View File

@@ -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/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 h1:1XmIYmMd3PoQfp9J+PaHhpt80zpfmMqaShzUTC7FwY0=
maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A= 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.20220530212627-b15517460fdb h1:MTY4bW0yhg8bHszMSNymTrHvIRdiDjcnQKC8qSbt5BE=
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/go.mod h1:CiKpMhAx5QZFHK03jpWb0iKI3sGU8x6+LfsOjDrcO8I=

View File

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

View File

@@ -1401,16 +1401,15 @@ func (portal *Portal) UpdateGroupDMAvatar(iconID string) bool {
} }
portal.Avatar = iconID portal.Avatar = iconID
portal.AvatarSet = false portal.AvatarSet = false
portal.AvatarURL = id.ContentURI{}
if portal.Avatar != "" { if portal.Avatar != "" {
uri, err := uploadAvatar(portal.MainIntent(), discordgo.EndpointGroupIcon(portal.Key.ChannelID, portal.Avatar)) uri, err := uploadAvatar(portal.MainIntent(), discordgo.EndpointGroupIcon(portal.Key.ChannelID, portal.Avatar))
if err != nil { 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 return true
} else { } else {
portal.AvatarURL = uri portal.AvatarURL = uri
} }
} else {
portal.AvatarURL = id.ContentURI{}
} }
portal.updateRoomAvatar() portal.updateRoomAvatar()
return true return true

View File

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

View File

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