avatar: fix downloading avatars
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
@@ -444,7 +444,11 @@ func (t *TelegramClient) getUserInfoFromTelegramUser(ctx context.Context, u tg.U
|
|||||||
avatar = &bridgev2.Avatar{
|
avatar = &bridgev2.Avatar{
|
||||||
ID: ids.MakeAvatarID(photo.PhotoID),
|
ID: ids.MakeAvatarID(photo.PhotoID),
|
||||||
Get: func(ctx context.Context) (data []byte, err error) {
|
Get: func(ctx context.Context) (data []byte, err error) {
|
||||||
data, _, err = media.NewTransferer(t.client.API()).WithUserPhoto(user, photo.PhotoID).Download(ctx)
|
transferer, err := media.NewTransferer(t.client.API()).WithUserPhoto(ctx, t.ScopedStore, user, photo.PhotoID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
data, _, err = transferer.Download(ctx)
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,14 +193,20 @@ func (t *Transferer) WithPhoto(pc tg.PhotoClass) *ReadyTransferer {
|
|||||||
// WithUser transforms a [Transferer] to a [ReadyTransferer] by setting the
|
// WithUser transforms a [Transferer] to a [ReadyTransferer] by setting the
|
||||||
// given user's photo as the location that will be downloaded by the
|
// given user's photo as the location that will be downloaded by the
|
||||||
// [ReadyTransferer].
|
// [ReadyTransferer].
|
||||||
func (t *Transferer) WithUserPhoto(user *tg.User, photoID int64) *ReadyTransferer {
|
func (t *Transferer) WithUserPhoto(ctx context.Context, store *store.ScopedStore, user *tg.User, photoID int64) (*ReadyTransferer, error) {
|
||||||
return &ReadyTransferer{
|
if accessHash, found, err := store.GetUserAccessHash(ctx, user.GetID()); err != nil {
|
||||||
inner: t,
|
return nil, fmt.Errorf("failed to get user access hash for %d: %w", user.GetID(), err)
|
||||||
loc: &tg.InputPeerPhotoFileLocation{
|
} else if !found {
|
||||||
Peer: &tg.InputPeerUser{UserID: user.GetID()},
|
return nil, fmt.Errorf("user access hash not found for %d", user.GetID())
|
||||||
PhotoID: photoID,
|
} else {
|
||||||
Big: true,
|
return &ReadyTransferer{
|
||||||
},
|
inner: t,
|
||||||
|
loc: &tg.InputPeerPhotoFileLocation{
|
||||||
|
Peer: &tg.InputPeerUser{UserID: user.GetID(), AccessHash: accessHash},
|
||||||
|
PhotoID: photoID,
|
||||||
|
Big: true,
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user