mirror of
https://github.com/yagop/node-telegram-bot-api
synced 2025-08-30 05:48:00 +00:00
fix: editMessageMedia - Now you can send a local file
This commit is contained in:
parent
d87e8d258d
commit
b9e8675736
@ -1516,7 +1516,43 @@ class TelegramBot extends EventEmitter {
|
|||||||
* @see https://core.telegram.org/bots/api#editmessagemedia
|
* @see https://core.telegram.org/bots/api#editmessagemedia
|
||||||
*/
|
*/
|
||||||
editMessageMedia(media, form = {}) {
|
editMessageMedia(media, form = {}) {
|
||||||
|
const regexAttach = /attach:\/\/.+/;
|
||||||
|
|
||||||
|
if (typeof media.media === 'string' && regexAttach.test(media.media)) {
|
||||||
|
const opts = {
|
||||||
|
qs: form,
|
||||||
|
};
|
||||||
|
|
||||||
|
opts.formData = {};
|
||||||
|
|
||||||
|
const payload = Object.assign({}, media);
|
||||||
|
delete payload.media;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const attachName = String(0);
|
||||||
|
const [formData] = this._formatSendData(
|
||||||
|
attachName,
|
||||||
|
media.media.replace('attach://', ''),
|
||||||
|
media.fileOptions,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (formData) {
|
||||||
|
opts.formData[attachName] = formData[attachName];
|
||||||
|
payload.media = `attach://${attachName}`;
|
||||||
|
} else {
|
||||||
|
throw new errors.FatalError(`Failed to process the replacement action for your ${media.type}`);
|
||||||
|
}
|
||||||
|
} catch (ex) {
|
||||||
|
return Promise.reject(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
opts.qs.media = JSON.stringify(payload);
|
||||||
|
|
||||||
|
return this._request('editMessageMedia', opts);
|
||||||
|
}
|
||||||
|
|
||||||
form.media = stringify(media);
|
form.media = stringify(media);
|
||||||
|
|
||||||
return this._request('editMessageMedia', { form });
|
return this._request('editMessageMedia', { form });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user