mirror of
https://github.com/yagop/node-telegram-bot-api
synced 2025-08-23 10:27:49 +00:00
src/telegram: Don't JSON-serialize parameter if already of String type
This commit is contained in:
parent
012e7df35f
commit
ce9ff57a63
@ -73,6 +73,21 @@ if (!process.env.NTBA_FIX_319) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSON-serialize data. If the provided data is already a String,
|
||||||
|
* return it as is.
|
||||||
|
* @private
|
||||||
|
* @param {*} data
|
||||||
|
* @return {String}
|
||||||
|
*/
|
||||||
|
function stringify(data) {
|
||||||
|
if (typeof data === 'string') {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
return JSON.stringify(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class TelegramBot extends EventEmitter {
|
class TelegramBot extends EventEmitter {
|
||||||
/**
|
/**
|
||||||
* The different errors the library uses.
|
* The different errors the library uses.
|
||||||
@ -211,7 +226,7 @@ class TelegramBot extends EventEmitter {
|
|||||||
_fixReplyMarkup(obj) {
|
_fixReplyMarkup(obj) {
|
||||||
const replyMarkup = obj.reply_markup;
|
const replyMarkup = obj.reply_markup;
|
||||||
if (replyMarkup && typeof replyMarkup !== 'string') {
|
if (replyMarkup && typeof replyMarkup !== 'string') {
|
||||||
obj.reply_markup = JSON.stringify(replyMarkup);
|
obj.reply_markup = stringify(replyMarkup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -641,7 +656,7 @@ class TelegramBot extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
answerInlineQuery(inlineQueryId, results, form = {}) {
|
answerInlineQuery(inlineQueryId, results, form = {}) {
|
||||||
form.inline_query_id = inlineQueryId;
|
form.inline_query_id = inlineQueryId;
|
||||||
form.results = JSON.stringify(results);
|
form.results = stringify(results);
|
||||||
return this._request('answerInlineQuery', { form });
|
return this._request('answerInlineQuery', { form });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1556,8 +1571,8 @@ class TelegramBot extends EventEmitter {
|
|||||||
form.provider_token = providerToken;
|
form.provider_token = providerToken;
|
||||||
form.start_parameter = startParameter;
|
form.start_parameter = startParameter;
|
||||||
form.currency = currency;
|
form.currency = currency;
|
||||||
form.prices = JSON.stringify(prices);
|
form.prices = stringify(prices);
|
||||||
form.provider_data = JSON.stringify(form.provider_data);
|
form.provider_data = stringify(form.provider_data);
|
||||||
return this._request('sendInvoice', { form });
|
return this._request('sendInvoice', { form });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1574,7 +1589,7 @@ class TelegramBot extends EventEmitter {
|
|||||||
answerShippingQuery(shippingQueryId, ok, form = {}) {
|
answerShippingQuery(shippingQueryId, ok, form = {}) {
|
||||||
form.shipping_query_id = shippingQueryId;
|
form.shipping_query_id = shippingQueryId;
|
||||||
form.ok = ok;
|
form.ok = ok;
|
||||||
form.shipping_options = JSON.stringify(form.shipping_options);
|
form.shipping_options = stringify(form.shipping_options);
|
||||||
return this._request('answerShippingQuery', { form });
|
return this._request('answerShippingQuery', { form });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1657,7 +1672,7 @@ class TelegramBot extends EventEmitter {
|
|||||||
opts.qs.name = name;
|
opts.qs.name = name;
|
||||||
opts.qs.title = title;
|
opts.qs.title = title;
|
||||||
opts.qs.emojis = emojis;
|
opts.qs.emojis = emojis;
|
||||||
opts.qs.mask_position = JSON.stringify(options.mask_position);
|
opts.qs.mask_position = stringify(options.mask_position);
|
||||||
try {
|
try {
|
||||||
const sendData = this._formatSendData('png_sticker', pngSticker);
|
const sendData = this._formatSendData('png_sticker', pngSticker);
|
||||||
opts.formData = sendData[0];
|
opts.formData = sendData[0];
|
||||||
@ -1689,7 +1704,7 @@ class TelegramBot extends EventEmitter {
|
|||||||
opts.qs.user_id = userId;
|
opts.qs.user_id = userId;
|
||||||
opts.qs.name = name;
|
opts.qs.name = name;
|
||||||
opts.qs.emojis = emojis;
|
opts.qs.emojis = emojis;
|
||||||
opts.qs.mask_position = JSON.stringify(options.mask_position);
|
opts.qs.mask_position = stringify(options.mask_position);
|
||||||
try {
|
try {
|
||||||
const sendData = this._formatSendData('png_sticker', pngSticker);
|
const sendData = this._formatSendData('png_sticker', pngSticker);
|
||||||
opts.formData = sendData[0];
|
opts.formData = sendData[0];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user