Bot API 6.7 (#1168)

* Added 6.7 features

* Update after release

* Added tests

* Added changelog
This commit is contained in:
Alex Root Junior 2023-04-22 18:09:59 +03:00 committed by GitHub
parent aad2de4324
commit 1538bc2e2d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 754 additions and 51 deletions

View file

@ -38,9 +38,9 @@
{
"type": "Boolean",
"required": false,
"description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query",
"html_description": "<td>Pass <em>True</em> if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query</td>",
"rst_description": "Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query\n",
"description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.",
"html_description": "<td>Pass <em>True</em> if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.</td>",
"rst_description": "Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.\n",
"name": "is_personal"
},
{
@ -52,12 +52,12 @@
"name": "next_offset"
},
{
"type": "String",
"type": "InlineQueryResultsButton",
"required": false,
"description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter switch_pm_parameter",
"html_description": "<td>If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter <em>switch_pm_parameter</em></td>",
"rst_description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*\n",
"name": "switch_pm_text"
"description": "A JSON-serialized object describing a button to be shown above inline query results",
"html_description": "<td>A JSON-serialized object describing a button to be shown above inline query results</td>",
"rst_description": "A JSON-serialized object describing a button to be shown above inline query results\n",
"name": "button"
},
{
"type": "String",
@ -65,7 +65,23 @@
"description": "Deep-linking parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed.\n\nExample: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.",
"html_description": "<td><a href=\"/bots/features#deep-linking\">Deep-linking</a> parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>_</code> and <code>-</code> are allowed.<br/>\n<br/>\n<em>Example:</em> An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a <a href=\"#inlinekeyboardmarkup\"><em>switch_inline</em></a> button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.</td>",
"rst_description": "`Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.\n\n\n\n*Example:* An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a `https://core.telegram.org/bots/api#inlinekeyboardmarkup <https://core.telegram.org/bots/api#inlinekeyboardmarkup>`_ *switch_inline* button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.\n",
"name": "switch_pm_parameter"
"name": "switch_pm_parameter",
"deprecated": {
"version": "6.7",
"release_date": "2023-04-21"
}
},
{
"type": "String",
"required": false,
"description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter switch_pm_parameter",
"html_description": "<td>If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter <em>switch_pm_parameter</em></td>",
"rst_description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*\n",
"name": "switch_pm_text",
"deprecated": {
"version": "6.7",
"release_date": "2023-04-21"
}
}
],
"category": "methods"

View file

@ -0,0 +1,25 @@
{
"meta": {},
"group": {
"title": "Available methods",
"anchor": "available-methods"
},
"object": {
"anchor": "getmyname",
"name": "getMyName",
"description": "Use this method to get the current bot name for the given user language. Returns BotName on success.",
"html_description": "<p>Use this method to get the current bot name for the given user language. Returns <a href=\"#botname\">BotName</a> on success.</p>",
"rst_description": "Use this method to get the current bot name for the given user language. Returns :class:`aiogram.types.bot_name.BotName` on success.",
"annotations": [
{
"type": "String",
"required": false,
"description": "A two-letter ISO 639-1 language code or an empty string",
"html_description": "<td>A two-letter ISO 639-1 language code or an empty string</td>",
"rst_description": "A two-letter ISO 639-1 language code or an empty string\n",
"name": "language_code"
}
],
"category": "methods"
}
}

View file

@ -0,0 +1,33 @@
{
"meta": {},
"group": {
"title": "Available methods",
"anchor": "available-methods"
},
"object": {
"anchor": "setmyname",
"name": "setMyName",
"description": "Use this method to change the bot's name. Returns True on success.",
"html_description": "<p>Use this method to change the bot's name. Returns <em>True</em> on success.</p>",
"rst_description": "Use this method to change the bot's name. Returns :code:`True` on success.",
"annotations": [
{
"type": "String",
"required": false,
"description": "New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.",
"html_description": "<td>New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.</td>",
"rst_description": "New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.\n",
"name": "name"
},
{
"type": "String",
"required": false,
"description": "A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.",
"html_description": "<td>A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.</td>",
"rst_description": "A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.\n",
"name": "language_code"
}
],
"category": "methods"
}
}

View file

@ -1,7 +1,7 @@
{
"api": {
"version": "6.6",
"release_date": "2023-03-09"
"version": "6.7",
"release_date": "2023-04-21"
},
"items": [
{
@ -2421,10 +2421,19 @@
{
"anchor": "writeaccessallowed",
"name": "WriteAccessAllowed",
"description": "This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.",
"html_description": "<p>This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.</p>",
"rst_description": "This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.",
"annotations": [],
"description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.",
"html_description": "<p>This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.</p>",
"rst_description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.",
"annotations": [
{
"type": "String",
"description": "Name of the Web App which was launched from a link",
"html_description": "<td><em>Optional</em>. Name of the Web App which was launched from a link</td>",
"rst_description": "*Optional*. Name of the Web App which was launched from a link\n",
"name": "web_app_name",
"required": false
}
],
"category": "types"
},
{
@ -2933,6 +2942,14 @@
"name": "switch_inline_query_current_chat",
"required": false
},
{
"type": "SwitchInlineQueryChosenChat",
"description": "If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field",
"html_description": "<td><em>Optional</em>. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field</td>",
"rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field\n",
"name": "switch_inline_query_chosen_chat",
"required": false
},
{
"type": "CallbackGame",
"description": "Description of the game that will be launched when the user presses the button.\n\nNOTE: This type of button must always be the first button in the first row.",
@ -2994,6 +3011,56 @@
],
"category": "types"
},
{
"anchor": "switchinlinequerychosenchat",
"name": "SwitchInlineQueryChosenChat",
"description": "This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.",
"html_description": "<p>This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.</p>",
"rst_description": "This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.",
"annotations": [
{
"type": "String",
"description": "The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted",
"html_description": "<td><em>Optional</em>. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted</td>",
"rst_description": "*Optional*. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted\n",
"name": "query",
"required": false
},
{
"type": "Boolean",
"description": "True, if private chats with users can be chosen",
"html_description": "<td><em>Optional</em>. True, if private chats with users can be chosen</td>",
"rst_description": "*Optional*. True, if private chats with users can be chosen\n",
"name": "allow_user_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if private chats with bots can be chosen",
"html_description": "<td><em>Optional</em>. True, if private chats with bots can be chosen</td>",
"rst_description": "*Optional*. True, if private chats with bots can be chosen\n",
"name": "allow_bot_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if group and supergroup chats can be chosen",
"html_description": "<td><em>Optional</em>. True, if group and supergroup chats can be chosen</td>",
"rst_description": "*Optional*. True, if group and supergroup chats can be chosen\n",
"name": "allow_group_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if channel chats can be chosen",
"html_description": "<td><em>Optional</em>. True, if channel chats can be chosen</td>",
"rst_description": "*Optional*. True, if channel chats can be chosen\n",
"name": "allow_channel_chats",
"required": false
}
],
"category": "types"
},
{
"anchor": "callbackquery",
"name": "CallbackQuery",
@ -3807,6 +3874,14 @@
"rst_description": "*Optional*. Chat invite link, which was used by the user to join the chat; for joining by invite link events only.\n",
"name": "invite_link",
"required": false
},
{
"type": "Boolean",
"description": "True, if the user joined the chat via a chat folder invite link",
"html_description": "<td><em>Optional</em>. True, if the user joined the chat via a chat folder invite link</td>",
"rst_description": "*Optional*. True, if the user joined the chat via a chat folder invite link\n",
"name": "via_chat_folder_invite_link",
"required": false
}
],
"category": "types"
@ -4252,6 +4327,24 @@
],
"category": "types"
},
{
"anchor": "botname",
"name": "BotName",
"description": "This object represents the bot's name.",
"html_description": "<p>This object represents the bot's name.</p>",
"rst_description": "This object represents the bot's name.",
"annotations": [
{
"type": "String",
"description": "The bot's name",
"html_description": "<td>The bot's name</td>",
"rst_description": "The bot's name\n",
"name": "name",
"required": true
}
],
"category": "types"
},
{
"anchor": "botdescription",
"name": "BotDescription",
@ -7988,6 +8081,50 @@
],
"category": "methods"
},
{
"anchor": "setmyname",
"name": "setMyName",
"description": "Use this method to change the bot's name. Returns True on success.",
"html_description": "<p>Use this method to change the bot's name. Returns <em>True</em> on success.</p>",
"rst_description": "Use this method to change the bot's name. Returns :code:`True` on success.",
"annotations": [
{
"type": "String",
"required": false,
"description": "New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.",
"html_description": "<td>New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.</td>",
"rst_description": "New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.\n",
"name": "name"
},
{
"type": "String",
"required": false,
"description": "A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.",
"html_description": "<td>A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.</td>",
"rst_description": "A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.\n",
"name": "language_code"
}
],
"category": "methods"
},
{
"anchor": "getmyname",
"name": "getMyName",
"description": "Use this method to get the current bot name for the given user language. Returns BotName on success.",
"html_description": "<p>Use this method to get the current bot name for the given user language. Returns <a href=\"#botname\">BotName</a> on success.</p>",
"rst_description": "Use this method to get the current bot name for the given user language. Returns :class:`aiogram.types.bot_name.BotName` on success.",
"annotations": [
{
"type": "String",
"required": false,
"description": "A two-letter ISO 639-1 language code or an empty string",
"html_description": "<td>A two-letter ISO 639-1 language code or an empty string</td>",
"rst_description": "A two-letter ISO 639-1 language code or an empty string\n",
"name": "language_code"
}
],
"category": "methods"
},
{
"anchor": "setmydescription",
"name": "setMyDescription",
@ -9451,9 +9588,9 @@
{
"type": "Boolean",
"required": false,
"description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query",
"html_description": "<td>Pass <em>True</em> if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query</td>",
"rst_description": "Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query\n",
"description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.",
"html_description": "<td>Pass <em>True</em> if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.</td>",
"rst_description": "Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.\n",
"name": "is_personal"
},
{
@ -9465,24 +9602,50 @@
"name": "next_offset"
},
{
"type": "String",
"type": "InlineQueryResultsButton",
"required": false,
"description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter switch_pm_parameter",
"html_description": "<td>If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter <em>switch_pm_parameter</em></td>",
"rst_description": "If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*\n",
"name": "switch_pm_text"
},
{
"type": "String",
"required": false,
"description": "Deep-linking parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed.\n\nExample: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.",
"html_description": "<td><a href=\"/bots/features#deep-linking\">Deep-linking</a> parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>_</code> and <code>-</code> are allowed.<br/>\n<br/>\n<em>Example:</em> An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a <a href=\"#inlinekeyboardmarkup\"><em>switch_inline</em></a> button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.</td>",
"rst_description": "`Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.\n\n\n\n*Example:* An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a `https://core.telegram.org/bots/api#inlinekeyboardmarkup <https://core.telegram.org/bots/api#inlinekeyboardmarkup>`_ *switch_inline* button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.\n",
"name": "switch_pm_parameter"
"description": "A JSON-serialized object describing a button to be shown above inline query results",
"html_description": "<td>A JSON-serialized object describing a button to be shown above inline query results</td>",
"rst_description": "A JSON-serialized object describing a button to be shown above inline query results\n",
"name": "button"
}
],
"category": "methods"
},
{
"anchor": "inlinequeryresultsbutton",
"name": "InlineQueryResultsButton",
"description": "This object represents a button to be shown above inline query results. You must use exactly one of the optional fields.",
"html_description": "<p>This object represents a button to be shown above inline query results. You <strong>must</strong> use exactly one of the optional fields.</p>",
"rst_description": "This object represents a button to be shown above inline query results. You **must** use exactly one of the optional fields.",
"annotations": [
{
"type": "String",
"description": "Label text on the button",
"html_description": "<td>Label text on the button</td>",
"rst_description": "Label text on the button\n",
"name": "text",
"required": true
},
{
"type": "WebAppInfo",
"description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.",
"html_description": "<td><em>Optional</em>. Description of the <a href=\"/bots/webapps\">Web App</a> that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method <em>web_app_switch_inline_query</em> inside the Web App.</td>",
"rst_description": "*Optional*. Description of the `Web App <https://core.telegram.org/bots/webapps>`_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App.\n",
"name": "web_app",
"required": false
},
{
"type": "String",
"description": "Deep-linking parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed.\n\nExample: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.",
"html_description": "<td><em>Optional</em>. <a href=\"/bots/features#deep-linking\">Deep-linking</a> parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>_</code> and <code>-</code> are allowed.<br/>\n<br/>\n<em>Example:</em> An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a <a href=\"#inlinekeyboardmarkup\"><em>switch_inline</em></a> button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.</td>",
"rst_description": "*Optional*. `Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.\n\n\n\n*Example:* An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a `https://core.telegram.org/bots/api#inlinekeyboardmarkup <https://core.telegram.org/bots/api#inlinekeyboardmarkup>`_ *switch_inline* button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.\n",
"name": "start_parameter",
"required": false
}
],
"category": "types"
},
{
"anchor": "inlinequeryresult",
"name": "InlineQueryResult",

View file

@ -0,0 +1,25 @@
{
"meta": {},
"group": {
"title": "Available types",
"anchor": "available-types"
},
"object": {
"anchor": "botname",
"name": "BotName",
"description": "This object represents the bot's name.",
"html_description": "<p>This object represents the bot's name.</p>",
"rst_description": "This object represents the bot's name.",
"annotations": [
{
"type": "String",
"description": "The bot's name",
"html_description": "<td>The bot's name</td>",
"rst_description": "The bot's name\n",
"name": "name",
"required": true
}
],
"category": "types"
}
}

View file

@ -58,6 +58,14 @@
"rst_description": "*Optional*. Chat invite link, which was used by the user to join the chat; for joining by invite link events only.\n",
"name": "invite_link",
"required": false
},
{
"type": "Boolean",
"description": "True, if the user joined the chat via a chat folder invite link",
"html_description": "<td><em>Optional</em>. True, if the user joined the chat via a chat folder invite link</td>",
"rst_description": "*Optional*. True, if the user joined the chat via a chat folder invite link\n",
"name": "via_chat_folder_invite_link",
"required": false
}
],
"category": "types"

View file

@ -67,6 +67,14 @@
"name": "switch_inline_query_current_chat",
"required": false
},
{
"type": "SwitchInlineQueryChosenChat",
"description": "If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field",
"html_description": "<td><em>Optional</em>. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field</td>",
"rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field\n",
"name": "switch_inline_query_chosen_chat",
"required": false
},
{
"type": "CallbackGame",
"description": "Description of the game that will be launched when the user presses the button.\n\nNOTE: This type of button must always be the first button in the first row.",

View file

@ -0,0 +1,41 @@
{
"meta": {},
"group": {
"title": "Inline mode",
"anchor": "inline-mode"
},
"object": {
"anchor": "inlinequeryresultsbutton",
"name": "InlineQueryResultsButton",
"description": "This object represents a button to be shown above inline query results. You must use exactly one of the optional fields.",
"html_description": "<p>This object represents a button to be shown above inline query results. You <strong>must</strong> use exactly one of the optional fields.</p>",
"rst_description": "This object represents a button to be shown above inline query results. You **must** use exactly one of the optional fields.",
"annotations": [
{
"type": "String",
"description": "Label text on the button",
"html_description": "<td>Label text on the button</td>",
"rst_description": "Label text on the button\n",
"name": "text",
"required": true
},
{
"type": "WebAppInfo",
"description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.",
"html_description": "<td><em>Optional</em>. Description of the <a href=\"/bots/webapps\">Web App</a> that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method <em>web_app_switch_inline_query</em> inside the Web App.</td>",
"rst_description": "*Optional*. Description of the `Web App <https://core.telegram.org/bots/webapps>`_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App.\n",
"name": "web_app",
"required": false
},
{
"type": "String",
"description": "Deep-linking parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed.\n\nExample: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.",
"html_description": "<td><em>Optional</em>. <a href=\"/bots/features#deep-linking\">Deep-linking</a> parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>_</code> and <code>-</code> are allowed.<br/>\n<br/>\n<em>Example:</em> An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a <a href=\"#inlinekeyboardmarkup\"><em>switch_inline</em></a> button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.</td>",
"rst_description": "*Optional*. `Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.\n\n\n\n*Example:* An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a `https://core.telegram.org/bots/api#inlinekeyboardmarkup <https://core.telegram.org/bots/api#inlinekeyboardmarkup>`_ *switch_inline* button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.\n",
"name": "start_parameter",
"required": false
}
],
"category": "types"
}
}

View file

@ -0,0 +1,57 @@
{
"meta": {},
"group": {
"title": "Available types",
"anchor": "available-types"
},
"object": {
"anchor": "switchinlinequerychosenchat",
"name": "SwitchInlineQueryChosenChat",
"description": "This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.",
"html_description": "<p>This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.</p>",
"rst_description": "This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.",
"annotations": [
{
"type": "String",
"description": "The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted",
"html_description": "<td><em>Optional</em>. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted</td>",
"rst_description": "*Optional*. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted\n",
"name": "query",
"required": false
},
{
"type": "Boolean",
"description": "True, if private chats with users can be chosen",
"html_description": "<td><em>Optional</em>. True, if private chats with users can be chosen</td>",
"rst_description": "*Optional*. True, if private chats with users can be chosen\n",
"name": "allow_user_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if private chats with bots can be chosen",
"html_description": "<td><em>Optional</em>. True, if private chats with bots can be chosen</td>",
"rst_description": "*Optional*. True, if private chats with bots can be chosen\n",
"name": "allow_bot_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if group and supergroup chats can be chosen",
"html_description": "<td><em>Optional</em>. True, if group and supergroup chats can be chosen</td>",
"rst_description": "*Optional*. True, if group and supergroup chats can be chosen\n",
"name": "allow_group_chats",
"required": false
},
{
"type": "Boolean",
"description": "True, if channel chats can be chosen",
"html_description": "<td><em>Optional</em>. True, if channel chats can be chosen</td>",
"rst_description": "*Optional*. True, if channel chats can be chosen\n",
"name": "allow_channel_chats",
"required": false
}
],
"category": "types"
}
}

View file

@ -7,10 +7,19 @@
"object": {
"anchor": "writeaccessallowed",
"name": "WriteAccessAllowed",
"description": "This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.",
"html_description": "<p>This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.</p>",
"rst_description": "This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.",
"annotations": [],
"description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.",
"html_description": "<p>This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.</p>",
"rst_description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.",
"annotations": [
{
"type": "String",
"description": "Name of the Web App which was launched from a link",
"html_description": "<td><em>Optional</em>. Name of the Web App which was launched from a link</td>",
"rst_description": "*Optional*. Name of the Web App which was launched from a link\n",
"name": "web_app_name",
"required": false
}
],
"category": "types"
}
}

6
CHANGES/1168.misc.rst Normal file
View file

@ -0,0 +1,6 @@
Added full support of `Bot API 6.7 <https://core.telegram.org/bots/api-changelog#april-21-2023>`_
.. warning::
Note that arguments *switch_pm_parameter* and *switch_pm_text* was deprecated
and should be changed to *button* argument as described in API docs.

View file

@ -71,6 +71,7 @@ from ..methods import (
GetMyCommands,
GetMyDefaultAdministratorRights,
GetMyDescription,
GetMyName,
GetMyShortDescription,
GetStickerSet,
GetUpdates,
@ -115,6 +116,7 @@ from ..methods import (
SetMyCommands,
SetMyDefaultAdministratorRights,
SetMyDescription,
SetMyName,
SetMyShortDescription,
SetPassportDataErrors,
SetStickerEmojiList,
@ -140,6 +142,7 @@ from ..types import (
BotCommand,
BotCommandScope,
BotDescription,
BotName,
BotShortDescription,
Chat,
ChatAdministratorRights,
@ -158,6 +161,7 @@ from ..types import (
GameHighScore,
InlineKeyboardMarkup,
InlineQueryResult,
InlineQueryResultsButton,
InputFile,
InputMedia,
InputMediaAudio,
@ -481,8 +485,9 @@ class Bot(ContextInstanceMixin["Bot"]):
cache_time: Optional[int] = None,
is_personal: Optional[bool] = None,
next_offset: Optional[str] = None,
switch_pm_text: Optional[str] = None,
button: Optional[InlineQueryResultsButton] = None,
switch_pm_parameter: Optional[str] = None,
switch_pm_text: Optional[str] = None,
request_timeout: Optional[int] = None,
) -> bool:
"""
@ -495,10 +500,11 @@ class Bot(ContextInstanceMixin["Bot"]):
:param inline_query_id: Unique identifier for the answered query
:param results: A JSON-serialized array of results for the inline query
:param cache_time: The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.
:param is_personal: Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query
:param is_personal: Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.
:param next_offset: Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes.
:param switch_pm_text: If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*
:param button: A JSON-serialized object describing a button to be shown above inline query results
:param switch_pm_parameter: `Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.
:param switch_pm_text: If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*
:param request_timeout: Request timeout
:return: On success, :code:`True` is returned.
"""
@ -509,8 +515,9 @@ class Bot(ContextInstanceMixin["Bot"]):
cache_time=cache_time,
is_personal=is_personal,
next_offset=next_offset,
switch_pm_text=switch_pm_text,
button=button,
switch_pm_parameter=switch_pm_parameter,
switch_pm_text=switch_pm_text,
)
return await self(call, request_timeout=request_timeout)
@ -3913,3 +3920,46 @@ class Bot(ContextInstanceMixin["Bot"]):
title=title,
)
return await self(call, request_timeout=request_timeout)
async def get_my_name(
self,
language_code: Optional[str] = None,
request_timeout: Optional[int] = None,
) -> BotName:
"""
Use this method to get the current bot name for the given user language. Returns :class:`aiogram.types.bot_name.BotName` on success.
Source: https://core.telegram.org/bots/api#getmyname
:param language_code: A two-letter ISO 639-1 language code or an empty string
:param request_timeout: Request timeout
:return: Returns :class:`aiogram.types.bot_name.BotName` on success.
"""
call = GetMyName(
language_code=language_code,
)
return await self(call, request_timeout=request_timeout)
async def set_my_name(
self,
name: Optional[str] = None,
language_code: Optional[str] = None,
request_timeout: Optional[int] = None,
) -> bool:
"""
Use this method to change the bot's name. Returns :code:`True` on success.
Source: https://core.telegram.org/bots/api#setmyname
:param name: New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.
:param language_code: A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.
:param request_timeout: Request timeout
:return: Returns :code:`True` on success.
"""
call = SetMyName(
name=name,
language_code=language_code,
)
return await self(call, request_timeout=request_timeout)

View file

@ -48,6 +48,7 @@ from .get_me import GetMe
from .get_my_commands import GetMyCommands
from .get_my_default_administrator_rights import GetMyDefaultAdministratorRights
from .get_my_description import GetMyDescription
from .get_my_name import GetMyName
from .get_my_short_description import GetMyShortDescription
from .get_sticker_set import GetStickerSet
from .get_updates import GetUpdates
@ -92,6 +93,7 @@ from .set_game_score import SetGameScore
from .set_my_commands import SetMyCommands
from .set_my_default_administrator_rights import SetMyDefaultAdministratorRights
from .set_my_description import SetMyDescription
from .set_my_name import SetMyName
from .set_my_short_description import SetMyShortDescription
from .set_passport_data_errors import SetPassportDataErrors
from .set_sticker_emoji_list import SetStickerEmojiList
@ -161,6 +163,7 @@ __all__ = (
"GetMyCommands",
"GetMyDefaultAdministratorRights",
"GetMyDescription",
"GetMyName",
"GetMyShortDescription",
"GetStickerSet",
"GetUpdates",
@ -207,6 +210,7 @@ __all__ = (
"SetMyCommands",
"SetMyDefaultAdministratorRights",
"SetMyDescription",
"SetMyName",
"SetMyShortDescription",
"SetPassportDataErrors",
"SetStickerEmojiList",

View file

@ -2,7 +2,9 @@ from __future__ import annotations
from typing import TYPE_CHECKING, List, Optional
from ..types import InlineQueryResult
from pydantic import Field
from ..types import InlineQueryResult, InlineQueryResultsButton
from .base import TelegramMethod
@ -25,10 +27,18 @@ class AnswerInlineQuery(TelegramMethod[bool]):
cache_time: Optional[int] = None
"""The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300."""
is_personal: Optional[bool] = None
"""Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query"""
"""Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query."""
next_offset: Optional[str] = None
"""Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes."""
switch_pm_text: Optional[str] = None
"""If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*"""
switch_pm_parameter: Optional[str] = None
"""`Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed."""
button: Optional[InlineQueryResultsButton] = None
"""A JSON-serialized object describing a button to be shown above inline query results"""
switch_pm_parameter: Optional[str] = Field(None, deprecated=True)
"""`Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.
.. deprecated:: API:6.7
https://core.telegram.org/bots/api-changelog#april-21-2023"""
switch_pm_text: Optional[str] = Field(None, deprecated=True)
"""If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*
.. deprecated:: API:6.7
https://core.telegram.org/bots/api-changelog#april-21-2023"""

View file

@ -0,0 +1,18 @@
from typing import Optional
from ..types import BotName
from .base import TelegramMethod
class GetMyName(TelegramMethod[BotName]):
"""
Use this method to get the current bot name for the given user language. Returns :class:`aiogram.types.bot_name.BotName` on success.
Source: https://core.telegram.org/bots/api#getmyname
"""
__returning__ = BotName
__api_method__ = "getMyName"
language_code: Optional[str] = None
"""A two-letter ISO 639-1 language code or an empty string"""

View file

@ -0,0 +1,19 @@
from typing import Optional
from .base import TelegramMethod
class SetMyName(TelegramMethod[bool]):
"""
Use this method to change the bot's name. Returns :code:`True` on success.
Source: https://core.telegram.org/bots/api#setmyname
"""
__returning__ = bool
__api_method__ = "setMyName"
name: Optional[str] = None
"""New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language."""
language_code: Optional[str] = None
"""A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name."""

View file

@ -15,6 +15,7 @@ from .bot_command_scope_chat_administrators import BotCommandScopeChatAdministra
from .bot_command_scope_chat_member import BotCommandScopeChatMember
from .bot_command_scope_default import BotCommandScopeDefault
from .bot_description import BotDescription
from .bot_name import BotName
from .bot_short_description import BotShortDescription
from .callback_game import CallbackGame
from .callback_query import CallbackQuery
@ -77,6 +78,7 @@ from .inline_query_result_photo import InlineQueryResultPhoto
from .inline_query_result_venue import InlineQueryResultVenue
from .inline_query_result_video import InlineQueryResultVideo
from .inline_query_result_voice import InlineQueryResultVoice
from .inline_query_results_button import InlineQueryResultsButton
from .input_contact_message_content import InputContactMessageContent
from .input_file import BufferedInputFile, FSInputFile, InputFile, URLInputFile
from .input_invoice_message_content import InputInvoiceMessageContent
@ -139,6 +141,7 @@ from .shipping_query import ShippingQuery
from .sticker import Sticker
from .sticker_set import StickerSet
from .successful_payment import SuccessfulPayment
from .switch_inline_query_chosen_chat import SwitchInlineQueryChosenChat
from .update import Update
from .user import User
from .user_profile_photos import UserProfilePhotos
@ -169,6 +172,7 @@ __all__ = (
"BotCommandScopeChatMember",
"BotCommandScopeDefault",
"BotDescription",
"BotName",
"BotShortDescription",
"BufferedInputFile",
"CallbackGame",
@ -234,6 +238,7 @@ __all__ = (
"InlineQueryResultVenue",
"InlineQueryResultVideo",
"InlineQueryResultVoice",
"InlineQueryResultsButton",
"InputContactMessageContent",
"InputFile",
"InputInvoiceMessageContent",
@ -294,6 +299,7 @@ __all__ = (
"Sticker",
"StickerSet",
"SuccessfulPayment",
"SwitchInlineQueryChosenChat",
"TelegramObject",
"UNSET_PARSE_MODE",
"URLInputFile",

12
aiogram/types/bot_name.py Normal file
View file

@ -0,0 +1,12 @@
from .base import TelegramObject
class BotName(TelegramObject):
"""
This object represents the bot's name.
Source: https://core.telegram.org/bots/api#botname
"""
name: str
"""The bot's name"""

View file

@ -52,3 +52,5 @@ class ChatMemberUpdated(TelegramObject):
"""New information about the chat member"""
invite_link: Optional[ChatInviteLink] = None
"""*Optional*. Chat invite link, which was used by the user to join the chat; for joining by invite link events only."""
via_chat_folder_invite_link: Optional[bool] = None
"""*Optional*. True, if the user joined the chat via a chat folder invite link"""

View file

@ -7,6 +7,7 @@ from .base import MutableTelegramObject
if TYPE_CHECKING:
from .callback_game import CallbackGame
from .login_url import LoginUrl
from .switch_inline_query_chosen_chat import SwitchInlineQueryChosenChat
from .web_app_info import WebAppInfo
@ -31,6 +32,8 @@ class InlineKeyboardButton(MutableTelegramObject):
"""*Optional*. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted."""
switch_inline_query_current_chat: Optional[str] = None
"""*Optional*. If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field. May be empty, in which case only the bot's username will be inserted."""
switch_inline_query_chosen_chat: Optional[SwitchInlineQueryChosenChat] = None
"""*Optional*. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field"""
callback_game: Optional[CallbackGame] = None
"""*Optional*. Description of the game that will be launched when the user presses the button."""
pay: Optional[bool] = None

View file

@ -9,6 +9,7 @@ from .base import TelegramObject
if TYPE_CHECKING:
from ..methods import AnswerInlineQuery
from .inline_query_result import InlineQueryResult
from .inline_query_results_button import InlineQueryResultsButton
from .location import Location
from .user import User
@ -39,8 +40,9 @@ class InlineQuery(TelegramObject):
cache_time: Optional[int] = None,
is_personal: Optional[bool] = None,
next_offset: Optional[str] = None,
switch_pm_text: Optional[str] = None,
button: Optional[InlineQueryResultsButton] = None,
switch_pm_parameter: Optional[str] = None,
switch_pm_text: Optional[str] = None,
**kwargs: Any,
) -> AnswerInlineQuery:
"""
@ -57,10 +59,11 @@ class InlineQuery(TelegramObject):
:param results: A JSON-serialized array of results for the inline query
:param cache_time: The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.
:param is_personal: Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query
:param is_personal: Pass :code:`True` if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.
:param next_offset: Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes.
:param switch_pm_text: If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*
:param button: A JSON-serialized object describing a button to be shown above inline query results
:param switch_pm_parameter: `Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.
:param switch_pm_text: If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter*
:return: instance of method :class:`aiogram.methods.answer_inline_query.AnswerInlineQuery`
"""
# DO NOT EDIT MANUALLY!!!
@ -74,7 +77,8 @@ class InlineQuery(TelegramObject):
cache_time=cache_time,
is_personal=is_personal,
next_offset=next_offset,
switch_pm_text=switch_pm_text,
button=button,
switch_pm_parameter=switch_pm_parameter,
switch_pm_text=switch_pm_text,
**kwargs,
)

View file

@ -0,0 +1,23 @@
from __future__ import annotations
from typing import TYPE_CHECKING, Optional
from .base import TelegramObject
if TYPE_CHECKING:
from .web_app_info import WebAppInfo
class InlineQueryResultsButton(TelegramObject):
"""
This object represents a button to be shown above inline query results. You **must** use exactly one of the optional fields.
Source: https://core.telegram.org/bots/api#inlinequeryresultsbutton
"""
text: str
"""Label text on the button"""
web_app: Optional[WebAppInfo] = None
"""*Optional*. Description of the `Web App <https://core.telegram.org/bots/webapps>`_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App."""
start_parameter: Optional[str] = None
"""*Optional*. `Deep-linking <https://core.telegram.org/bots/features#deep-linking>`_ parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed."""

View file

@ -0,0 +1,22 @@
from typing import Optional
from .base import TelegramObject
class SwitchInlineQueryChosenChat(TelegramObject):
"""
This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.
Source: https://core.telegram.org/bots/api#switchinlinequerychosenchat
"""
query: Optional[str] = None
"""*Optional*. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted"""
allow_user_chats: Optional[bool] = None
"""*Optional*. True, if private chats with users can be chosen"""
allow_bot_chats: Optional[bool] = None
"""*Optional*. True, if private chats with bots can be chosen"""
allow_group_chats: Optional[bool] = None
"""*Optional*. True, if group and supergroup chats can be chosen"""
allow_channel_chats: Optional[bool] = None
"""*Optional*. True, if channel chats can be chosen"""

View file

@ -1,9 +1,14 @@
from typing import Optional
from aiogram.types import TelegramObject
class WriteAccessAllowed(TelegramObject):
"""
This object represents a service message about a user allowing a bot added to the attachment menu to write messages. Currently holds no information.
This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.
Source: https://core.telegram.org/bots/api#writeaccessallowed
"""
web_app_name: Optional[str] = None
"""*Optional*. Name of the Web App which was launched from a link"""

View file

@ -0,0 +1,37 @@
#########
getMyName
#########
Returns: :obj:`BotName`
.. automodule:: aiogram.methods.get_my_name
:members:
:member-order: bysource
:undoc-members: True
Usage
=====
As bot method
-------------
.. code-block::
result: BotName = await bot.get_my_name(...)
Method as object
----------------
Imports:
- :code:`from aiogram.methods.get_my_name import GetMyName`
- alias: :code:`from aiogram.methods import GetMyName`
With specific bot
~~~~~~~~~~~~~~~~~
.. code-block:: python
result: BotName = await bot(GetMyName(...))

View file

@ -42,6 +42,7 @@ Available methods
get_my_commands
get_my_default_administrator_rights
get_my_description
get_my_name
get_my_short_description
get_user_profile_photos
hide_general_forum_topic
@ -78,6 +79,7 @@ Available methods
set_my_commands
set_my_default_administrator_rights
set_my_description
set_my_name
set_my_short_description
unban_chat_member
unban_chat_sender_chat

View file

@ -0,0 +1,44 @@
#########
setMyName
#########
Returns: :obj:`bool`
.. automodule:: aiogram.methods.set_my_name
:members:
:member-order: bysource
:undoc-members: True
Usage
=====
As bot method
-------------
.. code-block::
result: bool = await bot.set_my_name(...)
Method as object
----------------
Imports:
- :code:`from aiogram.methods.set_my_name import SetMyName`
- alias: :code:`from aiogram.methods import SetMyName`
With specific bot
~~~~~~~~~~~~~~~~~
.. code-block:: python
result: bool = await bot(SetMyName(...))
As reply into Webhook in handler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: python
return SetMyName(...)

View file

@ -0,0 +1,9 @@
#######
BotName
#######
.. automodule:: aiogram.types.bot_name
:members:
:member-order: bysource
:undoc-members: True

View file

@ -34,6 +34,7 @@ Inline mode
inline_query_result_venue
inline_query_result_video
inline_query_result_voice
inline_query_results_button
input_contact_message_content
input_invoice_message_content
input_location_message_content
@ -60,6 +61,7 @@ Available types
bot_command_scope_chat_member
bot_command_scope_default
bot_description
bot_name
bot_short_description
callback_query
chat
@ -121,6 +123,7 @@ Available types
reply_keyboard_markup
reply_keyboard_remove
response_parameters
switch_inline_query_chosen_chat
user
user_profile_photos
user_shared

View file

@ -0,0 +1,9 @@
########################
InlineQueryResultsButton
########################
.. automodule:: aiogram.types.inline_query_results_button
:members:
:member-order: bysource
:undoc-members: True

View file

@ -0,0 +1,9 @@
###########################
SwitchInlineQueryChosenChat
###########################
.. automodule:: aiogram.types.switch_inline_query_chosen_chat
:members:
:member-order: bysource
:undoc-members: True

View file

@ -0,0 +1,11 @@
from aiogram.methods import GetMyName
from aiogram.types import BotDescription, BotName
from tests.mocked_bot import MockedBot
class TestGetMyName:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(GetMyName, ok=True, result=BotName(name="Test"))
response: BotName = await bot.get_my_name()
assert response == prepare_result.result

View file

@ -0,0 +1,10 @@
from aiogram.methods import SetMyName
from tests.mocked_bot import MockedBot
class TestSetMyName:
async def test_bot_method(self, bot: MockedBot):
prepare_result = bot.add_result_for(SetMyName, ok=True, result=True)
response: bool = await bot.set_my_name()
assert response == prepare_result.result

View file

@ -43,8 +43,8 @@ from aiogram.types import (
Document,
EncryptedCredentials,
ForumTopicClosed,
ForumTopicEdited,
ForumTopicCreated,
ForumTopicEdited,
ForumTopicReopened,
Game,
InlineKeyboardButton,