feat(client): added non-working translation methods

This commit is contained in:
teidesu 2022-04-29 17:54:11 +03:00
parent d0218ece42
commit 2b0af79fb3
3 changed files with 175 additions and 66 deletions

View file

@ -1,6 +1,67 @@
/* THIS FILE WAS AUTO-GENERATED */ /* THIS FILE WAS AUTO-GENERATED */
import { BaseTelegramClient } from '@mtcute/core' import { BaseTelegramClient } from '@mtcute/core'
import { tl } from '@mtcute/tl' import { tl } from '@mtcute/tl'
import { Readable } from 'stream'
import {
ArrayWithTotal,
BotCommands,
BotStoppedUpdate,
CallbackQuery,
Chat,
ChatEvent,
ChatInviteLink,
ChatMember,
ChatMemberUpdate,
ChatPreview,
ChosenInlineResult,
Conversation,
DeleteMessageUpdate,
Dialog,
FileDownloadParameters,
FormattedString,
GameHighScore,
HistoryReadUpdate,
IMessageEntityParser,
InlineQuery,
InputFileLike,
InputInlineResult,
InputMediaLike,
InputPeerLike,
InputStickerSetItem,
MaybeDynamic,
Message,
MessageMedia,
ParsedUpdate,
PartialExcept,
PartialOnly,
PeersIndex,
Photo,
Poll,
PollUpdate,
PollVoteUpdate,
RawDocument,
ReplyMarkup,
SentCode,
StickerSet,
TakeoutSession,
TermsOfService,
TypingStatus,
UploadFileLike,
UploadedFile,
User,
UserStatusUpdate,
UserTypingUpdate,
} from './types'
import {
AsyncLock,
Deque,
MaybeArray,
MaybeAsync,
SessionConnection,
SortedLinkedList,
} from '@mtcute/core'
import { tdFileId } from '@mtcute/file-id'
import { Logger } from '@mtcute/core/src/utils/logger'
import { acceptTos } from './methods/auth/accept-tos' import { acceptTos } from './methods/auth/accept-tos'
import { checkPassword } from './methods/auth/check-password' import { checkPassword } from './methods/auth/check-password'
import { getPasswordHint } from './methods/auth/get-password-hint' import { getPasswordHint } from './methods/auth/get-password-hint'
@ -65,6 +126,7 @@ import { addContact } from './methods/contacts/add-contact'
import { deleteContacts } from './methods/contacts/delete-contacts' import { deleteContacts } from './methods/contacts/delete-contacts'
import { getContacts } from './methods/contacts/get-contacts' import { getContacts } from './methods/contacts/get-contacts'
import { importContacts } from './methods/contacts/import-contacts' import { importContacts } from './methods/contacts/import-contacts'
import { _pushConversationMessage } from './methods/dialogs/_init-conversation'
import { createFolder } from './methods/dialogs/create-folder' import { createFolder } from './methods/dialogs/create-folder'
import { deleteFolder } from './methods/dialogs/delete-folder' import { deleteFolder } from './methods/dialogs/delete-folder'
import { editFolder } from './methods/dialogs/edit-folder' import { editFolder } from './methods/dialogs/edit-folder'
@ -73,7 +135,6 @@ import { getDialogs } from './methods/dialogs/get-dialogs'
import { getFolders } from './methods/dialogs/get-folders' import { getFolders } from './methods/dialogs/get-folders'
import { getPeerDialogs } from './methods/dialogs/get-peer-dialogs' import { getPeerDialogs } from './methods/dialogs/get-peer-dialogs'
import { _parseDialogs } from './methods/dialogs/parse-dialogs' import { _parseDialogs } from './methods/dialogs/parse-dialogs'
import { _pushConversationMessage } from './methods/dialogs/_init-conversation'
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'
@ -121,6 +182,8 @@ import { sendScheduled } from './methods/messages/send-scheduled'
import { sendText } from './methods/messages/send-text' import { sendText } from './methods/messages/send-text'
import { sendTyping } from './methods/messages/send-typing' import { sendTyping } from './methods/messages/send-typing'
import { sendVote } from './methods/messages/send-vote' import { sendVote } from './methods/messages/send-vote'
import { translateMessage } from './methods/messages/translate-message'
import { translateText } from './methods/messages/translate-text'
import { unpinAllMessages } from './methods/messages/unpin-all-messages' import { unpinAllMessages } from './methods/messages/unpin-all-messages'
import { unpinMessage } from './methods/messages/unpin-message' import { unpinMessage } from './methods/messages/unpin-message'
import { initTakeoutSession } from './methods/misc/init-takeout-session' import { initTakeoutSession } from './methods/misc/init-takeout-session'
@ -146,14 +209,6 @@ import { getStickerSet } from './methods/stickers/get-sticker-set'
import { moveStickerInSet } from './methods/stickers/move-sticker-in-set' import { moveStickerInSet } from './methods/stickers/move-sticker-in-set'
import { setStickerSetThumb } from './methods/stickers/set-sticker-set-thumb' import { setStickerSetThumb } from './methods/stickers/set-sticker-set-thumb'
import { ConditionVariable } from '@mtcute/core/src/utils/condition-variable' import { ConditionVariable } from '@mtcute/core/src/utils/condition-variable'
import {
AsyncLock,
Deque,
MaybeArray,
MaybeAsync,
SessionConnection,
SortedLinkedList,
} from '@mtcute/core'
import { RpsMeter } from './utils/rps-meter' import { RpsMeter } from './utils/rps-meter'
import { import {
_dispatchUpdate, _dispatchUpdate,
@ -186,59 +241,6 @@ import { setProfilePhoto } from './methods/users/set-profile-photo'
import { unblockUser } from './methods/users/unblock-user' import { unblockUser } from './methods/users/unblock-user'
import { updateProfile } from './methods/users/update-profile' import { updateProfile } from './methods/users/update-profile'
import { updateUsername } from './methods/users/update-username' import { updateUsername } from './methods/users/update-username'
import { Readable } from 'stream'
import {
ArrayWithTotal,
BotCommands,
BotStoppedUpdate,
CallbackQuery,
Chat,
ChatEvent,
ChatInviteLink,
ChatMember,
ChatMemberUpdate,
ChatPreview,
ChosenInlineResult,
Conversation,
DeleteMessageUpdate,
Dialog,
FileDownloadParameters,
FormattedString,
GameHighScore,
HistoryReadUpdate,
IMessageEntityParser,
InlineQuery,
InputFileLike,
InputInlineResult,
InputMediaLike,
InputPeerLike,
InputStickerSetItem,
MaybeDynamic,
Message,
MessageMedia,
ParsedUpdate,
PartialExcept,
PartialOnly,
PeersIndex,
Photo,
Poll,
PollUpdate,
PollVoteUpdate,
RawDocument,
ReplyMarkup,
SentCode,
StickerSet,
TakeoutSession,
TermsOfService,
TypingStatus,
UploadFileLike,
UploadedFile,
User,
UserStatusUpdate,
UserTypingUpdate,
} from './types'
import { tdFileId } from '@mtcute/file-id'
import { Logger } from '@mtcute/core/src/utils/logger'
// from methods/updates.ts // from methods/updates.ts
interface PendingUpdateContainer { interface PendingUpdateContainer {
@ -1076,14 +1078,14 @@ export interface TelegramClient extends BaseTelegramClient {
maxId?: number maxId?: number
): Promise<void> ): Promise<void>
/** /**
* Delete all messages of a user in a supergroup * Delete all messages of a user (or channel) in a supergroup
* *
* @param chatId Chat ID * @param chatId Chat ID
* @param userId User ID * @param participantId User/channel ID
*/ */
deleteUserHistory( deleteUserHistory(
chatId: InputPeerLike, chatId: InputPeerLike,
userId: InputPeerLike participantId: InputPeerLike
): Promise<void> ): Promise<void>
/** /**
* Edit supergroup/channel admin rights of a user. * Edit supergroup/channel admin rights of a user.
@ -3013,6 +3015,40 @@ export interface TelegramClient extends BaseTelegramClient {
message: number, message: number,
options: null | MaybeArray<number | Buffer> options: null | MaybeArray<number | Buffer>
): Promise<Poll> ): Promise<Poll>
/**
* Translate message text to a given language.
*
* Returns `null` if it could not translate the message.
*
* > **Note**: For now doesn't seem to work, returns null for all messages.
*
* @param chatId Chat or user ID
* @param messageId Identifier of the message to translate
* @param toLanguage Target language (two-letter ISO 639-1 language code)
* @param fromLanguage Source language (two-letter ISO 639-1 language code, by default auto-detected)
*/
translateMessage(
chatId: InputPeerLike,
messageId: number,
toLanguage: string,
fromLanguage?: string
): Promise<string | null>
/**
* Translate text to a given language.
*
* Returns `null` if it could not translate the message.
*
* > **Note**: For now doesn't seem to work, returns null for all messages.
*
* @param text Text to translate
* @param toLanguage Target language (two-letter ISO 639-1 language code)
* @param fromLanguage Source language (two-letter ISO 639-1 language code, by default auto-detected)
*/
translateText(
text: string,
toLanguage: string,
fromLanguage?: string
): Promise<string | null>
/** /**
* Unpin all pinned messages in a chat. * Unpin all pinned messages in a chat.
* *
@ -3699,6 +3735,7 @@ export class TelegramClient extends BaseTelegramClient {
deleteContacts = deleteContacts deleteContacts = deleteContacts
getContacts = getContacts getContacts = getContacts
importContacts = importContacts importContacts = importContacts
protected _pushConversationMessage = _pushConversationMessage
createFolder = createFolder createFolder = createFolder
deleteFolder = deleteFolder deleteFolder = deleteFolder
editFolder = editFolder editFolder = editFolder
@ -3707,7 +3744,6 @@ export class TelegramClient extends BaseTelegramClient {
getFolders = getFolders getFolders = getFolders
getPeerDialogs = getPeerDialogs getPeerDialogs = getPeerDialogs
protected _parseDialogs = _parseDialogs protected _parseDialogs = _parseDialogs
protected _pushConversationMessage = _pushConversationMessage
downloadAsBuffer = downloadAsBuffer downloadAsBuffer = downloadAsBuffer
downloadToFile = downloadToFile downloadToFile = downloadToFile
downloadAsIterable = downloadAsIterable downloadAsIterable = downloadAsIterable
@ -3753,6 +3789,8 @@ export class TelegramClient extends BaseTelegramClient {
sendText = sendText sendText = sendText
sendTyping = sendTyping sendTyping = sendTyping
sendVote = sendVote sendVote = sendVote
translateMessage = translateMessage
translateText = translateText
unpinAllMessages = unpinAllMessages unpinAllMessages = unpinAllMessages
unpinMessage = unpinMessage unpinMessage = unpinMessage
initTakeoutSession = initTakeoutSession initTakeoutSession = initTakeoutSession

View file

@ -0,0 +1,37 @@
import { TelegramClient } from '../../client'
import { InputPeerLike } from '../../types'
/**
* Translate message text to a given language.
*
* Returns `null` if it could not translate the message.
*
* > **Note**: For now doesn't seem to work, returns null for all messages.
*
* @param chatId Chat or user ID
* @param messageId Identifier of the message to translate
* @param toLanguage Target language (two-letter ISO 639-1 language code)
* @param fromLanguage Source language (two-letter ISO 639-1 language code, by default auto-detected)
* @internal
*/
export async function translateMessage(
this: TelegramClient,
chatId: InputPeerLike,
messageId: number,
toLanguage: string,
fromLanguage?: string
): Promise<string | null> {
const res = await this.call({
_: 'messages.translateText',
peer: await this.resolvePeer(chatId),
msgId: messageId,
fromLang: fromLanguage,
toLang: toLanguage,
})
if (res._ === 'messages.translateNoResult') {
return null
}
return res.text
}

View file

@ -0,0 +1,34 @@
import { TelegramClient } from '../../client'
import { InputPeerLike } from '../../types'
/**
* Translate text to a given language.
*
* Returns `null` if it could not translate the message.
*
* > **Note**: For now doesn't seem to work, returns null for all messages.
*
* @param text Text to translate
* @param toLanguage Target language (two-letter ISO 639-1 language code)
* @param fromLanguage Source language (two-letter ISO 639-1 language code, by default auto-detected)
* @internal
*/
export async function translateText(
this: TelegramClient,
text: string,
toLanguage: string,
fromLanguage?: string
): Promise<string | null> {
const res = await this.call({
_: 'messages.translateText',
text,
fromLang: fromLanguage,
toLang: toLanguage,
})
if (res._ === 'messages.translateNoResult') {
return null
}
return res.text
}