|
|
|
@ -7,7 +7,6 @@ const TelegramBotPolling = require('./telegramPolling'); |
|
|
|
const debug = require('debug')('node-telegram-bot-api'); |
|
|
|
const debug = require('debug')('node-telegram-bot-api'); |
|
|
|
const EventEmitter = require('eventemitter3'); |
|
|
|
const EventEmitter = require('eventemitter3'); |
|
|
|
const fileType = require('file-type'); |
|
|
|
const fileType = require('file-type'); |
|
|
|
const Promise = require('bluebird'); |
|
|
|
|
|
|
|
const request = require('request-promise'); |
|
|
|
const request = require('request-promise'); |
|
|
|
const streamedRequest = require('request'); |
|
|
|
const streamedRequest = require('request'); |
|
|
|
const qs = require('querystring'); |
|
|
|
const qs = require('querystring'); |
|
|
|
@ -18,6 +17,7 @@ const URL = require('url'); |
|
|
|
const fs = require('fs'); |
|
|
|
const fs = require('fs'); |
|
|
|
const pump = require('pump'); |
|
|
|
const pump = require('pump'); |
|
|
|
const deprecate = require('depd')('node-telegram-bot-api'); |
|
|
|
const deprecate = require('depd')('node-telegram-bot-api'); |
|
|
|
|
|
|
|
let Promise = require('bluebird'); |
|
|
|
|
|
|
|
|
|
|
|
const _messageTypes = [ |
|
|
|
const _messageTypes = [ |
|
|
|
'audio', |
|
|
|
'audio', |
|
|
|
@ -49,10 +49,27 @@ const _deprecatedMessageTypes = [ |
|
|
|
'new_chat_participant', 'left_chat_participant' |
|
|
|
'new_chat_participant', 'left_chat_participant' |
|
|
|
]; |
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
// enable cancellation
|
|
|
|
|
|
|
|
|
|
|
|
// Enable Promise cancellation.
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
const msg = |
|
|
|
|
|
|
|
'Automatic enabling of cancellation of promises is deprecated.\n' + |
|
|
|
|
|
|
|
'In the future, you will have to enable it yourself.\n' + |
|
|
|
|
|
|
|
'See https://github.com/yagop/node-telegram-bot-api/issues/319.'; |
|
|
|
|
|
|
|
deprecate(msg); |
|
|
|
Promise.config({ |
|
|
|
Promise.config({ |
|
|
|
cancellation: true, |
|
|
|
cancellation: true, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
} catch (ex) { |
|
|
|
|
|
|
|
/* eslint-disable no-console */ |
|
|
|
|
|
|
|
const msg = |
|
|
|
|
|
|
|
'error: Enabling Promise cancellation failed.\n' + |
|
|
|
|
|
|
|
' Temporary fix is to load/require this library as early as possible before using any Promises.'; |
|
|
|
|
|
|
|
console.error(msg); |
|
|
|
|
|
|
|
throw ex; |
|
|
|
|
|
|
|
/* eslint-enable no-console */ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TelegramBot extends EventEmitter { |
|
|
|
class TelegramBot extends EventEmitter { |
|
|
|
|
|
|
|
|
|
|
|
@ -64,6 +81,19 @@ class TelegramBot extends EventEmitter { |
|
|
|
return _messageTypes; |
|
|
|
return _messageTypes; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Change Promise library used internally, for all existing and new |
|
|
|
|
|
|
|
* instances. |
|
|
|
|
|
|
|
* @param {Function} customPromise |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @example |
|
|
|
|
|
|
|
* const TelegramBot = require('node-telegram-bot-api'); |
|
|
|
|
|
|
|
* TelegramBot.Promise = myPromise; |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
static set Promise(customPromise) { |
|
|
|
|
|
|
|
Promise = customPromise; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
on(event, listener) { |
|
|
|
on(event, listener) { |
|
|
|
if (_deprecatedMessageTypes.indexOf(event) !== -1) { |
|
|
|
if (_deprecatedMessageTypes.indexOf(event) !== -1) { |
|
|
|
const url = 'https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events'; |
|
|
|
const url = 'https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events'; |
|
|
|
|