From e3b2f747a90c3965da7cef7e3d9932db8e7f5372 Mon Sep 17 00:00:00 2001 From: teidesu Date: Fri, 18 Jun 2021 17:44:52 +0300 Subject: [PATCH] feat(client): override caption and entities for sendMedia --- packages/client/src/client.ts | 16 ++++++++++++++ .../client/src/methods/messages/send-media.ts | 21 +++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/client/src/client.ts b/packages/client/src/client.ts index 6a92d563..2316f72c 100644 --- a/packages/client/src/client.ts +++ b/packages/client/src/client.ts @@ -2359,6 +2359,22 @@ export interface TelegramClient extends BaseTelegramClient { chatId: InputPeerLike, media: InputMediaLike | string, params?: { + /** + * Override caption for `media`. + * + * Can be used, for example. when using File IDs + * or when using existing InputMedia objects. + */ + caption?: string + + /** + * Override entities for `media`. + * + * Can be used, for example. when using File IDs + * or when using existing InputMedia objects. + */ + entities?: tl.TypeMessageEntity[] + /** * Message to reply to. Either a message object or message ID. */ diff --git a/packages/client/src/methods/messages/send-media.ts b/packages/client/src/methods/messages/send-media.ts index 36261b1e..e06b43f8 100644 --- a/packages/client/src/methods/messages/send-media.ts +++ b/packages/client/src/methods/messages/send-media.ts @@ -11,6 +11,7 @@ import { normalizeMessageId, randomUlong, } from '../../utils/misc-utils' +import { tl } from '@mtcute/tl' /** * Send a single media (a photo or a document-based media) @@ -29,6 +30,22 @@ export async function sendMedia( chatId: InputPeerLike, media: InputMediaLike | string, params?: { + /** + * Override caption for `media`. + * + * Can be used, for example. when using File IDs + * or when using existing InputMedia objects. + */ + caption?: string + + /** + * Override entities for `media`. + * + * Can be used, for example. when using File IDs + * or when using existing InputMedia objects. + */ + entities?: tl.TypeMessageEntity[] + /** * Message to reply to. Either a message object or message ID. */ @@ -102,9 +119,9 @@ export async function sendMedia( // some types dont have `caption` field, and ts warns us, // but since it's JS, they'll just be `undefined` and properly // handled by _parseEntities method - (media as any).caption, + params.caption || (media as any).caption, params.parseMode, - (media as any).entities + params.entities || (media as any).entities ) let peer = await this.resolvePeer(chatId)