diff --git a/go.mod b/go.mod index 39c448f..2bf5c3c 100644 --- a/go.mod +++ b/go.mod @@ -16,11 +16,11 @@ require ( go.mau.fi/util v0.9.6 golang.org/x/net v0.50.0 gopkg.in/yaml.v3 v3.0.1 - maunium.net/go/mautrix v0.26.3 + maunium.net/go/mautrix v0.26.4-0.20260220155858-da21d0316623 ) require ( - filippo.io/edwards25519 v1.1.0 // indirect + filippo.io/edwards25519 v1.2.0 // indirect github.com/coder/websocket v1.8.14 // indirect github.com/coreos/go-systemd/v22 v22.6.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -38,7 +38,7 @@ require ( github.com/tidwall/sjson v1.2.5 // indirect go.mau.fi/zeroconfig v0.2.0 // indirect golang.org/x/crypto v0.48.0 // indirect - golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect + golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa // indirect golang.org/x/mod v0.33.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.41.0 // indirect diff --git a/go.sum b/go.sum index bcd5d63..a024f88 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= -filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo= +filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/beeper/slackgo v0.0.0-20250919162927-24f5c5701366 h1:KDmFodD/Obl284lCBYBjw7YoybCkpXfQtMRSbcEHeSs= @@ -60,8 +60,8 @@ go.mau.fi/zeroconfig v0.2.0 h1:e/OGEERqVRRKlgaro7E6bh8xXiKFSXB3eNNIud7FUjU= go.mau.fi/zeroconfig v0.2.0/go.mod h1:J0Vn0prHNOm493oZoQ84kq83ZaNCYZnq+noI1b1eN8w= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= -golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa h1:Zt3DZoOFFYkKhDT3v7Lm9FDMEV06GpzjG2jrqW+QTE0= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= @@ -83,5 +83,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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/mautrix v0.26.3 h1:tWZih6Vjw0qGTWuPmg9JUrQPzViTNDPGQLVc5UXC4nk= -maunium.net/go/mautrix v0.26.3/go.mod h1:v5ZdDoCwUpNqEj5OrhEoUa3L1kEddKPaAya9TgGXN38= +maunium.net/go/mautrix v0.26.4-0.20260220155858-da21d0316623 h1:ea1Sd0xjM7cSeSifzfRHzQxZ2ht4d08P7jNyNm3bZlY= +maunium.net/go/mautrix v0.26.4-0.20260220155858-da21d0316623/go.mod h1:lJvXCZya2dGT2KW7LUO7Ucna7Ohs6hl2+7v8Ji6R3iM= diff --git a/pkg/connector/chatinfo.go b/pkg/connector/chatinfo.go index 443f7e6..e18b3ac 100644 --- a/pkg/connector/chatinfo.go +++ b/pkg/connector/chatinfo.go @@ -331,6 +331,7 @@ func (s *SlackClient) wrapUserInfo(userID string, info *slack.User, botInfo *sla var avatar *bridgev2.Avatar var extraUpdateAvatarID networkid.AvatarID isBot := userID == "USLACKBOT" + var ep database.ExtraProfile if info != nil { name = ptr.Ptr(s.Main.Config.FormatDisplayname(&DisplaynameParams{ User: info, @@ -354,6 +355,9 @@ func (s *SlackClient) wrapUserInfo(userID string, info *slack.User, botInfo *sla extraUpdateAvatarID = avatar.ID avatar = nil } + if info.TZ != "" { + ep.With("m.tz", info.TZ) + } isBot = isBot || info.IsBot || info.IsAppUser } else if botInfo != nil { name = ptr.Ptr(s.Main.Config.FormatBotDisplayname(botInfo, &s.BootResp.Team.TeamInfo)) @@ -361,10 +365,11 @@ func (s *SlackClient) wrapUserInfo(userID string, info *slack.User, botInfo *sla isBot = true } return &bridgev2.UserInfo{ - Identifiers: []string{fmt.Sprintf("slack-internal:%s", userID)}, - Name: name, - Avatar: avatar, - IsBot: &isBot, + Identifiers: []string{fmt.Sprintf("slack-internal:%s", userID)}, + Name: name, + Avatar: avatar, + IsBot: &isBot, + ExtraProfile: ep, ExtraUpdates: func(ctx context.Context, ghost *bridgev2.Ghost) bool { meta := ghost.Metadata.(*slackid.GhostMetadata) meta.LastSync = jsontime.UnixNow()