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 { iterProfilePhotos } from './methods/users/iter-profile-photos'
|
||||||
import { resolvePeer } from './methods/users/resolve-peer'
|
import { resolvePeer } from './methods/users/resolve-peer'
|
||||||
import { resolvePeerMany } from './methods/users/resolve-peer-many'
|
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 { setGlobalTtl } from './methods/users/set-global-ttl'
|
||||||
import { setOffline } from './methods/users/set-offline'
|
import { setOffline } from './methods/users/set-offline'
|
||||||
import { setProfilePhoto } from './methods/users/set-profile-photo'
|
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
|
* @param force (default: `false`) Whether to force re-fetch the peer from the server
|
||||||
*/
|
*/
|
||||||
resolvePeer(peerId: InputPeerLike, force?: boolean): Promise<tl.TypeInputPeer>
|
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,
|
* Changes the current default value of the Time-To-Live setting,
|
||||||
* applied to all new chats.
|
* applied to all new chats.
|
||||||
|
@ -5254,6 +5269,7 @@ export class TelegramClient extends BaseTelegramClient {
|
||||||
iterProfilePhotos = iterProfilePhotos
|
iterProfilePhotos = iterProfilePhotos
|
||||||
resolvePeerMany = resolvePeerMany
|
resolvePeerMany = resolvePeerMany
|
||||||
resolvePeer = resolvePeer
|
resolvePeer = resolvePeer
|
||||||
|
setEmojiStatus = setEmojiStatus
|
||||||
setGlobalTtl = setGlobalTtl
|
setGlobalTtl = setGlobalTtl
|
||||||
setOffline = setOffline
|
setOffline = setOffline
|
||||||
setProfilePhoto = setProfilePhoto
|
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
|
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 {
|
export function normalizeDate(date: Date | number | undefined): number | undefined {
|
||||||
return date ? ~~((typeof date === 'number' ? date : date.getTime()) / 1000) : undefined
|
return date ? ~~((typeof date === 'number' ? date : date.getTime()) / 1000) : undefined
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue