fix(client): archiveChats & unarchiveChats and respective bound methods for Chat
This commit is contained in:
parent
d592e55294
commit
8acad15d7c
4 changed files with 98 additions and 0 deletions
|
@ -14,10 +14,12 @@ import { signIn } from './methods/auth/sign-in'
|
||||||
import { signUp } from './methods/auth/sign-up'
|
import { signUp } from './methods/auth/sign-up'
|
||||||
import { start } from './methods/auth/start'
|
import { start } from './methods/auth/start'
|
||||||
import { addChatMembers } from './methods/chats/add-chat-members'
|
import { addChatMembers } from './methods/chats/add-chat-members'
|
||||||
|
import { archiveChats } from './methods/chats/archive-chats'
|
||||||
import { getChatPreview } from './methods/chats/get-chat-preview'
|
import { getChatPreview } from './methods/chats/get-chat-preview'
|
||||||
import { getChat } from './methods/chats/get-chat'
|
import { getChat } from './methods/chats/get-chat'
|
||||||
import { getFullChat } from './methods/chats/get-full-chat'
|
import { getFullChat } from './methods/chats/get-full-chat'
|
||||||
import { joinChat } from './methods/chats/join-chat'
|
import { joinChat } from './methods/chats/join-chat'
|
||||||
|
import { unarchiveChats } from './methods/chats/unarchive-chats'
|
||||||
import { downloadAsBuffer } from './methods/files/download-buffer'
|
import { downloadAsBuffer } from './methods/files/download-buffer'
|
||||||
import { downloadToFile } from './methods/files/download-file'
|
import { downloadToFile } from './methods/files/download-file'
|
||||||
import { downloadAsIterable } from './methods/files/download-iterable'
|
import { downloadAsIterable } from './methods/files/download-iterable'
|
||||||
|
@ -342,6 +344,14 @@ export class TelegramClient extends BaseTelegramClient {
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
return addChatMembers.apply(this, arguments)
|
return addChatMembers.apply(this, arguments)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Archive one or more chats
|
||||||
|
*
|
||||||
|
* @param chats Chat ID(s), username(s), phone number(s), `"me"` or `"self"`
|
||||||
|
*/
|
||||||
|
archiveChats(chats: MaybeArray<InputPeerLike>): Promise<void> {
|
||||||
|
return archiveChats.apply(this, arguments)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Get preview information about a private chat.
|
* Get preview information about a private chat.
|
||||||
*
|
*
|
||||||
|
@ -386,6 +396,14 @@ export class TelegramClient extends BaseTelegramClient {
|
||||||
joinChat(chatId: InputPeerLike): Promise<Chat> {
|
joinChat(chatId: InputPeerLike): Promise<Chat> {
|
||||||
return joinChat.apply(this, arguments)
|
return joinChat.apply(this, arguments)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Unarchive one or more chats
|
||||||
|
*
|
||||||
|
* @param chats Chat ID(s), username(s), phone number(s), `"me"` or `"self"`
|
||||||
|
*/
|
||||||
|
unarchiveChats(chats: MaybeArray<InputPeerLike>): Promise<void> {
|
||||||
|
return unarchiveChats.apply(this, arguments)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Download a file and return its contents as a Buffer.
|
* Download a file and return its contents as a Buffer.
|
||||||
*
|
*
|
||||||
|
|
33
packages/client/src/methods/chats/archive-chats.ts
Normal file
33
packages/client/src/methods/chats/archive-chats.ts
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import { TelegramClient } from '../../client'
|
||||||
|
import { MaybeArray } from '@mtcute/core'
|
||||||
|
import { InputPeerLike } from '../../types'
|
||||||
|
import { tl } from '@mtcute/tl'
|
||||||
|
import { normalizeToInputPeer } from '../../utils/peer-utils'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Archive one or more chats
|
||||||
|
*
|
||||||
|
* @param chats Chat ID(s), username(s), phone number(s), `"me"` or `"self"`
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
export async function archiveChats(
|
||||||
|
this: TelegramClient,
|
||||||
|
chats: MaybeArray<InputPeerLike>
|
||||||
|
): Promise<void> {
|
||||||
|
if (!Array.isArray(chats)) chats = [chats]
|
||||||
|
|
||||||
|
const folderPeers: tl.TypeInputFolderPeer[] = []
|
||||||
|
|
||||||
|
for (const chat of chats) {
|
||||||
|
folderPeers.push({
|
||||||
|
_: 'inputFolderPeer',
|
||||||
|
peer: normalizeToInputPeer(await this.resolvePeer(chat)),
|
||||||
|
folderId: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.call({
|
||||||
|
_: 'folders.editPeerFolders',
|
||||||
|
folderPeers
|
||||||
|
})
|
||||||
|
}
|
33
packages/client/src/methods/chats/unarchive-chats.ts
Normal file
33
packages/client/src/methods/chats/unarchive-chats.ts
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import { TelegramClient } from '../../client'
|
||||||
|
import { MaybeArray } from '@mtcute/core'
|
||||||
|
import { InputPeerLike } from '../../types'
|
||||||
|
import { tl } from '@mtcute/tl'
|
||||||
|
import { normalizeToInputPeer } from '../../utils/peer-utils'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unarchive one or more chats
|
||||||
|
*
|
||||||
|
* @param chats Chat ID(s), username(s), phone number(s), `"me"` or `"self"`
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
export async function unarchiveChats(
|
||||||
|
this: TelegramClient,
|
||||||
|
chats: MaybeArray<InputPeerLike>
|
||||||
|
): Promise<void> {
|
||||||
|
if (!Array.isArray(chats)) chats = [chats]
|
||||||
|
|
||||||
|
const folderPeers: tl.TypeInputFolderPeer[] = []
|
||||||
|
|
||||||
|
for (const chat of chats) {
|
||||||
|
folderPeers.push({
|
||||||
|
_: 'inputFolderPeer',
|
||||||
|
peer: normalizeToInputPeer(await this.resolvePeer(chat)),
|
||||||
|
folderId: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.call({
|
||||||
|
_: 'folders.editPeerFolders',
|
||||||
|
folderPeers
|
||||||
|
})
|
||||||
|
}
|
|
@ -441,6 +441,20 @@ export class Chat {
|
||||||
async addMembers(users: MaybeArray<InputPeerLike>, forwardCount?: number): Promise<void> {
|
async addMembers(users: MaybeArray<InputPeerLike>, forwardCount?: number): Promise<void> {
|
||||||
return this.client.addChatMembers(this.inputPeer, users, forwardCount)
|
return this.client.addChatMembers(this.inputPeer, users, forwardCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Archive this chat
|
||||||
|
*/
|
||||||
|
async archive(): Promise<void> {
|
||||||
|
return this.client.archiveChats(this.inputPeer)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unarchive this chat
|
||||||
|
*/
|
||||||
|
async unarchive(): Promise<void> {
|
||||||
|
return this.client.unarchiveChats(this.inputPeer)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
makeInspectable(Chat)
|
makeInspectable(Chat)
|
||||||
|
|
Loading…
Reference in a new issue