feat: setEmojiStatus
This commit is contained in:
parent
15b76aab60
commit
e7dc8f0ec7
3 changed files with 64 additions and 0 deletions
|
@ -240,6 +240,7 @@ import { getUsers } from './methods/users/get-users'
|
|||
import { iterProfilePhotos } from './methods/users/iter-profile-photos'
|
||||
import { resolvePeer } from './methods/users/resolve-peer'
|
||||
import { resolvePeerMany } from './methods/users/resolve-peer-many'
|
||||
import { setEmojiStatus } from './methods/users/set-emoji-status'
|
||||
import { setGlobalTtl } from './methods/users/set-global-ttl'
|
||||
import { setOffline } from './methods/users/set-offline'
|
||||
import { setProfilePhoto } from './methods/users/set-profile-photo'
|
||||
|
@ -4887,6 +4888,20 @@ export interface TelegramClient extends BaseTelegramClient {
|
|||
* @param force (default: `false`) Whether to force re-fetch the peer from the server
|
||||
*/
|
||||
resolvePeer(peerId: InputPeerLike, force?: boolean): Promise<tl.TypeInputPeer>
|
||||
/**
|
||||
* Set an emoji status for the current user
|
||||
*
|
||||
* @param emoji Custom emoji ID or `null` to remove the emoji
|
||||
*/
|
||||
setEmojiStatus(
|
||||
emoji: tl.Long | null,
|
||||
params?: {
|
||||
/**
|
||||
* Date when the emoji status should expire (only if `emoji` is not `null`)
|
||||
*/
|
||||
until?: number | Date
|
||||
},
|
||||
): Promise<void>
|
||||
/**
|
||||
* Changes the current default value of the Time-To-Live setting,
|
||||
* applied to all new chats.
|
||||
|
@ -5254,6 +5269,7 @@ export class TelegramClient extends BaseTelegramClient {
|
|||
iterProfilePhotos = iterProfilePhotos
|
||||
resolvePeerMany = resolvePeerMany
|
||||
resolvePeer = resolvePeer
|
||||
setEmojiStatus = setEmojiStatus
|
||||
setGlobalTtl = setGlobalTtl
|
||||
setOffline = setOffline
|
||||
setProfilePhoto = setProfilePhoto
|
||||
|
|
45
packages/client/src/methods/users/set-emoji-status.ts
Normal file
45
packages/client/src/methods/users/set-emoji-status.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
import { tl } from '@mtcute/core'
|
||||
|
||||
import { TelegramClient } from '../../client'
|
||||
import { normalizeDate } from '../../utils'
|
||||
|
||||
/**
|
||||
* Set an emoji status for the current user
|
||||
*
|
||||
* @param emoji Custom emoji ID or `null` to remove the emoji
|
||||
* @internal
|
||||
*/
|
||||
export async function setEmojiStatus(
|
||||
this: TelegramClient,
|
||||
emoji: tl.Long | null,
|
||||
params?: {
|
||||
/**
|
||||
* Date when the emoji status should expire (only if `emoji` is not `null`)
|
||||
*/
|
||||
until?: number | Date
|
||||
},
|
||||
): Promise<void> {
|
||||
const { until } = params ?? {}
|
||||
|
||||
let emojiStatus: tl.TypeEmojiStatus
|
||||
|
||||
if (emoji === null) {
|
||||
emojiStatus = { _: 'emojiStatusEmpty' }
|
||||
} else if (until) {
|
||||
emojiStatus = {
|
||||
_: 'emojiStatusUntil',
|
||||
documentId: emoji,
|
||||
until: normalizeDate(until),
|
||||
}
|
||||
} else {
|
||||
emojiStatus = {
|
||||
_: 'emojiStatus',
|
||||
documentId: emoji,
|
||||
}
|
||||
}
|
||||
|
||||
await this.call({
|
||||
_: 'account.updateEmojiStatus',
|
||||
emojiStatus,
|
||||
})
|
||||
}
|
|
@ -53,6 +53,9 @@ export function extractChannelIdFromUpdate(upd: tl.TypeUpdate): number | undefin
|
|||
return res
|
||||
}
|
||||
|
||||
export function normalizeDate(date: Date | number): number
|
||||
export function normalizeDate(date: Date | number | undefined): number | undefined
|
||||
|
||||
export function normalizeDate(date: Date | number | undefined): number | undefined {
|
||||
return date ? ~~((typeof date === 'number' ? date : date.getTime()) / 1000) : undefined
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue