diff --git a/CHANGELOG.md b/CHANGELOG.md index 34f1a9b..02f6cfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,9 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased][Unreleased] +Added: +1. (#429) Add *TelegramBot#getStickerSet* (by @CapacitorSet, @LibertyLocked) * * * diff --git a/doc/api.md b/doc/api.md index ad7e7e6..e9add98 100644 --- a/doc/api.md +++ b/doc/api.md @@ -75,6 +75,7 @@ TelegramBot * [.sendInvoice(chatId, title, description, payload, providerToken, startParameter, currency, prices, [options])](#TelegramBot+sendInvoice) ⇒ Promise * [.answerShippingQuery(shippingQueryId, ok, [options])](#TelegramBot+answerShippingQuery) ⇒ Promise * [.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options])](#TelegramBot+answerPreCheckoutQuery) ⇒ Promise + * [.getStickerSet(name, [options])](#TelegramBot+getStickerSet) ⇒ Promise * _static_ * [.Promise](#TelegramBot.Promise) @@ -977,6 +978,19 @@ Use this method to confirm shipping of a product. | ok | Boolean | Specify if every order details are ok | | [options] | Object | Additional Telegram query options | + + +### telegramBot.getStickerSet(name, [options]) ⇒ Promise +Use this method to get a sticker set. On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#getstickerset + +| Param | Type | Description | +| --- | --- | --- | +| name | String | Name of the sticker set | +| [options] | Object | Additional Telegram query options | + ### TelegramBot.Promise diff --git a/src/telegram.js b/src/telegram.js index ffedbfa..d3147e3 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -1499,6 +1499,19 @@ class TelegramBot extends EventEmitter { form.ok = ok; return this._request('answerPreCheckoutQuery', { form }); } + + /** + * Use this method to get a sticker set. On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned. + * + * @param {String} name Name of the sticker set + * @param {Object} [options] Additional Telegram query options + * @return {Promise} + * @see https://core.telegram.org/bots/api#getstickerset + */ + getStickerSet(name, form = {}) { + form.name = name; + return this._request('getStickerSet', { form }); + } } module.exports = TelegramBot; diff --git a/test/README.md b/test/README.md index 0e5a091..fa6f19f 100644 --- a/test/README.md +++ b/test/README.md @@ -10,9 +10,14 @@ export TEST_USER_ID= # Group Id which to use in some of the tests, e.g. for TelegramBot#getChat() export TEST_GROUP_ID= -# Game short name which to use in some of the tests, e.g. TelegramBot#sendGame() +# Game short name to use in some tests, e.g. TelegramBot#sendGame() +# Defaults to "medusalab_test". export TEST_GAME_SHORT_NAME= +# Sticker set name to use in some tests, e.g. TelegramBot#getStickerSet() +# Defaults to "pusheen". +export TEST_STICKER_SET_NAME= + # Payment provider token to be used export TEST_PROVIDER_TOKEN= diff --git a/test/telegram.js b/test/telegram.js index 05938f3..22e7f4a 100644 --- a/test/telegram.js +++ b/test/telegram.js @@ -26,6 +26,7 @@ if (!PROVIDER_TOKEN && !isCI) { // If is not running in Travis / Appveyor const USERID = process.env.TEST_USER_ID || 777000; const GROUPID = process.env.TEST_GROUP_ID || -1001075450562; const GAME_SHORT_NAME = process.env.TEST_GAME_SHORT_NAME || 'medusalab_test'; +const STICKER_SET_NAME = process.env.TEST_STICKER_SET_NAME || 'pusheen'; const timeout = 60 * 1000; let portindex = 8091; const staticPort = portindex++; @@ -1355,4 +1356,19 @@ describe('TelegramBot', function telegramSuite() { describe.skip('#answerShippingQuery', function answerShippingQuerySuite() {}); describe.skip('#answerPreCheckoutQuery', function answerPreCheckoutQuerySuite() {}); + + describe('#getStickerSet', function getStickerSetSuite() { + before(function before() { + utils.handleRatelimit(bot, 'getStickerSet', this); + }); + it('should get the sticker set given the name of the set', function test() { + return bot.getStickerSet(STICKER_SET_NAME).then(resp => { + assert.ok(is.object(resp)); + assert.equal(resp.name.toLowerCase(), STICKER_SET_NAME); + assert.ok(is.string(resp.title)); + assert.ok(is.boolean(resp.contains_masks)); + assert.ok(is.array(resp.stickers)); + }); + }); + }); }); // End Telegram