initial metadata: set room avatar
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
+1
-1
@@ -48,7 +48,7 @@
|
|||||||
* [ ] Avatar
|
* [ ] Avatar
|
||||||
* [ ] † About text
|
* [ ] † About text
|
||||||
* [ ] † Public channel username
|
* [ ] † Public channel username
|
||||||
* [ ] Initial chat metadata (about text missing)
|
* [x] Initial chat metadata (about text missing)
|
||||||
* [ ] User metadata (displayname/avatar)
|
* [ ] User metadata (displayname/avatar)
|
||||||
* [ ] Supergroup upgrade
|
* [ ] Supergroup upgrade
|
||||||
* Misc
|
* Misc
|
||||||
|
|||||||
+19
-4
@@ -17,6 +17,7 @@ import (
|
|||||||
"maunium.net/go/mautrix/bridgev2"
|
"maunium.net/go/mautrix/bridgev2"
|
||||||
"maunium.net/go/mautrix/bridgev2/networkid"
|
"maunium.net/go/mautrix/bridgev2/networkid"
|
||||||
|
|
||||||
|
"go.mau.fi/mautrix-telegram/pkg/connector/download"
|
||||||
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
|
"go.mau.fi/mautrix-telegram/pkg/connector/ids"
|
||||||
"go.mau.fi/mautrix-telegram/pkg/connector/msgconv"
|
"go.mau.fi/mautrix-telegram/pkg/connector/msgconv"
|
||||||
"go.mau.fi/mautrix-telegram/pkg/connector/util"
|
"go.mau.fi/mautrix-telegram/pkg/connector/util"
|
||||||
@@ -258,6 +259,7 @@ func (t *TelegramClient) GetChatInfo(ctx context.Context, portal *bridgev2.Porta
|
|||||||
var name string
|
var name string
|
||||||
var members []networkid.UserID
|
var members []networkid.UserID
|
||||||
var isSpace, isDM bool
|
var isSpace, isDM bool
|
||||||
|
var avatar *bridgev2.Avatar
|
||||||
|
|
||||||
switch peerType {
|
switch peerType {
|
||||||
case ids.PeerTypeUser:
|
case ids.PeerTypeUser:
|
||||||
@@ -287,6 +289,21 @@ func (t *TelegramClient) GetChatInfo(ctx context.Context, portal *bridgev2.Porta
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chatFull, ok := fullChat.FullChat.(*tg.ChatFull)
|
||||||
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("full chat is not %T", chatFull)
|
||||||
|
}
|
||||||
|
|
||||||
|
if photo, ok := chatFull.ChatPhoto.(*tg.Photo); ok {
|
||||||
|
avatar = &bridgev2.Avatar{
|
||||||
|
ID: ids.MakeAvatarID(photo.ID),
|
||||||
|
Get: func(ctx context.Context) (data []byte, err error) {
|
||||||
|
data, _, err = download.DownloadPhoto(ctx, t.client.API(), photo)
|
||||||
|
return
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, user := range fullChat.Users {
|
for _, user := range fullChat.Users {
|
||||||
members = append(members, ids.MakeUserID(user.GetID()))
|
members = append(members, ids.MakeUserID(user.GetID()))
|
||||||
}
|
}
|
||||||
@@ -296,10 +313,8 @@ func (t *TelegramClient) GetChatInfo(ctx context.Context, portal *bridgev2.Porta
|
|||||||
}
|
}
|
||||||
|
|
||||||
return &bridgev2.PortalInfo{
|
return &bridgev2.PortalInfo{
|
||||||
Name: &name,
|
Name: &name,
|
||||||
// TODO
|
Avatar: avatar,
|
||||||
// Avatar *Avatar
|
|
||||||
|
|
||||||
Members: members,
|
Members: members,
|
||||||
IsDirectChat: &isDM,
|
IsDirectChat: &isDM,
|
||||||
IsSpace: &isSpace,
|
IsSpace: &isSpace,
|
||||||
|
|||||||
@@ -99,3 +99,7 @@ func InputPeerForPortalID(portalID networkid.PortalID) (tg.InputPeerClass, error
|
|||||||
panic("invalid peer type")
|
panic("invalid peer type")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MakeAvatarID(photoID int64) networkid.AvatarID {
|
||||||
|
return networkid.AvatarID(strconv.FormatInt(photoID, 10))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user