mtcute/packages/client/src/methods/users/set-profile-photo.ts
2021-05-09 14:35:58 +03:00

28 lines
807 B
TypeScript

import { TelegramClient } from '../../client'
import { InputFileLike, Photo } from '../../types'
import { tl } from '@mtcute/tl'
/**
* Set a new profile photo or video.
*
* @param type Media type (photo or video)
* @param media Input media file
* @param previewSec
* When `type = video`, timestamp in seconds which will be shown
* as a static preview.
* @internal
*/
export async function setProfilePhoto(
this: TelegramClient,
type: 'photo' | 'video',
media: InputFileLike,
previewSec?: number
): Promise<Photo> {
const res = await this.call({
_: 'photos.uploadProfilePhoto',
[type === 'photo' ? 'file' : 'video']: await this._normalizeInputFile(media, {}),
videoStartTs: previewSec
})
return new Photo(this, res.photo as tl.RawPhoto)
}