2
0
mirror of https://github.com/yagop/node-telegram-bot-api synced 2025-08-23 10:27:49 +00:00

Merge pull request #922 from danielperez9430/master

Telegram Bot API 5.5 Support
This commit is contained in:
Yago 2021-12-10 02:13:56 +01:00 committed by GitHub
commit e114682f2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 100 additions and 10 deletions

View File

@ -3,6 +3,19 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [0.56.0][0.56.0] - 2021-12-07
Added:
1. Support Bot API v5.5: (@danielperez9430)
* Add method *banChatSenderChat()*
* Add method *unbanChatSenderChat()*
Fixes:
* Tests for support with new invite link format
## [0.55.0][0.55.0] - 2021-11-06
Added:

View File

@ -5,7 +5,7 @@
Node.js module to interact with the official [Telegram Bot API](https://core.telegram.org/bots/api).
[![Bot API](https://img.shields.io/badge/Bot%20API-v.5.4-00aced.svg?style=flat-square&logo=telegram)](https://core.telegram.org/bots/api)
[![Bot API](https://img.shields.io/badge/Bot%20API-v.5.5-00aced.svg?style=flat-square&logo=telegram)](https://core.telegram.org/bots/api)
[![npm package](https://img.shields.io/npm/v/node-telegram-bot-api?logo=npm&style=flat-square)](https://www.npmjs.org/package/node-telegram-bot-api)
[![Build Status](https://img.shields.io/travis/yagop/node-telegram-bot-api/master?style=flat-square&logo=travis)](https://travis-ci.org/yagop/node-telegram-bot-api)
[![Coverage Status](https://img.shields.io/codecov/c/github/yagop/node-telegram-bot-api?style=flat-square&logo=codecov)](https://codecov.io/gh/yagop/node-telegram-bot-api)

View File

@ -49,6 +49,8 @@ TelegramBot
* [.restrictChatMember(chatId, userId, [options])](#TelegramBot+restrictChatMember) ⇒ <code>Promise</code>
* [.promoteChatMember(chatId, userId, [options])](#TelegramBot+promoteChatMember) ⇒ <code>Promise</code>
* [.setChatAdministratorCustomTitle(chatId, userId, customTitle, [options])](#TelegramBot+setChatAdministratorCustomTitle) ⇒ <code>Promise</code>
* [.banChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+banChatSenderChat) ⇒ <code>Boolean</code>
* [.unbanChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+unbanChatSenderChat) ⇒ <code>Boolean</code>
* [.setChatPermissions(chatId, chatPermissions, [options])](#TelegramBot+setChatPermissions) ⇒ <code>Promise</code>
* [.exportChatInviteLink(chatId, [options])](#TelegramBot+exportChatInviteLink) ⇒ <code>Promise</code>
* [.createChatInviteLink(chatId, [options])](#TelegramBot+createChatInviteLink) ⇒ <code>Object</code>
@ -703,6 +705,41 @@ Returns True on success.
| customTitle | <code>String</code> | New custom title for the administrator; 0-16 characters, emoji are not allowed |
| [options] | <code>Object</code> | Additional Telegram query options |
<a name="TelegramBot+banChatSenderChat"></a>
### telegramBot.banChatSenderChat(chatId, senderChatId, [options]) ⇒ <code>Boolean</code>
Use this method to ban a channel chat in a supergroup or a channel.
The owner of the chat will not be able to send messages and join live streams
on behalf of the chat, unless it is unbanned first.
The bot must be an administrator in the supergroup or channel for this to work
and must have the appropriate administrator rights.
Returns True on success.
**Kind**: instance method of [<code>TelegramBot</code>](#TelegramBot)
**See**: https://core.telegram.org/bots/api#banchatsenderchat
| Param | Type | Description |
| --- | --- | --- |
| chatId | <code>Number</code> \| <code>String</code> | Unique identifier for the target group or username of the target supergroup |
| senderChatId | <code>Number</code> | Unique identifier of the target user |
| [options] | <code>Object</code> | Additional Telegram query options |
<a name="TelegramBot+unbanChatSenderChat"></a>
### telegramBot.unbanChatSenderChat(chatId, senderChatId, [options]) ⇒ <code>Boolean</code>
Use this method to unban a previously banned channel chat in a supergroup or channel.
The bot must be an administrator for this to work and must have the appropriate administrator rights.
Returns True on success.
**Kind**: instance method of [<code>TelegramBot</code>](#TelegramBot)
**See**: https://core.telegram.org/bots/api#unbanchatsenderchat
| Param | Type | Description |
| --- | --- | --- |
| chatId | <code>Number</code> \| <code>String</code> | Unique identifier for the target group or username of the target supergroup |
| senderChatId | <code>Number</code> | Unique identifier of the target user |
| [options] | <code>Object</code> | Additional Telegram query options |
<a name="TelegramBot+setChatPermissions"></a>
### telegramBot.setChatPermissions(chatId, chatPermissions, [options]) ⇒ <code>Promise</code>
@ -1032,8 +1069,7 @@ Otherwise, message type can be changed arbitrarily. When inline message is edite
Use previously uploaded file via its file_id or specify a URL.
On success, the edited Message is returned.
Note that you must provide one of chat_id, message_id, or
inline_message_id in your request.
Note that you must provide one of chat_id, message_id, or inline_message_id in your request.
**Kind**: instance method of [<code>TelegramBot</code>](#TelegramBot)
**See**: https://core.telegram.org/bots/api#editmessagemedia

View File

@ -1,6 +1,6 @@
{
"name": "node-telegram-bot-api",
"version": "0.55.0",
"version": "0.56.0",
"description": "Telegram Bot API",
"main": "./index.js",
"directories": {

View File

@ -1148,6 +1148,44 @@ class TelegramBot extends EventEmitter {
return this._request('setChatAdministratorCustomTitle', { form });
}
/**
* Use this method to ban a channel chat in a supergroup or a channel.
* The owner of the chat will not be able to send messages and join live streams
* on behalf of the chat, unless it is unbanned first.
* The bot must be an administrator in the supergroup or channel for this to work
* and must have the appropriate administrator rights.
* Returns True on success.
*
* @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup
* @param {Number} senderChatId Unique identifier of the target user
* @param {Object} [options] Additional Telegram query options
* @return {Boolean}
* @see https://core.telegram.org/bots/api#banchatsenderchat
*/
banChatSenderChat(chatId, senderChatId, form = {}) {
form.chat_id = chatId;
form.sender_chat_id = senderChatId;
return this._request('banChatSenderChat', { form });
}
/**
* Use this method to unban a previously banned channel chat in a supergroup or channel.
* The bot must be an administrator for this to work and must have the appropriate administrator rights.
* Returns True on success.
*
* @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup
* @param {Number} senderChatId Unique identifier of the target user
* @param {Object} [options] Additional Telegram query options
* @return {Boolean}
* @see https://core.telegram.org/bots/api#unbanchatsenderchat
*/
unbanChatSenderChat(chatId, senderChatId, form = {}) {
form.chat_id = chatId;
form.sender_chat_id = senderChatId;
return this._request('unbanChatSenderChat', { form });
}
/**
* Use this method to set default chat permissions for all members.
* The bot must be an administrator in the group or a supergroup for this to
@ -1507,8 +1545,7 @@ class TelegramBot extends EventEmitter {
* Use previously uploaded file via its file_id or specify a URL.
* On success, the edited Message is returned.
*
* Note that you must provide one of chat_id, message_id, or
* inline_message_id in your request.
* Note that you must provide one of chat_id, message_id, or inline_message_id in your request.
*
* @param {Object} media A JSON-serialized object for a new media content of the message
* @param {Object} [options] Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here)
@ -1533,7 +1570,7 @@ class TelegramBot extends EventEmitter {
const [formData] = this._formatSendData(
attachName,
media.media.replace('attach://', ''),
media.fileOptions,
media.fileOptions
);
if (formData) {

View File

@ -880,6 +880,10 @@ describe('TelegramBot', function telegramSuite() {
});
});
describe.skip('#banChatSenderChat', function banChatSenderChatSuite() { });
describe.skip('#unbanChatSenderChat', function banChatSenderChatSuite() { });
describe('#setChatPermissions ', function setChatPermissionsSuite() {
it('should set chat permissions', function test() {
const ChatPermissions = {
@ -904,7 +908,7 @@ describe('TelegramBot', function telegramSuite() {
});
it('should export the group invite link', function test() {
return bot.exportChatInviteLink(GROUPID).then(resp => {
assert(resp.match(/^https:\/\/t\.me\/joinchat\/.+$/i), 'is a telegram invite link');
assert(resp.match(/^https:\/\/t\.me\/.+$/i), 'is a telegram invite link');
});
});
});
@ -918,7 +922,7 @@ describe('TelegramBot', function telegramSuite() {
});
it('should create a chat invite link', function test() {
return bot.createChatInviteLink(GROUPID).then(resp => {
assert(resp.invite_link.match(/^https:\/\/t\.me\/joinchat\/.+$/i), 'is a telegram invite link');
assert(resp.invite_link.match(/^https:\/\/t\.me\/.+$/i), 'is a telegram invite link');
inviteLink = resp.invite_link;
});
});