`_), 'custom_emoji' (for inline custom emoji stickers)\n",
"name": "type",
"required": true
},
@@ -1858,6 +1898,14 @@
"name": "document",
"required": false
},
+ {
+ "type": "PaidMediaInfo",
+ "description": "Message contains paid media; information about the paid media",
+ "html_description": "| Optional. Message contains paid media; information about the paid media | ",
+ "rst_description": "*Optional*. Message contains paid media; information about the paid media\n",
+ "name": "paid_media",
+ "required": false
+ },
{
"type": "Array of PhotoSize",
"description": "Message is a photo, available sizes of the photo",
@@ -2299,49 +2347,49 @@
},
{
"type": "Integer",
- "description": "Video width as defined by sender",
- "html_description": "Video width as defined by sender | ",
- "rst_description": "Video width as defined by sender\n",
+ "description": "Video width as defined by the sender",
+ "html_description": "Video width as defined by the sender | ",
+ "rst_description": "Video width as defined by the sender\n",
"name": "width",
"required": true
},
{
"type": "Integer",
- "description": "Video height as defined by sender",
- "html_description": "Video height as defined by sender | ",
- "rst_description": "Video height as defined by sender\n",
+ "description": "Video height as defined by the sender",
+ "html_description": "Video height as defined by the sender | ",
+ "rst_description": "Video height as defined by the sender\n",
"name": "height",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "PhotoSize",
- "description": "Animation thumbnail as defined by sender",
- "html_description": "Optional. Animation thumbnail as defined by sender | ",
- "rst_description": "*Optional*. Animation thumbnail as defined by sender\n",
+ "description": "Animation thumbnail as defined by the sender",
+ "html_description": "Optional. Animation thumbnail as defined by the sender | ",
+ "rst_description": "*Optional*. Animation thumbnail as defined by the sender\n",
"name": "thumbnail",
"required": false
},
{
"type": "String",
- "description": "Original animation filename as defined by sender",
- "html_description": "Optional. Original animation filename as defined by sender | ",
- "rst_description": "*Optional*. Original animation filename as defined by sender\n",
+ "description": "Original animation filename as defined by the sender",
+ "html_description": "Optional. Original animation filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original animation filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
@@ -2381,41 +2429,41 @@
},
{
"type": "Integer",
- "description": "Duration of the audio in seconds as defined by sender",
- "html_description": "Duration of the audio in seconds as defined by sender | ",
- "rst_description": "Duration of the audio in seconds as defined by sender\n",
+ "description": "Duration of the audio in seconds as defined by the sender",
+ "html_description": "Duration of the audio in seconds as defined by the sender | ",
+ "rst_description": "Duration of the audio in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "String",
- "description": "Performer of the audio as defined by sender or by audio tags",
- "html_description": "Optional. Performer of the audio as defined by sender or by audio tags | ",
- "rst_description": "*Optional*. Performer of the audio as defined by sender or by audio tags\n",
+ "description": "Performer of the audio as defined by the sender or by audio tags",
+ "html_description": "Optional. Performer of the audio as defined by the sender or by audio tags | ",
+ "rst_description": "*Optional*. Performer of the audio as defined by the sender or by audio tags\n",
"name": "performer",
"required": false
},
{
"type": "String",
- "description": "Title of the audio as defined by sender or by audio tags",
- "html_description": "Optional. Title of the audio as defined by sender or by audio tags | ",
- "rst_description": "*Optional*. Title of the audio as defined by sender or by audio tags\n",
+ "description": "Title of the audio as defined by the sender or by audio tags",
+ "html_description": "Optional. Title of the audio as defined by the sender or by audio tags | ",
+ "rst_description": "*Optional*. Title of the audio as defined by the sender or by audio tags\n",
"name": "title",
"required": false
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
@@ -2463,25 +2511,25 @@
},
{
"type": "PhotoSize",
- "description": "Document thumbnail as defined by sender",
- "html_description": "Optional. Document thumbnail as defined by sender | ",
- "rst_description": "*Optional*. Document thumbnail as defined by sender\n",
+ "description": "Document thumbnail as defined by the sender",
+ "html_description": "Optional. Document thumbnail as defined by the sender | ",
+ "rst_description": "*Optional*. Document thumbnail as defined by the sender\n",
"name": "thumbnail",
"required": false
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
@@ -2547,25 +2595,25 @@
},
{
"type": "Integer",
- "description": "Video width as defined by sender",
- "html_description": "Video width as defined by sender | ",
- "rst_description": "Video width as defined by sender\n",
+ "description": "Video width as defined by the sender",
+ "html_description": "Video width as defined by the sender | ",
+ "rst_description": "Video width as defined by the sender\n",
"name": "width",
"required": true
},
{
"type": "Integer",
- "description": "Video height as defined by sender",
- "html_description": "Video height as defined by sender | ",
- "rst_description": "Video height as defined by sender\n",
+ "description": "Video height as defined by the sender",
+ "html_description": "Video height as defined by the sender | ",
+ "rst_description": "Video height as defined by the sender\n",
"name": "height",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
@@ -2579,17 +2627,17 @@
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
@@ -2629,17 +2677,17 @@
},
{
"type": "Integer",
- "description": "Video width and height (diameter of the video message) as defined by sender",
- "html_description": "Video width and height (diameter of the video message) as defined by sender | ",
- "rst_description": "Video width and height (diameter of the video message) as defined by sender\n",
+ "description": "Video width and height (diameter of the video message) as defined by the sender",
+ "html_description": "Video width and height (diameter of the video message) as defined by the sender | ",
+ "rst_description": "Video width and height (diameter of the video message) as defined by the sender\n",
"name": "length",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
@@ -2687,17 +2735,17 @@
},
{
"type": "Integer",
- "description": "Duration of the audio in seconds as defined by sender",
- "html_description": "Duration of the audio in seconds as defined by sender | ",
- "rst_description": "Duration of the audio in seconds as defined by sender\n",
+ "description": "Duration of the audio in seconds as defined by the sender",
+ "html_description": "Duration of the audio in seconds as defined by the sender | ",
+ "rst_description": "Duration of the audio in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
@@ -2712,6 +2760,135 @@
],
"category": "types"
},
+ {
+ "anchor": "paidmediainfo",
+ "name": "PaidMediaInfo",
+ "description": "Describes the paid media added to a message.",
+ "html_description": "Describes the paid media added to a message.
",
+ "rst_description": "Describes the paid media added to a message.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars that must be paid to buy access to the media",
+ "html_description": "The number of Telegram Stars that must be paid to buy access to the media | ",
+ "rst_description": "The number of Telegram Stars that must be paid to buy access to the media\n",
+ "name": "star_count",
+ "required": true
+ },
+ {
+ "type": "Array of PaidMedia",
+ "description": "Information about the paid media",
+ "html_description": "Information about the paid media | ",
+ "rst_description": "Information about the paid media\n",
+ "name": "paid_media",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "paidmedia",
+ "name": "PaidMedia",
+ "description": "This object describes paid media. Currently, it can be one of\n - PaidMediaPreview\n - PaidMediaPhoto\n - PaidMediaVideo",
+ "html_description": "This object describes paid media. Currently, it can be one of
",
+ "rst_description": "This object describes paid media. Currently, it can be one of\n\n - :class:`aiogram.types.paid_media_preview.PaidMediaPreview`\n - :class:`aiogram.types.paid_media_photo.PaidMediaPhoto`\n - :class:`aiogram.types.paid_media_video.PaidMediaVideo`",
+ "annotations": [],
+ "category": "types"
+ },
+ {
+ "anchor": "paidmediapreview",
+ "name": "PaidMediaPreview",
+ "description": "The paid media isn't available before the payment.",
+ "html_description": "The paid media isn't available before the payment.
",
+ "rst_description": "The paid media isn't available before the payment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'preview'",
+ "html_description": "Type of the paid media, always “preview” | ",
+ "rst_description": "Type of the paid media, always 'preview'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Media width as defined by the sender",
+ "html_description": "Optional. Media width as defined by the sender | ",
+ "rst_description": "*Optional*. Media width as defined by the sender\n",
+ "name": "width",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Media height as defined by the sender",
+ "html_description": "Optional. Media height as defined by the sender | ",
+ "rst_description": "*Optional*. Media height as defined by the sender\n",
+ "name": "height",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Duration of the media in seconds as defined by the sender",
+ "html_description": "Optional. Duration of the media in seconds as defined by the sender | ",
+ "rst_description": "*Optional*. Duration of the media in seconds as defined by the sender\n",
+ "name": "duration",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "paidmediaphoto",
+ "name": "PaidMediaPhoto",
+ "description": "The paid media is a photo.",
+ "html_description": "The paid media is a photo.
",
+ "rst_description": "The paid media is a photo.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'photo'",
+ "html_description": "Type of the paid media, always “photo” | ",
+ "rst_description": "Type of the paid media, always 'photo'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Array of PhotoSize",
+ "description": "The photo",
+ "html_description": "The photo | ",
+ "rst_description": "The photo\n",
+ "name": "photo",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "paidmediavideo",
+ "name": "PaidMediaVideo",
+ "description": "The paid media is a video.",
+ "html_description": "The paid media is a video.
",
+ "rst_description": "The paid media is a video.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'video'",
+ "html_description": "Type of the paid media, always “video” | ",
+ "rst_description": "Type of the paid media, always 'video'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Video",
+ "description": "The video",
+ "html_description": "The video | ",
+ "rst_description": "The video\n",
+ "name": "video",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
{
"anchor": "contact",
"name": "Contact",
@@ -2825,9 +3002,9 @@
{
"anchor": "inputpolloption",
"name": "InputPollOption",
- "description": "This object contains information about one answer option in a poll to send.",
- "html_description": "This object contains information about one answer option in a poll to send.
",
- "rst_description": "This object contains information about one answer option in a poll to send.",
+ "description": "This object contains information about one answer option in a poll to be sent.",
+ "html_description": "This object contains information about one answer option in a poll to be sent.
",
+ "rst_description": "This object contains information about one answer option in a poll to be sent.",
"annotations": [
{
"type": "String",
@@ -3029,17 +3206,17 @@
"annotations": [
{
"type": "Float",
- "description": "Latitude as defined by sender",
- "html_description": "Latitude as defined by sender | ",
- "rst_description": "Latitude as defined by sender\n",
+ "description": "Latitude as defined by the sender",
+ "html_description": "Latitude as defined by the sender | ",
+ "rst_description": "Latitude as defined by the sender\n",
"name": "latitude",
"required": true
},
{
"type": "Float",
- "description": "Longitude as defined by sender",
- "html_description": "Longitude as defined by sender | ",
- "rst_description": "Longitude as defined by sender\n",
+ "description": "Longitude as defined by the sender",
+ "html_description": "Longitude as defined by the sender | ",
+ "rst_description": "Longitude as defined by the sender\n",
"name": "longitude",
"required": true
},
@@ -3860,10 +4037,19 @@
{
"anchor": "giveawaycreated",
"name": "GiveawayCreated",
- "description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.",
- "html_description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.
",
- "rst_description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.",
- "annotations": [],
+ "description": "This object represents a service message about the creation of a scheduled giveaway.",
+ "html_description": "This object represents a service message about the creation of a scheduled giveaway.
",
+ "rst_description": "This object represents a service message about the creation of a scheduled giveaway.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ }
+ ],
"category": "types"
},
{
@@ -3931,9 +4117,17 @@
},
{
"type": "Integer",
- "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for",
- "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for | ",
- "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for\n",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only",
+ "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only\n",
"name": "premium_subscription_month_count",
"required": false
}
@@ -3997,9 +4191,17 @@
},
{
"type": "Integer",
- "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for",
- "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for | ",
- "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for\n",
+ "description": "The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only",
+ "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only\n",
"name": "premium_subscription_month_count",
"required": false
},
@@ -4068,6 +4270,14 @@
"rst_description": "*Optional*. Message with the giveaway that was completed, if it wasn't deleted\n",
"name": "giveaway_message",
"required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway.",
+ "html_description": "Optional. True, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway. | ",
+ "rst_description": "*Optional*. :code:`True`, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway.\n",
+ "name": "is_star_giveaway",
+ "required": false
}
],
"category": "types"
@@ -4583,9 +4793,9 @@
},
{
"type": "String",
- "description": "Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account.",
- "html_description": "Optional. Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account. | ",
- "rst_description": "*Optional*. Data to be sent in a `callback query `_ to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account.\n",
+ "description": "Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytes",
+ "html_description": "Optional. Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytes | ",
+ "rst_description": "*Optional*. Data to be sent in a `callback query `_ to the bot when the button is pressed, 1-64 bytes\n",
"name": "callback_data",
"required": false
},
@@ -4629,6 +4839,14 @@
"name": "switch_inline_query_chosen_chat",
"required": false
},
+ {
+ "type": "CopyTextButton",
+ "description": "Description of the button that copies the specified text to the clipboard.",
+ "html_description": "Optional. Description of the button that copies the specified text to the clipboard. | ",
+ "rst_description": "*Optional*. Description of the button that copies the specified text to the clipboard.\n",
+ "name": "copy_text",
+ "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.",
@@ -4740,6 +4958,24 @@
],
"category": "types"
},
+ {
+ "anchor": "copytextbutton",
+ "name": "CopyTextButton",
+ "description": "This object represents an inline keyboard button that copies specified text to the clipboard.",
+ "html_description": "This object represents an inline keyboard button that copies specified text to the clipboard.
",
+ "rst_description": "This object represents an inline keyboard button that copies specified text to the clipboard.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "The text to be copied to the clipboard; 1-256 characters",
+ "html_description": "The text to be copied to the clipboard; 1-256 characters | ",
+ "rst_description": "The text to be copied to the clipboard; 1-256 characters\n",
+ "name": "text",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
{
"anchor": "callbackquery",
"name": "CallbackQuery",
@@ -4960,6 +5196,22 @@
"rst_description": "*Optional*. Number of pending join requests created using this link\n",
"name": "pending_join_request_count",
"required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of seconds the subscription will be active for before the next payment",
+ "html_description": "Optional. The number of seconds the subscription will be active for before the next payment | ",
+ "rst_description": "*Optional*. The number of seconds the subscription will be active for before the next payment\n",
+ "name": "subscription_period",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link",
+ "html_description": "Optional. The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link | ",
+ "rst_description": "*Optional*. The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link\n",
+ "name": "subscription_price",
+ "required": false
}
],
"category": "types"
@@ -5403,6 +5655,14 @@
"rst_description": "Information about the user\n",
"name": "user",
"required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date when the user's subscription will expire; Unix time",
+ "html_description": "Optional. Date when the user's subscription will expire; Unix time | ",
+ "rst_description": "*Optional*. Date when the user's subscription will expire; Unix time\n",
+ "name": "until_date",
+ "required": false
}
],
"category": "types"
@@ -5976,9 +6236,9 @@
{
"anchor": "reactiontype",
"name": "ReactionType",
- "description": "This object describes the type of a reaction. Currently, it can be one of\n - ReactionTypeEmoji\n - ReactionTypeCustomEmoji",
- "html_description": "This object describes the type of a reaction. Currently, it can be one of
",
- "rst_description": "This object describes the type of a reaction. Currently, it can be one of\n\n - :class:`aiogram.types.reaction_type_emoji.ReactionTypeEmoji`\n - :class:`aiogram.types.reaction_type_custom_emoji.ReactionTypeCustomEmoji`",
+ "description": "This object describes the type of a reaction. Currently, it can be one of\n - ReactionTypeEmoji\n - ReactionTypeCustomEmoji\n - ReactionTypePaid",
+ "html_description": "This object describes the type of a reaction. Currently, it can be one of
",
+ "rst_description": "This object describes the type of a reaction. Currently, it can be one of\n\n - :class:`aiogram.types.reaction_type_emoji.ReactionTypeEmoji`\n - :class:`aiogram.types.reaction_type_custom_emoji.ReactionTypeCustomEmoji`\n - :class:`aiogram.types.reaction_type_paid.ReactionTypePaid`",
"annotations": [],
"category": "types"
},
@@ -6034,6 +6294,24 @@
],
"category": "types"
},
+ {
+ "anchor": "reactiontypepaid",
+ "name": "ReactionTypePaid",
+ "description": "The reaction is paid.",
+ "html_description": "The reaction is paid.
",
+ "rst_description": "The reaction is paid.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the reaction, always 'paid'",
+ "html_description": "Type of the reaction, always “paid” | ",
+ "rst_description": "Type of the reaction, always 'paid'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
{
"anchor": "reactioncount",
"name": "ReactionCount",
@@ -6509,9 +6787,9 @@
},
{
"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 send an arbitrary message on behalf of the user using the method answerWebAppQuery.",
- "html_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. | ",
- "rst_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method :class:`aiogram.methods.answer_web_app_query.AnswerWebAppQuery`.\n",
+ "description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Alternatively, a t.me link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link.",
+ "html_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Alternatively, a t.me link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link. | ",
+ "rst_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method :class:`aiogram.methods.answer_web_app_query.AnswerWebAppQuery`. Alternatively, a :code:`t.me` link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link.\n",
"name": "web_app",
"required": true
}
@@ -6600,9 +6878,9 @@
{
"anchor": "chatboostsourcegiveaway",
"name": "ChatBoostSourceGiveaway",
- "description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.",
- "html_description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.
",
- "rst_description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.",
+ "description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and prize_star_count / 500 times for one year for Telegram Star giveaways.",
+ "html_description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and prize_star_count / 500 times for one year for Telegram Star giveaways.
",
+ "rst_description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and *prize_star_count* / 500 times for one year for Telegram Star giveaways.",
"annotations": [
{
"type": "String",
@@ -6622,12 +6900,20 @@
},
{
"type": "User",
- "description": "User that won the prize in the giveaway if any",
- "html_description": "Optional. User that won the prize in the giveaway if any | ",
- "rst_description": "*Optional*. User that won the prize in the giveaway if any\n",
+ "description": "User that won the prize in the giveaway if any; for Telegram Premium giveaways only",
+ "html_description": "Optional. User that won the prize in the giveaway if any; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. User that won the prize in the giveaway if any; for Telegram Premium giveaways only\n",
"name": "user",
"required": false
},
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
{
"type": "True",
"description": "True, if the giveaway was completed, but there was no user to win the prize",
@@ -7320,6 +7606,107 @@
"rst_description": "This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.",
"annotations": [],
"category": "types"
+ },
+ {
+ "anchor": "inputpaidmedia",
+ "name": "InputPaidMedia",
+ "description": "This object describes the paid media to be sent. Currently, it can be one of\n - InputPaidMediaPhoto\n - InputPaidMediaVideo",
+ "html_description": "This object describes the paid media to be sent. Currently, it can be one of
",
+ "rst_description": "This object describes the paid media to be sent. Currently, it can be one of\n\n - :class:`aiogram.types.input_paid_media_photo.InputPaidMediaPhoto`\n - :class:`aiogram.types.input_paid_media_video.InputPaidMediaVideo`",
+ "annotations": [],
+ "category": "types"
+ },
+ {
+ "anchor": "inputpaidmediaphoto",
+ "name": "InputPaidMediaPhoto",
+ "description": "The paid media to send is a photo.",
+ "html_description": "The paid media to send is a photo.
",
+ "rst_description": "The paid media to send is a photo.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the media, must be photo",
+ "html_description": "Type of the media, must be photo | ",
+ "rst_description": "Type of the media, must be *photo*\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. More information on Sending Files",
+ "html_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files » | ",
+ "rst_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. :ref:`More information on Sending Files » `\n",
+ "name": "media",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "inputpaidmediavideo",
+ "name": "InputPaidMediaVideo",
+ "description": "The paid media to send is a video.",
+ "html_description": "The paid media to send is a video.
",
+ "rst_description": "The paid media to send is a video.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the media, must be video",
+ "html_description": "Type of the media, must be video | ",
+ "rst_description": "Type of the media, must be *video*\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. More information on Sending Files",
+ "html_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files » | ",
+ "rst_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. :ref:`More information on Sending Files » `\n",
+ "name": "media",
+ "required": true
+ },
+ {
+ "type": "InputFile or String",
+ "description": "Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://' if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files",
+ "html_description": "Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files » | ",
+ "rst_description": "*Optional*. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://' if the thumbnail was uploaded using multipart/form-data under . :ref:`More information on Sending Files » `\n",
+ "name": "thumbnail",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video width",
+ "html_description": "Optional. Video width | ",
+ "rst_description": "*Optional*. Video width\n",
+ "name": "width",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video height",
+ "html_description": "Optional. Video height | ",
+ "rst_description": "*Optional*. Video height\n",
+ "name": "height",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video duration in seconds",
+ "html_description": "Optional. Video duration in seconds | ",
+ "rst_description": "*Optional*. Video duration in seconds\n",
+ "name": "duration",
+ "required": false
+ },
+ {
+ "type": "Boolean",
+ "description": "Pass True if the uploaded video is suitable for streaming",
+ "html_description": "Optional. Pass True if the uploaded video is suitable for streaming | ",
+ "rst_description": "*Optional*. Pass :code:`True` if the uploaded video is suitable for streaming\n",
+ "name": "supports_streaming",
+ "required": false
+ }
+ ],
+ "category": "types"
}
],
"description": "All types used in the Bot API responses are represented as JSON-objects.\nIt is safe to use 32-bit signed integers for storing all Integer fields unless otherwise noted.\nOptional fields may be not returned when irrelevant."
@@ -7434,6 +7821,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -7580,9 +7975,9 @@
{
"anchor": "copymessage",
"name": "copyMessage",
- "description": "Use this method to copy messages of any kind. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.",
- "html_description": "Use this method to copy messages of any kind. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.
",
- "rst_description": "Use this method to copy messages of any kind. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_message.ForwardMessage`, but the copied message doesn't have a link to the original message. Returns the :class:`aiogram.types.message_id.MessageId` of the sent message on success.",
+ "description": "Use this method to copy messages of any kind. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.",
+ "html_description": "Use this method to copy messages of any kind. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.
",
+ "rst_description": "Use this method to copy messages of any kind. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_message.ForwardMessage`, but the copied message doesn't have a link to the original message. Returns the :class:`aiogram.types.message_id.MessageId` of the sent message on success.",
"annotations": [
{
"type": "Integer or String",
@@ -7664,6 +8059,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "ReplyParameters",
"required": false,
@@ -7686,9 +8089,9 @@
{
"anchor": "copymessages",
"name": "copyMessages",
- "description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessages, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of MessageId of the sent messages is returned.",
- "html_description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessages, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of MessageId of the sent messages is returned.
",
- "rst_description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_messages.ForwardMessages`, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of :class:`aiogram.types.message_id.MessageId` of the sent messages is returned.",
+ "description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessages, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of MessageId of the sent messages is returned.",
+ "html_description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessages, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of MessageId of the sent messages is returned.
",
+ "rst_description": "Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_messages.ForwardMessages`, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. On success, an array of :class:`aiogram.types.message_id.MessageId` of the sent messages is returned.",
"annotations": [
{
"type": "Integer or String",
@@ -7844,6 +8247,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -7982,6 +8393,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8104,6 +8523,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8266,6 +8693,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8420,6 +8855,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8534,6 +8977,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8640,6 +9091,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8667,6 +9126,128 @@
],
"category": "methods"
},
+ {
+ "anchor": "sendpaidmedia",
+ "name": "sendPaidMedia",
+ "description": "Use this method to send paid media. On success, the sent Message is returned.",
+ "html_description": "Use this method to send paid media. On success, the sent Message is returned.
",
+ "rst_description": "Use this method to send paid media. On success, the sent :class:`aiogram.types.message.Message` is returned.",
+ "annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message will be sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message will be sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message will be sent\n",
+ "name": "business_connection_id"
+ },
+ {
+ "type": "Integer or String",
+ "required": true,
+ "description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername). If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat's balance. Otherwise, they will be credited to the bot's balance.",
+ "html_description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername). If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat's balance. Otherwise, they will be credited to the bot's balance. | ",
+ "rst_description": "Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`). If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat's balance. Otherwise, they will be credited to the bot's balance.\n",
+ "name": "chat_id"
+ },
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "The number of Telegram Stars that must be paid to buy access to the media; 1-2500",
+ "html_description": "The number of Telegram Stars that must be paid to buy access to the media; 1-2500 | ",
+ "rst_description": "The number of Telegram Stars that must be paid to buy access to the media; 1-2500\n",
+ "name": "star_count"
+ },
+ {
+ "type": "Array of InputPaidMedia",
+ "required": true,
+ "description": "A JSON-serialized array describing the media to be sent; up to 10 items",
+ "html_description": "A JSON-serialized array describing the media to be sent; up to 10 items | ",
+ "rst_description": "A JSON-serialized array describing the media to be sent; up to 10 items\n",
+ "name": "media"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Bot-defined paid media payload, 0-128 bytes. This will not be displayed to the user, use it for your internal processes.",
+ "html_description": "Bot-defined paid media payload, 0-128 bytes. This will not be displayed to the user, use it for your internal processes. | ",
+ "rst_description": "Bot-defined paid media payload, 0-128 bytes. This will not be displayed to the user, use it for your internal processes.\n",
+ "name": "payload"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Media caption, 0-1024 characters after entities parsing",
+ "html_description": "Media caption, 0-1024 characters after entities parsing | ",
+ "rst_description": "Media caption, 0-1024 characters after entities parsing\n",
+ "name": "caption"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Mode for parsing entities in the media caption. See formatting options for more details.",
+ "html_description": "Mode for parsing entities in the media caption. See formatting options for more details. | ",
+ "rst_description": "Mode for parsing entities in the media caption. See `formatting options `_ for more details.\n",
+ "name": "parse_mode"
+ },
+ {
+ "type": "Array of MessageEntity",
+ "required": false,
+ "description": "A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode",
+ "html_description": "A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode | ",
+ "rst_description": "A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode*\n",
+ "name": "caption_entities"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True, if the caption must be shown above the message media",
+ "html_description": "Pass True, if the caption must be shown above the message media | ",
+ "rst_description": "Pass :code:`True`, if the caption must be shown above the message media\n",
+ "name": "show_caption_above_media"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Sends the message silently. Users will receive a notification with no sound.",
+ "html_description": "Sends the message silently. Users will receive a notification with no sound. | ",
+ "rst_description": "Sends the message `silently `_. Users will receive a notification with no sound.\n",
+ "name": "disable_notification"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Protects the contents of the sent message from forwarding and saving",
+ "html_description": "Protects the contents of the sent message from forwarding and saving | ",
+ "rst_description": "Protects the contents of the sent message from forwarding and saving\n",
+ "name": "protect_content"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
+ {
+ "type": "ReplyParameters",
+ "required": false,
+ "description": "Description of the message to reply to",
+ "html_description": "Description of the message to reply to | ",
+ "rst_description": "Description of the message to reply to\n",
+ "name": "reply_parameters"
+ },
+ {
+ "type": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply",
+ "required": false,
+ "description": "Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user",
+ "html_description": "Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user | ",
+ "rst_description": "Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user\n",
+ "name": "reply_markup"
+ }
+ ],
+ "category": "methods"
+ },
{
"anchor": "sendmediagroup",
"name": "sendMediaGroup",
@@ -8722,6 +9303,14 @@
"rst_description": "Protects the contents of the sent messages from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8836,6 +9425,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -8974,6 +9571,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -9080,6 +9685,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -9266,6 +9879,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -9348,6 +9969,14 @@
"rst_description": "Protects the contents of the sent message from forwarding\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -9420,9 +10049,9 @@
{
"anchor": "setmessagereaction",
"name": "setMessageReaction",
- "description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Returns True on success.",
- "html_description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Returns True on success.
",
- "rst_description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Returns :code:`True` on success.",
+ "description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Bots can't use paid reactions. Returns True on success.",
+ "html_description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Bots can't use paid reactions. Returns True on success.
",
+ "rst_description": "Use this method to change the chosen reactions on a message. Service messages can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Bots can't use paid reactions. Returns :code:`True` on success.",
"annotations": [
{
"type": "Integer or String",
@@ -9443,9 +10072,9 @@
{
"type": "Array of ReactionType",
"required": false,
- "description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators.",
- "html_description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators. | ",
- "rst_description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators.\n",
+ "description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators. Paid reactions can't be used by bots.",
+ "html_description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators. Paid reactions can't be used by bots. | ",
+ "rst_description": "A JSON-serialized list of reaction types to set on the message. Currently, as non-premium users, bots can set up to one reaction per message. A custom emoji reaction can be used if it is either already present on the message or explicitly allowed by chat administrators. Paid reactions can't be used by bots.\n",
"name": "reaction"
},
{
@@ -9493,6 +10122,40 @@
],
"category": "methods"
},
+ {
+ "anchor": "setuseremojistatus",
+ "name": "setUserEmojiStatus",
+ "description": "Changes the emoji status for a given user that previously allowed the bot to manage their emoji status via the Mini App method requestEmojiStatusAccess. Returns True on success.",
+ "html_description": "Changes the emoji status for a given user that previously allowed the bot to manage their emoji status via the Mini App method requestEmojiStatusAccess. Returns True on success.
",
+ "rst_description": "Changes the emoji status for a given user that previously allowed the bot to manage their emoji status via the Mini App method `requestEmojiStatusAccess `_. Returns :code:`True` on success.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "Unique identifier of the target user",
+ "html_description": "Unique identifier of the target user | ",
+ "rst_description": "Unique identifier of the target user\n",
+ "name": "user_id"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Custom emoji identifier of the emoji status to set. Pass an empty string to remove the status.",
+ "html_description": "Custom emoji identifier of the emoji status to set. Pass an empty string to remove the status. | ",
+ "rst_description": "Custom emoji identifier of the emoji status to set. Pass an empty string to remove the status.\n",
+ "name": "emoji_status_custom_emoji_id"
+ },
+ {
+ "type": "Integer",
+ "required": false,
+ "description": "Expiration date of the emoji status, if any",
+ "html_description": "Expiration date of the emoji status, if any | ",
+ "rst_description": "Expiration date of the emoji status, if any\n",
+ "name": "emoji_status_expiration_date"
+ }
+ ],
+ "category": "methods"
+ },
{
"anchor": "getfile",
"name": "getFile",
@@ -10029,6 +10692,82 @@
],
"category": "methods"
},
+ {
+ "anchor": "createchatsubscriptioninvitelink",
+ "name": "createChatSubscriptionInviteLink",
+ "description": "Use this method to create a subscription invite link for a channel chat. The bot must have the can_invite_users administrator rights. The link can be edited using the method editChatSubscriptionInviteLink or revoked using the method revokeChatInviteLink. Returns the new invite link as a ChatInviteLink object.",
+ "html_description": "Use this method to create a subscription invite link for a channel chat. The bot must have the can_invite_users administrator rights. The link can be edited using the method editChatSubscriptionInviteLink or revoked using the method revokeChatInviteLink. Returns the new invite link as a ChatInviteLink object.
",
+ "rst_description": "Use this method to create a `subscription invite link `_ for a channel chat. The bot must have the *can_invite_users* administrator rights. The link can be edited using the method :class:`aiogram.methods.edit_chat_subscription_invite_link.EditChatSubscriptionInviteLink` or revoked using the method :class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink`. Returns the new invite link as a :class:`aiogram.types.chat_invite_link.ChatInviteLink` object.",
+ "annotations": [
+ {
+ "type": "Integer or String",
+ "required": true,
+ "description": "Unique identifier for the target channel chat or username of the target channel (in the format @channelusername)",
+ "html_description": "Unique identifier for the target channel chat or username of the target channel (in the format @channelusername) | ",
+ "rst_description": "Unique identifier for the target channel chat or username of the target channel (in the format :code:`@channelusername`)\n",
+ "name": "chat_id"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Invite link name; 0-32 characters",
+ "html_description": "Invite link name; 0-32 characters | ",
+ "rst_description": "Invite link name; 0-32 characters\n",
+ "name": "name"
+ },
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "The number of seconds the subscription will be active for before the next payment. Currently, it must always be 2592000 (30 days).",
+ "html_description": "The number of seconds the subscription will be active for before the next payment. Currently, it must always be 2592000 (30 days). | ",
+ "rst_description": "The number of seconds the subscription will be active for before the next payment. Currently, it must always be 2592000 (30 days).\n",
+ "name": "subscription_period"
+ },
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat; 1-2500",
+ "html_description": "The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat; 1-2500 | ",
+ "rst_description": "The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat; 1-2500\n",
+ "name": "subscription_price"
+ }
+ ],
+ "category": "methods"
+ },
+ {
+ "anchor": "editchatsubscriptioninvitelink",
+ "name": "editChatSubscriptionInviteLink",
+ "description": "Use this method to edit a subscription invite link created by the bot. The bot must have the can_invite_users administrator rights. Returns the edited invite link as a ChatInviteLink object.",
+ "html_description": "Use this method to edit a subscription invite link created by the bot. The bot must have the can_invite_users administrator rights. Returns the edited invite link as a ChatInviteLink object.
",
+ "rst_description": "Use this method to edit a subscription invite link created by the bot. The bot must have the *can_invite_users* administrator rights. Returns the edited invite link as a :class:`aiogram.types.chat_invite_link.ChatInviteLink` object.",
+ "annotations": [
+ {
+ "type": "Integer or String",
+ "required": true,
+ "description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)",
+ "html_description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername) | ",
+ "rst_description": "Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)\n",
+ "name": "chat_id"
+ },
+ {
+ "type": "String",
+ "required": true,
+ "description": "The invite link to edit",
+ "html_description": "The invite link to edit | ",
+ "rst_description": "The invite link to edit\n",
+ "name": "invite_link"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Invite link name; 0-32 characters",
+ "html_description": "Invite link name; 0-32 characters | ",
+ "rst_description": "Invite link name; 0-32 characters\n",
+ "name": "name"
+ }
+ ],
+ "category": "methods"
+ },
{
"anchor": "revokechatinvitelink",
"name": "revokeChatInviteLink",
@@ -10210,6 +10949,14 @@
"html_description": "Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success.
",
"rst_description": "Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns :code:`True` on success.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message will be pinned",
+ "html_description": "Unique identifier of the business connection on behalf of which the message will be pinned | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message will be pinned\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": true,
@@ -10244,6 +10991,14 @@
"html_description": "Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success.
",
"rst_description": "Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns :code:`True` on success.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message will be unpinned",
+ "html_description": "Unique identifier of the business connection on behalf of which the message will be unpinned | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message will be unpinned\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": true,
@@ -10255,9 +11010,9 @@
{
"type": "Integer",
"required": false,
- "description": "Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned.",
- "html_description": "Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. | ",
- "rst_description": "Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned.\n",
+ "description": "Identifier of the message to unpin. Required if business_connection_id is specified. If not specified, the most recent pinned message (by sending date) will be unpinned.",
+ "html_description": "Identifier of the message to unpin. Required if business_connection_id is specified. If not specified, the most recent pinned message (by sending date) will be unpinned. | ",
+ "rst_description": "Identifier of the message to unpin. Required if *business_connection_id* is specified. If not specified, the most recent pinned message (by sending date) will be unpinned.\n",
"name": "message_id"
}
],
@@ -10477,9 +11232,9 @@
{
"anchor": "editforumtopic",
"name": "editForumTopic",
- "description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.",
- "html_description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.
",
- "rst_description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have *can_manage_topics* administrator rights, unless it is the creator of the topic. Returns :code:`True` on success.",
+ "description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.",
+ "html_description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.
",
+ "rst_description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the *can_manage_topics* administrator rights, unless it is the creator of the topic. Returns :code:`True` on success.",
"annotations": [
{
"type": "Integer or String",
@@ -10623,9 +11378,9 @@
{
"anchor": "editgeneralforumtopic",
"name": "editGeneralForumTopic",
- "description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success.",
- "html_description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success.
",
- "rst_description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have *can_manage_topics* administrator rights. Returns :code:`True` on success.",
+ "description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success.",
+ "html_description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success.
",
+ "rst_description": "Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the *can_manage_topics* administrator rights. Returns :code:`True` on success.",
"annotations": [
{
"type": "Integer or String",
@@ -11146,10 +11901,18 @@
{
"anchor": "editmessagetext",
"name": "editMessageText",
- "description": "Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.",
- "html_description": "Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
",
- "rst_description": "Use this method to edit text and `game `_ messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
+ "description": "Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.",
+ "html_description": "Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
",
+ "rst_description": "Use this method to edit text and `game `_ messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11220,10 +11983,18 @@
{
"anchor": "editmessagecaption",
"name": "editMessageCaption",
- "description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.",
- "html_description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
",
- "rst_description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
+ "description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.",
+ "html_description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
",
+ "rst_description": "Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11294,10 +12065,18 @@
{
"anchor": "editmessagemedia",
"name": "editMessageMedia",
- "description": "Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.",
- "html_description": "Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
",
- "rst_description": "Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
+ "description": "Use this method to edit animation, audio, document, photo, or video messages, or to add media to text messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.",
+ "html_description": "Use this method to edit animation, audio, document, photo, or video messages, or to add media to text messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
",
+ "rst_description": "Use this method to edit animation, audio, document, photo, or video messages, or to add media to text messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11348,6 +12127,14 @@
"html_description": "Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
",
"rst_description": "Use this method to edit live location messages. A location can be edited until its *live_period* expires or editing is explicitly disabled by a call to :class:`aiogram.methods.stop_message_live_location.StopMessageLiveLocation`. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11438,6 +12225,14 @@
"html_description": "Use this method to stop updating a live location message before live_period expires. On success, if the message is not an inline message, the edited Message is returned, otherwise True is returned.
",
"rst_description": "Use this method to stop updating a live location message before *live_period* expires. On success, if the message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11476,10 +12271,18 @@
{
"anchor": "editmessagereplymarkup",
"name": "editMessageReplyMarkup",
- "description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.",
- "html_description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
",
- "rst_description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.",
+ "description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.",
+ "html_description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.
",
+ "rst_description": "Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": false,
@@ -11522,6 +12325,14 @@
"html_description": "Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned.
",
"rst_description": "Use this method to stop a poll which was sent by the bot. On success, the stopped :class:`aiogram.types.poll.Poll` is returned.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the message to be edited was sent",
+ "html_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the message to be edited was sent\n",
+ "name": "business_connection_id"
+ },
{
"type": "Integer or String",
"required": true,
@@ -11943,6 +12754,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -12348,9 +13167,9 @@
{
"type": "InputFile or String",
"required": false,
- "description": "A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files. Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.",
- "html_description": "A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. | ",
- "rst_description": "A **.WEBP** or **.PNG** image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a **.TGS** animation with a thumbnail up to 32 kilobytes in size (see `https://core.telegram.org/stickers#animated-sticker-requirements `_`https://core.telegram.org/stickers#animated-sticker-requirements `_ for animated sticker technical requirements), or a **WEBM** video with the thumbnail up to 32 kilobytes in size; see `https://core.telegram.org/stickers#video-sticker-requirements `_`https://core.telegram.org/stickers#video-sticker-requirements `_ for video sticker technical requirements. Pass a *file_id* as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » `. Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.\n",
+ "description": "A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animation-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files. Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.",
+ "html_description": "A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animation-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. | ",
+ "rst_description": "A **.WEBP** or **.PNG** image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a **.TGS** animation with a thumbnail up to 32 kilobytes in size (see `https://core.telegram.org/stickers#animation-requirements `_`https://core.telegram.org/stickers#animation-requirements `_ for animated sticker technical requirements), or a **WEBM** video with the thumbnail up to 32 kilobytes in size; see `https://core.telegram.org/stickers#video-requirements `_`https://core.telegram.org/stickers#video-requirements `_ for video sticker technical requirements. Pass a *file_id* as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » `. Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.\n",
"name": "thumbnail"
},
{
@@ -12407,6 +13226,133 @@
}
],
"category": "methods"
+ },
+ {
+ "anchor": "gift",
+ "name": "Gift",
+ "description": "This object represents a gift that can be sent by the bot.",
+ "html_description": "This object represents a gift that can be sent by the bot.
",
+ "rst_description": "This object represents a gift that can be sent by the bot.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the gift",
+ "html_description": "Unique identifier of the gift | ",
+ "rst_description": "Unique identifier of the gift\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Sticker",
+ "description": "The sticker that represents the gift",
+ "html_description": "The sticker that represents the gift | ",
+ "rst_description": "The sticker that represents the gift\n",
+ "name": "sticker",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars that must be paid to send the sticker",
+ "html_description": "The number of Telegram Stars that must be paid to send the sticker | ",
+ "rst_description": "The number of Telegram Stars that must be paid to send the sticker\n",
+ "name": "star_count",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The total number of the gifts of this type that can be sent; for limited gifts only",
+ "html_description": "Optional. The total number of the gifts of this type that can be sent; for limited gifts only | ",
+ "rst_description": "*Optional*. The total number of the gifts of this type that can be sent; for limited gifts only\n",
+ "name": "total_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of remaining gifts of this type that can be sent; for limited gifts only",
+ "html_description": "Optional. The number of remaining gifts of this type that can be sent; for limited gifts only | ",
+ "rst_description": "*Optional*. The number of remaining gifts of this type that can be sent; for limited gifts only\n",
+ "name": "remaining_count",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "gifts",
+ "name": "Gifts",
+ "description": "This object represent a list of gifts.",
+ "html_description": "This object represent a list of gifts.
",
+ "rst_description": "This object represent a list of gifts.",
+ "annotations": [
+ {
+ "type": "Array of Gift",
+ "description": "The list of gifts",
+ "html_description": "The list of gifts | ",
+ "rst_description": "The list of gifts\n",
+ "name": "gifts",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "getavailablegifts",
+ "name": "getAvailableGifts",
+ "description": "Returns the list of gifts that can be sent by the bot to users. Requires no parameters. Returns a Gifts object.",
+ "html_description": "Returns the list of gifts that can be sent by the bot to users. Requires no parameters. Returns a Gifts object.
",
+ "rst_description": "Returns the list of gifts that can be sent by the bot to users. Requires no parameters. Returns a :class:`aiogram.types.gifts.Gifts` object.",
+ "annotations": [],
+ "category": "methods"
+ },
+ {
+ "anchor": "sendgift",
+ "name": "sendGift",
+ "description": "Sends a gift to the given user. The gift can't be converted to Telegram Stars by the user. Returns True on success.",
+ "html_description": "Sends a gift to the given user. The gift can't be converted to Telegram Stars by the user. Returns True on success.
",
+ "rst_description": "Sends a gift to the given user. The gift can't be converted to Telegram Stars by the user. Returns :code:`True` on success.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "Unique identifier of the target user that will receive the gift",
+ "html_description": "Unique identifier of the target user that will receive the gift | ",
+ "rst_description": "Unique identifier of the target user that will receive the gift\n",
+ "name": "user_id"
+ },
+ {
+ "type": "String",
+ "required": true,
+ "description": "Identifier of the gift",
+ "html_description": "Identifier of the gift | ",
+ "rst_description": "Identifier of the gift\n",
+ "name": "gift_id"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Text that will be shown along with the gift; 0-255 characters",
+ "html_description": "Text that will be shown along with the gift; 0-255 characters | ",
+ "rst_description": "Text that will be shown along with the gift; 0-255 characters\n",
+ "name": "text"
+ },
+ {
+ "type": "String",
+ "required": false,
+ "description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than 'bold', 'italic', 'underline', 'strikethrough', 'spoiler', and 'custom_emoji' are ignored.",
+ "html_description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than “bold”, “italic”, “underline”, “strikethrough”, “spoiler”, and “custom_emoji” are ignored. | ",
+ "rst_description": "Mode for parsing entities in the text. See `formatting options `_ for more details. Entities other than 'bold', 'italic', 'underline', 'strikethrough', 'spoiler', and 'custom_emoji' are ignored.\n",
+ "name": "text_parse_mode"
+ },
+ {
+ "type": "Array of MessageEntity",
+ "required": false,
+ "description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than 'bold', 'italic', 'underline', 'strikethrough', 'spoiler', and 'custom_emoji' are ignored.",
+ "html_description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than “bold”, “italic”, “underline”, “strikethrough”, “spoiler”, and “custom_emoji” are ignored. | ",
+ "rst_description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of *text_parse_mode*. Entities other than 'bold', 'italic', 'underline', 'strikethrough', 'spoiler', and 'custom_emoji' are ignored.\n",
+ "name": "text_entities"
+ }
+ ],
+ "category": "methods"
}
],
"description": "The following methods and objects allow your bot to handle stickers and sticker sets."
@@ -14816,9 +15762,9 @@
},
{
"type": "String",
- "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.",
- "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | ",
- "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.\n",
+ "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.",
+ "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes. | ",
+ "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.\n",
"name": "payload",
"required": true
},
@@ -15054,6 +16000,90 @@
}
],
"category": "types"
+ },
+ {
+ "anchor": "savepreparedinlinemessage",
+ "name": "savePreparedInlineMessage",
+ "description": "Stores a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object.",
+ "html_description": "Stores a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object.
",
+ "rst_description": "Stores a message that can be sent by a user of a Mini App. Returns a :class:`aiogram.types.prepared_inline_message.PreparedInlineMessage` object.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "Unique identifier of the target user that can use the prepared message",
+ "html_description": "Unique identifier of the target user that can use the prepared message | ",
+ "rst_description": "Unique identifier of the target user that can use the prepared message\n",
+ "name": "user_id"
+ },
+ {
+ "type": "InlineQueryResult",
+ "required": true,
+ "description": "A JSON-serialized object describing the message to be sent",
+ "html_description": "A JSON-serialized object describing the message to be sent | ",
+ "rst_description": "A JSON-serialized object describing the message to be sent\n",
+ "name": "result"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True if the message can be sent to private chats with users",
+ "html_description": "Pass True if the message can be sent to private chats with users | ",
+ "rst_description": "Pass :code:`True` if the message can be sent to private chats with users\n",
+ "name": "allow_user_chats"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True if the message can be sent to private chats with bots",
+ "html_description": "Pass True if the message can be sent to private chats with bots | ",
+ "rst_description": "Pass :code:`True` if the message can be sent to private chats with bots\n",
+ "name": "allow_bot_chats"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True if the message can be sent to group and supergroup chats",
+ "html_description": "Pass True if the message can be sent to group and supergroup chats | ",
+ "rst_description": "Pass :code:`True` if the message can be sent to group and supergroup chats\n",
+ "name": "allow_group_chats"
+ },
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True if the message can be sent to channel chats",
+ "html_description": "Pass True if the message can be sent to channel chats | ",
+ "rst_description": "Pass :code:`True` if the message can be sent to channel chats\n",
+ "name": "allow_channel_chats"
+ }
+ ],
+ "category": "methods"
+ },
+ {
+ "anchor": "preparedinlinemessage",
+ "name": "PreparedInlineMessage",
+ "description": "Describes an inline message to be sent by a user of a Mini App.",
+ "html_description": "Describes an inline message to be sent by a user of a Mini App.
",
+ "rst_description": "Describes an inline message to be sent by a user of a Mini App.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the prepared message",
+ "html_description": "Unique identifier of the prepared message | ",
+ "rst_description": "Unique identifier of the prepared message\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used",
+ "html_description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used | ",
+ "rst_description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used\n",
+ "name": "expiration_date",
+ "required": true
+ }
+ ],
+ "category": "types"
}
],
"description": "The following methods and objects allow your bot to work in inline mode.\nPlease see our Introduction to Inline bots for more details.\nTo enable this option, send the /setinline command to @BotFather and provide the placeholder text that the user will see in the input field after typing your bot's name."
@@ -15104,9 +16134,9 @@
{
"type": "String",
"required": true,
- "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.",
- "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | ",
- "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.\n",
+ "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.",
+ "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes. | ",
+ "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.\n",
"name": "payload"
},
{
@@ -15269,6 +16299,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -15303,6 +16341,14 @@
"html_description": "Use this method to create a link for an invoice. Returns the created invoice link as String on success.
",
"rst_description": "Use this method to create a link for an invoice. Returns the created invoice link as *String* on success.",
"annotations": [
+ {
+ "type": "String",
+ "required": false,
+ "description": "Unique identifier of the business connection on behalf of which the link will be created",
+ "html_description": "Unique identifier of the business connection on behalf of which the link will be created | ",
+ "rst_description": "Unique identifier of the business connection on behalf of which the link will be created\n",
+ "name": "business_connection_id"
+ },
{
"type": "String",
"required": true,
@@ -15322,9 +16368,9 @@
{
"type": "String",
"required": true,
- "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.",
- "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | ",
- "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.\n",
+ "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.",
+ "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes. | ",
+ "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.\n",
"name": "payload"
},
{
@@ -15351,6 +16397,14 @@
"rst_description": "Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.). Must contain exactly one item for payments in `Telegram Stars `_.\n",
"name": "prices"
},
+ {
+ "type": "Integer",
+ "required": false,
+ "description": "The number of seconds the subscription will be active for before the next payment. The currency must be set to 'XTR' (Telegram Stars) if the parameter is used. Currently, it must always be 2592000 (30 days) if specified.",
+ "html_description": "The number of seconds the subscription will be active for before the next payment. The currency must be set to “XTR” (Telegram Stars) if the parameter is used. Currently, it must always be 2592000 (30 days) if specified. | ",
+ "rst_description": "The number of seconds the subscription will be active for before the next payment. The currency must be set to 'XTR' (Telegram Stars) if the parameter is used. Currently, it must always be 2592000 (30 days) if specified.\n",
+ "name": "subscription_period"
+ },
{
"type": "Integer",
"required": false,
@@ -15542,6 +16596,32 @@
],
"category": "methods"
},
+ {
+ "anchor": "getstartransactions",
+ "name": "getStarTransactions",
+ "description": "Returns the bot's Telegram Star transactions in chronological order. On success, returns a StarTransactions object.",
+ "html_description": "Returns the bot's Telegram Star transactions in chronological order. On success, returns a StarTransactions object.
",
+ "rst_description": "Returns the bot's Telegram Star transactions in chronological order. On success, returns a :class:`aiogram.types.star_transactions.StarTransactions` object.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "required": false,
+ "description": "Number of transactions to skip in the response",
+ "html_description": "Number of transactions to skip in the response | ",
+ "rst_description": "Number of transactions to skip in the response\n",
+ "name": "offset"
+ },
+ {
+ "type": "Integer",
+ "required": false,
+ "description": "The maximum number of transactions to be retrieved. Values between 1-100 are accepted. Defaults to 100.",
+ "html_description": "The maximum number of transactions to be retrieved. Values between 1-100 are accepted. Defaults to 100. | ",
+ "rst_description": "The maximum number of transactions to be retrieved. Values between 1-100 are accepted. Defaults to 100.\n",
+ "name": "limit"
+ }
+ ],
+ "category": "methods"
+ },
{
"anchor": "refundstarpayment",
"name": "refundStarPayment",
@@ -15568,6 +16648,40 @@
],
"category": "methods"
},
+ {
+ "anchor": "edituserstarsubscription",
+ "name": "editUserStarSubscription",
+ "description": "Allows the bot to cancel or re-enable extension of a subscription paid in Telegram Stars. Returns True on success.",
+ "html_description": "Allows the bot to cancel or re-enable extension of a subscription paid in Telegram Stars. Returns True on success.
",
+ "rst_description": "Allows the bot to cancel or re-enable extension of a subscription paid in Telegram Stars. Returns :code:`True` on success.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "required": true,
+ "description": "Identifier of the user whose subscription will be edited",
+ "html_description": "Identifier of the user whose subscription will be edited | ",
+ "rst_description": "Identifier of the user whose subscription will be edited\n",
+ "name": "user_id"
+ },
+ {
+ "type": "String",
+ "required": true,
+ "description": "Telegram payment identifier for the subscription",
+ "html_description": "Telegram payment identifier for the subscription | ",
+ "rst_description": "Telegram payment identifier for the subscription\n",
+ "name": "telegram_payment_charge_id"
+ },
+ {
+ "type": "Boolean",
+ "required": true,
+ "description": "Pass True to cancel extension of the user subscription; the subscription must be active up to the end of the current subscription period. Pass False to allow the user to re-enable a subscription that was previously canceled by the bot.",
+ "html_description": "Pass True to cancel extension of the user subscription; the subscription must be active up to the end of the current subscription period. Pass False to allow the user to re-enable a subscription that was previously canceled by the bot. | ",
+ "rst_description": "Pass :code:`True` to cancel extension of the user subscription; the subscription must be active up to the end of the current subscription period. Pass :code:`False` to allow the user to re-enable a subscription that was previously canceled by the bot.\n",
+ "name": "is_canceled"
+ }
+ ],
+ "category": "methods"
+ },
{
"anchor": "labeledprice",
"name": "LabeledPrice",
@@ -15803,12 +16917,36 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
+ {
+ "type": "Integer",
+ "description": "Expiration date of the subscription, in Unix time; for recurring payments only",
+ "html_description": "Optional. Expiration date of the subscription, in Unix time; for recurring payments only | ",
+ "rst_description": "*Optional*. Expiration date of the subscription, in Unix time; for recurring payments only\n",
+ "name": "subscription_expiration_date",
+ "required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the payment is a recurring payment for a subscription",
+ "html_description": "Optional. True, if the payment is a recurring payment for a subscription | ",
+ "rst_description": "*Optional*. True, if the payment is a recurring payment for a subscription\n",
+ "name": "is_recurring",
+ "required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the payment is the first payment for a subscription",
+ "html_description": "Optional. True, if the payment is the first payment for a subscription | ",
+ "rst_description": "*Optional*. True, if the payment is the first payment for a subscription\n",
+ "name": "is_first_recurring",
+ "required": false
+ },
{
"type": "String",
"description": "Identifier of the shipping option chosen by the user",
@@ -15844,6 +16982,56 @@
],
"category": "types"
},
+ {
+ "anchor": "refundedpayment",
+ "name": "RefundedPayment",
+ "description": "This object contains basic information about a refunded payment.",
+ "html_description": "This object contains basic information about a refunded payment.
",
+ "rst_description": "This object contains basic information about a refunded payment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Three-letter ISO 4217 currency code, or 'XTR' for payments in Telegram Stars. Currently, always 'XTR'",
+ "html_description": "Three-letter ISO 4217 currency code, or “XTR” for payments in Telegram Stars. Currently, always “XTR” | ",
+ "rst_description": "Three-letter ISO 4217 `currency `_ code, or 'XTR' for payments in `Telegram Stars `_. Currently, always 'XTR'\n",
+ "name": "currency",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Total refunded price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45, total_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).",
+ "html_description": "Total refunded price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45, total_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). | ",
+ "rst_description": "Total refunded price in the *smallest units* of the currency (integer, **not** float/double). For example, for a price of :code:`US$ 1.45`, :code:`total_amount = 145`. See the *exp* parameter in `currencies.json `_, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).\n",
+ "name": "total_amount",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
+ "name": "invoice_payload",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Telegram payment identifier",
+ "html_description": "Telegram payment identifier | ",
+ "rst_description": "Telegram payment identifier\n",
+ "name": "telegram_payment_charge_id",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Provider payment identifier",
+ "html_description": "Optional. Provider payment identifier | ",
+ "rst_description": "*Optional*. Provider payment identifier\n",
+ "name": "provider_payment_charge_id",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
{
"anchor": "shippingquery",
"name": "ShippingQuery",
@@ -15869,9 +17057,9 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
@@ -15927,9 +17115,9 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
@@ -15951,6 +17139,342 @@
}
],
"category": "types"
+ },
+ {
+ "anchor": "paidmediapurchased",
+ "name": "PaidMediaPurchased",
+ "description": "This object contains information about a paid media purchase.",
+ "html_description": "This object contains information about a paid media purchase.
",
+ "rst_description": "This object contains information about a paid media purchase.",
+ "annotations": [
+ {
+ "type": "User",
+ "description": "User who purchased the media",
+ "html_description": "User who purchased the media | ",
+ "rst_description": "User who purchased the media\n",
+ "name": "from",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified paid media payload",
+ "html_description": "Bot-specified paid media payload | ",
+ "rst_description": "Bot-specified paid media payload\n",
+ "name": "paid_media_payload",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "revenuewithdrawalstate",
+ "name": "RevenueWithdrawalState",
+ "description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of\n - RevenueWithdrawalStatePending\n - RevenueWithdrawalStateSucceeded\n - RevenueWithdrawalStateFailed",
+ "html_description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of
",
+ "rst_description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of\n\n - :class:`aiogram.types.revenue_withdrawal_state_pending.RevenueWithdrawalStatePending`\n - :class:`aiogram.types.revenue_withdrawal_state_succeeded.RevenueWithdrawalStateSucceeded`\n - :class:`aiogram.types.revenue_withdrawal_state_failed.RevenueWithdrawalStateFailed`",
+ "annotations": [],
+ "category": "types"
+ },
+ {
+ "anchor": "revenuewithdrawalstatepending",
+ "name": "RevenueWithdrawalStatePending",
+ "description": "The withdrawal is in progress.",
+ "html_description": "The withdrawal is in progress.
",
+ "rst_description": "The withdrawal is in progress.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'pending'",
+ "html_description": "Type of the state, always “pending” | ",
+ "rst_description": "Type of the state, always 'pending'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "revenuewithdrawalstatesucceeded",
+ "name": "RevenueWithdrawalStateSucceeded",
+ "description": "The withdrawal succeeded.",
+ "html_description": "The withdrawal succeeded.
",
+ "rst_description": "The withdrawal succeeded.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'succeeded'",
+ "html_description": "Type of the state, always “succeeded” | ",
+ "rst_description": "Type of the state, always 'succeeded'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date the withdrawal was completed in Unix time",
+ "html_description": "Date the withdrawal was completed in Unix time | ",
+ "rst_description": "Date the withdrawal was completed in Unix time\n",
+ "name": "date",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "An HTTPS URL that can be used to see transaction details",
+ "html_description": "An HTTPS URL that can be used to see transaction details | ",
+ "rst_description": "An HTTPS URL that can be used to see transaction details\n",
+ "name": "url",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "revenuewithdrawalstatefailed",
+ "name": "RevenueWithdrawalStateFailed",
+ "description": "The withdrawal failed and the transaction was refunded.",
+ "html_description": "The withdrawal failed and the transaction was refunded.
",
+ "rst_description": "The withdrawal failed and the transaction was refunded.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'failed'",
+ "html_description": "Type of the state, always “failed” | ",
+ "rst_description": "Type of the state, always 'failed'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartner",
+ "name": "TransactionPartner",
+ "description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of\n - TransactionPartnerUser\n - TransactionPartnerFragment\n - TransactionPartnerTelegramAds\n - TransactionPartnerTelegramApi\n - TransactionPartnerOther",
+ "html_description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of
",
+ "rst_description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of\n\n - :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`\n - :class:`aiogram.types.transaction_partner_fragment.TransactionPartnerFragment`\n - :class:`aiogram.types.transaction_partner_telegram_ads.TransactionPartnerTelegramAds`\n - :class:`aiogram.types.transaction_partner_telegram_api.TransactionPartnerTelegramApi`\n - :class:`aiogram.types.transaction_partner_other.TransactionPartnerOther`",
+ "annotations": [],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartneruser",
+ "name": "TransactionPartnerUser",
+ "description": "Describes a transaction with a user.",
+ "html_description": "Describes a transaction with a user.
",
+ "rst_description": "Describes a transaction with a user.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'user'",
+ "html_description": "Type of the transaction partner, always “user” | ",
+ "rst_description": "Type of the transaction partner, always 'user'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "User",
+ "description": "Information about the user",
+ "html_description": "Information about the user | ",
+ "rst_description": "Information about the user\n",
+ "name": "user",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Optional. Bot-specified invoice payload | ",
+ "rst_description": "*Optional*. Bot-specified invoice payload\n",
+ "name": "invoice_payload",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The duration of the paid subscription",
+ "html_description": "Optional. The duration of the paid subscription | ",
+ "rst_description": "*Optional*. The duration of the paid subscription\n",
+ "name": "subscription_period",
+ "required": false
+ },
+ {
+ "type": "Array of PaidMedia",
+ "description": "Information about the paid media bought by the user",
+ "html_description": "Optional. Information about the paid media bought by the user | ",
+ "rst_description": "*Optional*. Information about the paid media bought by the user\n",
+ "name": "paid_media",
+ "required": false
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified paid media payload",
+ "html_description": "Optional. Bot-specified paid media payload | ",
+ "rst_description": "*Optional*. Bot-specified paid media payload\n",
+ "name": "paid_media_payload",
+ "required": false
+ },
+ {
+ "type": "String",
+ "description": "The gift sent to the user by the bot",
+ "html_description": "Optional. The gift sent to the user by the bot | ",
+ "rst_description": "*Optional*. The gift sent to the user by the bot\n",
+ "name": "gift",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartnerfragment",
+ "name": "TransactionPartnerFragment",
+ "description": "Describes a withdrawal transaction with Fragment.",
+ "html_description": "Describes a withdrawal transaction with Fragment.
",
+ "rst_description": "Describes a withdrawal transaction with Fragment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'fragment'",
+ "html_description": "Type of the transaction partner, always “fragment” | ",
+ "rst_description": "Type of the transaction partner, always 'fragment'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "RevenueWithdrawalState",
+ "description": "State of the transaction if the transaction is outgoing",
+ "html_description": "Optional. State of the transaction if the transaction is outgoing | ",
+ "rst_description": "*Optional*. State of the transaction if the transaction is outgoing\n",
+ "name": "withdrawal_state",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartnertelegramads",
+ "name": "TransactionPartnerTelegramAds",
+ "description": "Describes a withdrawal transaction to the Telegram Ads platform.",
+ "html_description": "Describes a withdrawal transaction to the Telegram Ads platform.
",
+ "rst_description": "Describes a withdrawal transaction to the Telegram Ads platform.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'telegram_ads'",
+ "html_description": "Type of the transaction partner, always “telegram_ads” | ",
+ "rst_description": "Type of the transaction partner, always 'telegram_ads'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartnertelegramapi",
+ "name": "TransactionPartnerTelegramApi",
+ "description": "Describes a transaction with payment for paid broadcasting.",
+ "html_description": "Describes a transaction with payment for paid broadcasting.
",
+ "rst_description": "Describes a transaction with payment for `paid broadcasting `_.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'telegram_api'",
+ "html_description": "Type of the transaction partner, always “telegram_api” | ",
+ "rst_description": "Type of the transaction partner, always 'telegram_api'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The number of successful requests that exceeded regular limits and were therefore billed",
+ "html_description": "The number of successful requests that exceeded regular limits and were therefore billed | ",
+ "rst_description": "The number of successful requests that exceeded regular limits and were therefore billed\n",
+ "name": "request_count",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "transactionpartnerother",
+ "name": "TransactionPartnerOther",
+ "description": "Describes a transaction with an unknown source or recipient.",
+ "html_description": "Describes a transaction with an unknown source or recipient.
",
+ "rst_description": "Describes a transaction with an unknown source or recipient.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'other'",
+ "html_description": "Type of the transaction partner, always “other” | ",
+ "rst_description": "Type of the transaction partner, always 'other'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "startransaction",
+ "name": "StarTransaction",
+ "description": "Describes a Telegram Star transaction.",
+ "html_description": "Describes a Telegram Star transaction.
",
+ "rst_description": "Describes a Telegram Star transaction.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with SuccessfulPayment.telegram_payment_charge_id for successful incoming payments from users.",
+ "html_description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with SuccessfulPayment.telegram_payment_charge_id for successful incoming payments from users. | ",
+ "rst_description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with *SuccessfulPayment.telegram_payment_charge_id* for successful incoming payments from users.\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Number of Telegram Stars transferred by the transaction",
+ "html_description": "Number of Telegram Stars transferred by the transaction | ",
+ "rst_description": "Number of Telegram Stars transferred by the transaction\n",
+ "name": "amount",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date the transaction was created in Unix time",
+ "html_description": "Date the transaction was created in Unix time | ",
+ "rst_description": "Date the transaction was created in Unix time\n",
+ "name": "date",
+ "required": true
+ },
+ {
+ "type": "TransactionPartner",
+ "description": "Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions",
+ "html_description": "Optional. Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions | ",
+ "rst_description": "*Optional*. Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions\n",
+ "name": "source",
+ "required": false
+ },
+ {
+ "type": "TransactionPartner",
+ "description": "Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions",
+ "html_description": "Optional. Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions | ",
+ "rst_description": "*Optional*. Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions\n",
+ "name": "receiver",
+ "required": false
+ }
+ ],
+ "category": "types"
+ },
+ {
+ "anchor": "startransactions",
+ "name": "StarTransactions",
+ "description": "Contains a list of Telegram Star transactions.",
+ "html_description": "Contains a list of Telegram Star transactions.
",
+ "rst_description": "Contains a list of Telegram Star transactions.",
+ "annotations": [
+ {
+ "type": "Array of StarTransaction",
+ "description": "The list of transactions",
+ "html_description": "The list of transactions | ",
+ "rst_description": "The list of transactions\n",
+ "name": "transactions",
+ "required": true
+ }
+ ],
+ "category": "types"
}
],
"description": "Your bot can accept payments from Telegram users. Please see the introduction to payments for more details on the process and how to set up payments for your bot."
@@ -16634,6 +18158,14 @@
"rst_description": "Protects the contents of the sent message from forwarding and saving\n",
"name": "protect_content"
},
+ {
+ "type": "Boolean",
+ "required": false,
+ "description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance",
+ "html_description": "Pass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance | ",
+ "rst_description": "Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance\n",
+ "name": "allow_paid_broadcast"
+ },
{
"type": "String",
"required": false,
@@ -16871,7 +18403,7 @@
"category": "types"
}
],
- "description": "Your bot can offer users HTML5 games to play solo or to compete against each other in groups and one-on-one chats. Create games via @BotFather using the /newgame command. Please note that this kind of power requires responsibility: you will need to accept the terms for each game that your bots will be offering.\n - Games are a new type of content on Telegram, represented by the Game and InlineQueryResultGame objects.\n - Once you've created a game via BotFather, you can send games to chats as regular messages using the sendGame method, or use inline mode with InlineQueryResultGame.\n - If you send the game message without any buttons, it will automatically have a 'Play GameName' button. When this button is pressed, your bot gets a CallbackQuery with the game_short_name of the requested game. You provide the correct URL for this particular user and the app opens the game in the in-app browser.\n - You can manually add multiple buttons to your game message. Please note that the first button in the first row must always launch the game, using the field callback_game in InlineKeyboardButton. You can add extra buttons according to taste: e.g., for a description of the rules, or to open the game's official community.\n - To make your game more attractive, you can upload a GIF animation that demostrates the game to the users via BotFather (see Lumberjack for example).\n - A game message will also display high scores for the current chat. Use setGameScore to post high scores to the chat with the game, add the edit_message parameter to automatically update the message with the current scoreboard.\n - Use getGameHighScores to get data for in-game high score tables.\n - You can also add an extra sharing button for users to share their best score to different chats.\n - For examples of what can be done using this new stuff, check the @gamebot and @gamee bots."
+ "description": "Your bot can offer users HTML5 games to play solo or to compete against each other in groups and one-on-one chats. Create games via @BotFather using the /newgame command. Please note that this kind of power requires responsibility: you will need to accept the terms for each game that your bots will be offering.\n - Games are a new type of content on Telegram, represented by the Game and InlineQueryResultGame objects.\n - Once you've created a game via BotFather, you can send games to chats as regular messages using the sendGame method, or use inline mode with InlineQueryResultGame.\n - If you send the game message without any buttons, it will automatically have a 'Play GameName' button. When this button is pressed, your bot gets a CallbackQuery with the game_short_name of the requested game. You provide the correct URL for this particular user and the app opens the game in the in-app browser.\n - You can manually add multiple buttons to your game message. Please note that the first button in the first row must always launch the game, using the field callback_game in InlineKeyboardButton. You can add extra buttons according to taste: e.g., for a description of the rules, or to open the game's official community.\n - To make your game more attractive, you can upload a GIF animation that demonstrates the game to the users via BotFather (see Lumberjack for example).\n - A game message will also display high scores for the current chat. Use setGameScore to post high scores to the chat with the game, add the disable_edit_message parameter to disable automatic update of the message with the current scoreboard.\n - Use getGameHighScores to get data for in-game high score tables.\n - You can also add an extra sharing button for users to share their best score to different chats.\n - For examples of what can be done using this new stuff, check the @gamebot and @gamee bots."
}
]
}
diff --git a/.butcher/types/Animation/entity.json b/.butcher/types/Animation/entity.json
index 751e38c3..5df8ae24 100644
--- a/.butcher/types/Animation/entity.json
+++ b/.butcher/types/Animation/entity.json
@@ -29,49 +29,49 @@
},
{
"type": "Integer",
- "description": "Video width as defined by sender",
- "html_description": "Video width as defined by sender | ",
- "rst_description": "Video width as defined by sender\n",
+ "description": "Video width as defined by the sender",
+ "html_description": "Video width as defined by the sender | ",
+ "rst_description": "Video width as defined by the sender\n",
"name": "width",
"required": true
},
{
"type": "Integer",
- "description": "Video height as defined by sender",
- "html_description": "Video height as defined by sender | ",
- "rst_description": "Video height as defined by sender\n",
+ "description": "Video height as defined by the sender",
+ "html_description": "Video height as defined by the sender | ",
+ "rst_description": "Video height as defined by the sender\n",
"name": "height",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "PhotoSize",
- "description": "Animation thumbnail as defined by sender",
- "html_description": "Optional. Animation thumbnail as defined by sender | ",
- "rst_description": "*Optional*. Animation thumbnail as defined by sender\n",
+ "description": "Animation thumbnail as defined by the sender",
+ "html_description": "Optional. Animation thumbnail as defined by the sender | ",
+ "rst_description": "*Optional*. Animation thumbnail as defined by the sender\n",
"name": "thumbnail",
"required": false
},
{
"type": "String",
- "description": "Original animation filename as defined by sender",
- "html_description": "Optional. Original animation filename as defined by sender | ",
- "rst_description": "*Optional*. Original animation filename as defined by sender\n",
+ "description": "Original animation filename as defined by the sender",
+ "html_description": "Optional. Original animation filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original animation filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
diff --git a/.butcher/types/Audio/entity.json b/.butcher/types/Audio/entity.json
index e0b22adf..dc014e0d 100644
--- a/.butcher/types/Audio/entity.json
+++ b/.butcher/types/Audio/entity.json
@@ -29,41 +29,41 @@
},
{
"type": "Integer",
- "description": "Duration of the audio in seconds as defined by sender",
- "html_description": "Duration of the audio in seconds as defined by sender | ",
- "rst_description": "Duration of the audio in seconds as defined by sender\n",
+ "description": "Duration of the audio in seconds as defined by the sender",
+ "html_description": "Duration of the audio in seconds as defined by the sender | ",
+ "rst_description": "Duration of the audio in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "String",
- "description": "Performer of the audio as defined by sender or by audio tags",
- "html_description": "Optional. Performer of the audio as defined by sender or by audio tags | ",
- "rst_description": "*Optional*. Performer of the audio as defined by sender or by audio tags\n",
+ "description": "Performer of the audio as defined by the sender or by audio tags",
+ "html_description": "Optional. Performer of the audio as defined by the sender or by audio tags | ",
+ "rst_description": "*Optional*. Performer of the audio as defined by the sender or by audio tags\n",
"name": "performer",
"required": false
},
{
"type": "String",
- "description": "Title of the audio as defined by sender or by audio tags",
- "html_description": "Optional. Title of the audio as defined by sender or by audio tags | ",
- "rst_description": "*Optional*. Title of the audio as defined by sender or by audio tags\n",
+ "description": "Title of the audio as defined by the sender or by audio tags",
+ "html_description": "Optional. Title of the audio as defined by the sender or by audio tags | ",
+ "rst_description": "*Optional*. Title of the audio as defined by the sender or by audio tags\n",
"name": "title",
"required": false
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
diff --git a/.butcher/types/ChatBoostSourceGiveaway/entity.json b/.butcher/types/ChatBoostSourceGiveaway/entity.json
index f01133f3..a530eaf0 100644
--- a/.butcher/types/ChatBoostSourceGiveaway/entity.json
+++ b/.butcher/types/ChatBoostSourceGiveaway/entity.json
@@ -7,9 +7,9 @@
"object": {
"anchor": "chatboostsourcegiveaway",
"name": "ChatBoostSourceGiveaway",
- "description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.",
- "html_description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.
",
- "rst_description": "The boost was obtained by the creation of a Telegram Premium giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription.",
+ "description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and prize_star_count / 500 times for one year for Telegram Star giveaways.",
+ "html_description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and prize_star_count / 500 times for one year for Telegram Star giveaways.
",
+ "rst_description": "The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and *prize_star_count* / 500 times for one year for Telegram Star giveaways.",
"annotations": [
{
"type": "String",
@@ -29,12 +29,20 @@
},
{
"type": "User",
- "description": "User that won the prize in the giveaway if any",
- "html_description": "Optional. User that won the prize in the giveaway if any | ",
- "rst_description": "*Optional*. User that won the prize in the giveaway if any\n",
+ "description": "User that won the prize in the giveaway if any; for Telegram Premium giveaways only",
+ "html_description": "Optional. User that won the prize in the giveaway if any; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. User that won the prize in the giveaway if any; for Telegram Premium giveaways only\n",
"name": "user",
"required": false
},
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
{
"type": "True",
"description": "True, if the giveaway was completed, but there was no user to win the prize",
diff --git a/.butcher/types/ChatFullInfo/entity.json b/.butcher/types/ChatFullInfo/entity.json
index 1b3045e3..0d7dac49 100644
--- a/.butcher/types/ChatFullInfo/entity.json
+++ b/.butcher/types/ChatFullInfo/entity.json
@@ -259,6 +259,14 @@
"name": "permissions",
"required": false
},
+ {
+ "type": "True",
+ "description": "True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats.",
+ "html_description": "Optional. True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats. | ",
+ "rst_description": "*Optional*. :code:`True`, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats.\n",
+ "name": "can_send_paid_media",
+ "required": false
+ },
{
"type": "Integer",
"description": "For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds",
diff --git a/.butcher/types/ChatInviteLink/entity.json b/.butcher/types/ChatInviteLink/entity.json
index d2441682..c656d1a7 100644
--- a/.butcher/types/ChatInviteLink/entity.json
+++ b/.butcher/types/ChatInviteLink/entity.json
@@ -82,6 +82,22 @@
"rst_description": "*Optional*. Number of pending join requests created using this link\n",
"name": "pending_join_request_count",
"required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of seconds the subscription will be active for before the next payment",
+ "html_description": "Optional. The number of seconds the subscription will be active for before the next payment | ",
+ "rst_description": "*Optional*. The number of seconds the subscription will be active for before the next payment\n",
+ "name": "subscription_period",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link",
+ "html_description": "Optional. The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link | ",
+ "rst_description": "*Optional*. The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link\n",
+ "name": "subscription_price",
+ "required": false
}
],
"category": "types"
diff --git a/.butcher/types/ChatMemberMember/entity.json b/.butcher/types/ChatMemberMember/entity.json
index 90d6016a..c9988ee7 100644
--- a/.butcher/types/ChatMemberMember/entity.json
+++ b/.butcher/types/ChatMemberMember/entity.json
@@ -26,6 +26,14 @@
"rst_description": "Information about the user\n",
"name": "user",
"required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date when the user's subscription will expire; Unix time",
+ "html_description": "Optional. Date when the user's subscription will expire; Unix time | ",
+ "rst_description": "*Optional*. Date when the user's subscription will expire; Unix time\n",
+ "name": "until_date",
+ "required": false
}
],
"category": "types"
diff --git a/.butcher/types/ChatMemberMember/replace.yml b/.butcher/types/ChatMemberMember/replace.yml
new file mode 100644
index 00000000..e264e991
--- /dev/null
+++ b/.butcher/types/ChatMemberMember/replace.yml
@@ -0,0 +1,5 @@
+annotations:
+ until_date:
+ parsed_type:
+ type: std
+ name: DateTime
diff --git a/.butcher/types/CopyTextButton/entity.json b/.butcher/types/CopyTextButton/entity.json
new file mode 100644
index 00000000..cafe2a36
--- /dev/null
+++ b/.butcher/types/CopyTextButton/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "copytextbutton",
+ "name": "CopyTextButton",
+ "description": "This object represents an inline keyboard button that copies specified text to the clipboard.",
+ "html_description": "This object represents an inline keyboard button that copies specified text to the clipboard.
",
+ "rst_description": "This object represents an inline keyboard button that copies specified text to the clipboard.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "The text to be copied to the clipboard; 1-256 characters",
+ "html_description": "The text to be copied to the clipboard; 1-256 characters | ",
+ "rst_description": "The text to be copied to the clipboard; 1-256 characters\n",
+ "name": "text",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/Document/entity.json b/.butcher/types/Document/entity.json
index c583215d..c032fe5a 100644
--- a/.butcher/types/Document/entity.json
+++ b/.butcher/types/Document/entity.json
@@ -29,25 +29,25 @@
},
{
"type": "PhotoSize",
- "description": "Document thumbnail as defined by sender",
- "html_description": "Optional. Document thumbnail as defined by sender | ",
- "rst_description": "*Optional*. Document thumbnail as defined by sender\n",
+ "description": "Document thumbnail as defined by the sender",
+ "html_description": "Optional. Document thumbnail as defined by the sender | ",
+ "rst_description": "*Optional*. Document thumbnail as defined by the sender\n",
"name": "thumbnail",
"required": false
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
diff --git a/.butcher/types/ExternalReplyInfo/default.yml b/.butcher/types/ExternalReplyInfo/default.yml
new file mode 100644
index 00000000..becd35ac
--- /dev/null
+++ b/.butcher/types/ExternalReplyInfo/default.yml
@@ -0,0 +1,2 @@
+disable_web_page_preview: link_preview_is_disabled
+parse_mode: parse_mode
diff --git a/.butcher/types/ExternalReplyInfo/entity.json b/.butcher/types/ExternalReplyInfo/entity.json
index 975e126c..312693a3 100644
--- a/.butcher/types/ExternalReplyInfo/entity.json
+++ b/.butcher/types/ExternalReplyInfo/entity.json
@@ -67,6 +67,14 @@
"name": "document",
"required": false
},
+ {
+ "type": "PaidMediaInfo",
+ "description": "Message contains paid media; information about the paid media",
+ "html_description": "Optional. Message contains paid media; information about the paid media | ",
+ "rst_description": "*Optional*. Message contains paid media; information about the paid media\n",
+ "name": "paid_media",
+ "required": false
+ },
{
"type": "Array of PhotoSize",
"description": "Message is a photo, available sizes of the photo",
diff --git a/.butcher/types/Gift/entity.json b/.butcher/types/Gift/entity.json
new file mode 100644
index 00000000..ce7728d6
--- /dev/null
+++ b/.butcher/types/Gift/entity.json
@@ -0,0 +1,57 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Stickers",
+ "anchor": "stickers"
+ },
+ "object": {
+ "anchor": "gift",
+ "name": "Gift",
+ "description": "This object represents a gift that can be sent by the bot.",
+ "html_description": "This object represents a gift that can be sent by the bot.
",
+ "rst_description": "This object represents a gift that can be sent by the bot.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the gift",
+ "html_description": "Unique identifier of the gift | ",
+ "rst_description": "Unique identifier of the gift\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Sticker",
+ "description": "The sticker that represents the gift",
+ "html_description": "The sticker that represents the gift | ",
+ "rst_description": "The sticker that represents the gift\n",
+ "name": "sticker",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars that must be paid to send the sticker",
+ "html_description": "The number of Telegram Stars that must be paid to send the sticker | ",
+ "rst_description": "The number of Telegram Stars that must be paid to send the sticker\n",
+ "name": "star_count",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The total number of the gifts of this type that can be sent; for limited gifts only",
+ "html_description": "Optional. The total number of the gifts of this type that can be sent; for limited gifts only | ",
+ "rst_description": "*Optional*. The total number of the gifts of this type that can be sent; for limited gifts only\n",
+ "name": "total_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of remaining gifts of this type that can be sent; for limited gifts only",
+ "html_description": "Optional. The number of remaining gifts of this type that can be sent; for limited gifts only | ",
+ "rst_description": "*Optional*. The number of remaining gifts of this type that can be sent; for limited gifts only\n",
+ "name": "remaining_count",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/Gifts/entity.json b/.butcher/types/Gifts/entity.json
new file mode 100644
index 00000000..d8546b7c
--- /dev/null
+++ b/.butcher/types/Gifts/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Stickers",
+ "anchor": "stickers"
+ },
+ "object": {
+ "anchor": "gifts",
+ "name": "Gifts",
+ "description": "This object represent a list of gifts.",
+ "html_description": "This object represent a list of gifts.
",
+ "rst_description": "This object represent a list of gifts.",
+ "annotations": [
+ {
+ "type": "Array of Gift",
+ "description": "The list of gifts",
+ "html_description": "The list of gifts | ",
+ "rst_description": "The list of gifts\n",
+ "name": "gifts",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/Giveaway/entity.json b/.butcher/types/Giveaway/entity.json
index 53178a8c..ad326982 100644
--- a/.butcher/types/Giveaway/entity.json
+++ b/.butcher/types/Giveaway/entity.json
@@ -69,9 +69,17 @@
},
{
"type": "Integer",
- "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for",
- "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for | ",
- "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for\n",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only",
+ "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only\n",
"name": "premium_subscription_month_count",
"required": false
}
diff --git a/.butcher/types/GiveawayCompleted/entity.json b/.butcher/types/GiveawayCompleted/entity.json
index 169d3446..e1ecec54 100644
--- a/.butcher/types/GiveawayCompleted/entity.json
+++ b/.butcher/types/GiveawayCompleted/entity.json
@@ -34,6 +34,14 @@
"rst_description": "*Optional*. Message with the giveaway that was completed, if it wasn't deleted\n",
"name": "giveaway_message",
"required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway.",
+ "html_description": "Optional. True, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway. | ",
+ "rst_description": "*Optional*. :code:`True`, if the giveaway is a Telegram Star giveaway. Otherwise, currently, the giveaway is a Telegram Premium giveaway.\n",
+ "name": "is_star_giveaway",
+ "required": false
}
],
"category": "types"
diff --git a/.butcher/types/GiveawayCreated/entity.json b/.butcher/types/GiveawayCreated/entity.json
index 38e68bf3..1cf7ca10 100644
--- a/.butcher/types/GiveawayCreated/entity.json
+++ b/.butcher/types/GiveawayCreated/entity.json
@@ -7,10 +7,19 @@
"object": {
"anchor": "giveawaycreated",
"name": "GiveawayCreated",
- "description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.",
- "html_description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.
",
- "rst_description": "This object represents a service message about the creation of a scheduled giveaway. Currently holds no information.",
- "annotations": [],
+ "description": "This object represents a service message about the creation of a scheduled giveaway.",
+ "html_description": "This object represents a service message about the creation of a scheduled giveaway.
",
+ "rst_description": "This object represents a service message about the creation of a scheduled giveaway.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ }
+ ],
"category": "types"
}
}
diff --git a/.butcher/types/GiveawayWinners/entity.json b/.butcher/types/GiveawayWinners/entity.json
index 76628b90..6843f7a7 100644
--- a/.butcher/types/GiveawayWinners/entity.json
+++ b/.butcher/types/GiveawayWinners/entity.json
@@ -61,9 +61,17 @@
},
{
"type": "Integer",
- "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for",
- "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for | ",
- "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for\n",
+ "description": "The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only",
+ "html_description": "Optional. The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only | ",
+ "rst_description": "*Optional*. The number of Telegram Stars that were split between giveaway winners; for Telegram Star giveaways only\n",
+ "name": "prize_star_count",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only",
+ "html_description": "Optional. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only | ",
+ "rst_description": "*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for; for Telegram Premium giveaways only\n",
"name": "premium_subscription_month_count",
"required": false
},
diff --git a/.butcher/types/InaccessibleMessage/aliases.yml b/.butcher/types/InaccessibleMessage/aliases.yml
new file mode 100644
index 00000000..225e4f7c
--- /dev/null
+++ b/.butcher/types/InaccessibleMessage/aliases.yml
@@ -0,0 +1,202 @@
+answer:
+ method: sendMessage
+ code: &assert-chat |
+ assert self.chat is not None, "This method can be used only if chat is present in the message."
+ fill: &fill-answer
+ chat_id: self.chat.id
+
+reply:
+ method: sendMessage
+ code: *assert-chat
+ fill: &fill-reply
+ <<: *fill-answer
+ reply_parameters: self.as_reply_parameters()
+ ignore: &ignore-reply
+ - reply_to_message_id
+
+answer_animation:
+ method: sendAnimation
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_animation:
+ method: sendAnimation
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_audio:
+ method: sendAudio
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_audio:
+ method: sendAudio
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_contact:
+ method: sendContact
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_contact:
+ method: sendContact
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_document:
+ method: sendDocument
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_document:
+ method: sendDocument
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_game:
+ method: sendGame
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_game:
+ method: sendGame
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_invoice:
+ method: sendInvoice
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_invoice:
+ method: sendInvoice
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_location:
+ method: sendLocation
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_location:
+ method: sendLocation
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_media_group:
+ method: sendMediaGroup
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_media_group:
+ method: sendMediaGroup
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_photo:
+ method: sendPhoto
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_photo:
+ method: sendPhoto
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_poll:
+ method: sendPoll
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_poll:
+ method: sendPoll
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_dice:
+ method: sendDice
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_dice:
+ method: sendDice
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_sticker:
+ method: sendSticker
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_sticker:
+ method: sendSticker
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_venue:
+ method: sendVenue
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_venue:
+ method: sendVenue
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_video:
+ method: sendVideo
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_video:
+ method: sendVideo
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_video_note:
+ method: sendVideoNote
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_video_note:
+ method: sendVideoNote
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_voice:
+ method: sendVoice
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_voice:
+ method: sendVoice
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_paid_media:
+ method: sendPaidMedia
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_paid_media:
+ method: sendPaidMedia
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
diff --git a/.butcher/types/InlineKeyboardButton/entity.json b/.butcher/types/InlineKeyboardButton/entity.json
index 7b502151..036fc7de 100644
--- a/.butcher/types/InlineKeyboardButton/entity.json
+++ b/.butcher/types/InlineKeyboardButton/entity.json
@@ -29,9 +29,9 @@
},
{
"type": "String",
- "description": "Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account.",
- "html_description": "Optional. Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account. | ",
- "rst_description": "*Optional*. Data to be sent in a `callback query `_ to the bot when button is pressed, 1-64 bytes. Not supported for messages sent on behalf of a Telegram Business account.\n",
+ "description": "Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytes",
+ "html_description": "Optional. Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytes | ",
+ "rst_description": "*Optional*. Data to be sent in a `callback query `_ to the bot when the button is pressed, 1-64 bytes\n",
"name": "callback_data",
"required": false
},
@@ -75,6 +75,14 @@
"name": "switch_inline_query_chosen_chat",
"required": false
},
+ {
+ "type": "CopyTextButton",
+ "description": "Description of the button that copies the specified text to the clipboard.",
+ "html_description": "Optional. Description of the button that copies the specified text to the clipboard. | ",
+ "rst_description": "*Optional*. Description of the button that copies the specified text to the clipboard.\n",
+ "name": "copy_text",
+ "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.",
diff --git a/.butcher/types/InputInvoiceMessageContent/entity.json b/.butcher/types/InputInvoiceMessageContent/entity.json
index bed9e656..76d2f39b 100644
--- a/.butcher/types/InputInvoiceMessageContent/entity.json
+++ b/.butcher/types/InputInvoiceMessageContent/entity.json
@@ -29,9 +29,9 @@
},
{
"type": "String",
- "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.",
- "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | ",
- "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.\n",
+ "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.",
+ "html_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes. | ",
+ "rst_description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.\n",
"name": "payload",
"required": true
},
diff --git a/.butcher/types/InputPaidMedia/entity.json b/.butcher/types/InputPaidMedia/entity.json
new file mode 100644
index 00000000..5fe4d0a4
--- /dev/null
+++ b/.butcher/types/InputPaidMedia/entity.json
@@ -0,0 +1,16 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "inputpaidmedia",
+ "name": "InputPaidMedia",
+ "description": "This object describes the paid media to be sent. Currently, it can be one of\n - InputPaidMediaPhoto\n - InputPaidMediaVideo",
+ "html_description": "This object describes the paid media to be sent. Currently, it can be one of
",
+ "rst_description": "This object describes the paid media to be sent. Currently, it can be one of\n\n - :class:`aiogram.types.input_paid_media_photo.InputPaidMediaPhoto`\n - :class:`aiogram.types.input_paid_media_video.InputPaidMediaVideo`",
+ "annotations": [],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/InputPaidMedia/subtypes.yml b/.butcher/types/InputPaidMedia/subtypes.yml
new file mode 100644
index 00000000..6756ad51
--- /dev/null
+++ b/.butcher/types/InputPaidMedia/subtypes.yml
@@ -0,0 +1 @@
+discriminator: "type"
diff --git a/.butcher/types/InputPaidMediaPhoto/entity.json b/.butcher/types/InputPaidMediaPhoto/entity.json
new file mode 100644
index 00000000..adb049da
--- /dev/null
+++ b/.butcher/types/InputPaidMediaPhoto/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "inputpaidmediaphoto",
+ "name": "InputPaidMediaPhoto",
+ "description": "The paid media to send is a photo.",
+ "html_description": "The paid media to send is a photo.
",
+ "rst_description": "The paid media to send is a photo.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the media, must be photo",
+ "html_description": "Type of the media, must be photo | ",
+ "rst_description": "Type of the media, must be *photo*\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. More information on Sending Files",
+ "html_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files » | ",
+ "rst_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. :ref:`More information on Sending Files » `\n",
+ "name": "media",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/InputPaidMediaPhoto/replace.yml b/.butcher/types/InputPaidMediaPhoto/replace.yml
new file mode 100644
index 00000000..17ac606b
--- /dev/null
+++ b/.butcher/types/InputPaidMediaPhoto/replace.yml
@@ -0,0 +1,11 @@
+annotations:
+ media:
+ parsed_type:
+ type: union
+ items:
+ - type: std
+ name: str
+ - type: entity
+ references:
+ category: types
+ name: InputFile
diff --git a/.butcher/types/InputPaidMediaVideo/entity.json b/.butcher/types/InputPaidMediaVideo/entity.json
new file mode 100644
index 00000000..a04bf3df
--- /dev/null
+++ b/.butcher/types/InputPaidMediaVideo/entity.json
@@ -0,0 +1,73 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "inputpaidmediavideo",
+ "name": "InputPaidMediaVideo",
+ "description": "The paid media to send is a video.",
+ "html_description": "The paid media to send is a video.
",
+ "rst_description": "The paid media to send is a video.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the media, must be video",
+ "html_description": "Type of the media, must be video | ",
+ "rst_description": "Type of the media, must be *video*\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. More information on Sending Files",
+ "html_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files » | ",
+ "rst_description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://' to upload a new one using multipart/form-data under name. :ref:`More information on Sending Files » `\n",
+ "name": "media",
+ "required": true
+ },
+ {
+ "type": "InputFile or String",
+ "description": "Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://' if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files",
+ "html_description": "Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files » | ",
+ "rst_description": "*Optional*. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://' if the thumbnail was uploaded using multipart/form-data under . :ref:`More information on Sending Files » `\n",
+ "name": "thumbnail",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video width",
+ "html_description": "Optional. Video width | ",
+ "rst_description": "*Optional*. Video width\n",
+ "name": "width",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video height",
+ "html_description": "Optional. Video height | ",
+ "rst_description": "*Optional*. Video height\n",
+ "name": "height",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Video duration in seconds",
+ "html_description": "Optional. Video duration in seconds | ",
+ "rst_description": "*Optional*. Video duration in seconds\n",
+ "name": "duration",
+ "required": false
+ },
+ {
+ "type": "Boolean",
+ "description": "Pass True if the uploaded video is suitable for streaming",
+ "html_description": "Optional. Pass True if the uploaded video is suitable for streaming | ",
+ "rst_description": "*Optional*. Pass :code:`True` if the uploaded video is suitable for streaming\n",
+ "name": "supports_streaming",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/InputPaidMediaVideo/replace.yml b/.butcher/types/InputPaidMediaVideo/replace.yml
new file mode 100644
index 00000000..17ac606b
--- /dev/null
+++ b/.butcher/types/InputPaidMediaVideo/replace.yml
@@ -0,0 +1,11 @@
+annotations:
+ media:
+ parsed_type:
+ type: union
+ items:
+ - type: std
+ name: str
+ - type: entity
+ references:
+ category: types
+ name: InputFile
diff --git a/.butcher/types/InputPollOption/entity.json b/.butcher/types/InputPollOption/entity.json
index 7c0034a5..f1720718 100644
--- a/.butcher/types/InputPollOption/entity.json
+++ b/.butcher/types/InputPollOption/entity.json
@@ -7,9 +7,9 @@
"object": {
"anchor": "inputpolloption",
"name": "InputPollOption",
- "description": "This object contains information about one answer option in a poll to send.",
- "html_description": "This object contains information about one answer option in a poll to send.
",
- "rst_description": "This object contains information about one answer option in a poll to send.",
+ "description": "This object contains information about one answer option in a poll to be sent.",
+ "html_description": "This object contains information about one answer option in a poll to be sent.
",
+ "rst_description": "This object contains information about one answer option in a poll to be sent.",
"annotations": [
{
"type": "String",
diff --git a/.butcher/types/InputTextMessageContent/default.yml b/.butcher/types/InputTextMessageContent/default.yml
index d973b1cd..5ca2d0cb 100644
--- a/.butcher/types/InputTextMessageContent/default.yml
+++ b/.butcher/types/InputTextMessageContent/default.yml
@@ -1,2 +1,2 @@
-disable_web_page_preview: disable_web_page_preview
+link_preview_options: link_preview
parse_mode: parse_mode
diff --git a/.butcher/types/Location/entity.json b/.butcher/types/Location/entity.json
index a62b44aa..32aa2bc2 100644
--- a/.butcher/types/Location/entity.json
+++ b/.butcher/types/Location/entity.json
@@ -13,17 +13,17 @@
"annotations": [
{
"type": "Float",
- "description": "Latitude as defined by sender",
- "html_description": "Latitude as defined by sender | ",
- "rst_description": "Latitude as defined by sender\n",
+ "description": "Latitude as defined by the sender",
+ "html_description": "Latitude as defined by the sender | ",
+ "rst_description": "Latitude as defined by the sender\n",
"name": "latitude",
"required": true
},
{
"type": "Float",
- "description": "Longitude as defined by sender",
- "html_description": "Longitude as defined by sender | ",
- "rst_description": "Longitude as defined by sender\n",
+ "description": "Longitude as defined by the sender",
+ "html_description": "Longitude as defined by the sender | ",
+ "rst_description": "Longitude as defined by the sender\n",
"name": "longitude",
"required": true
},
diff --git a/.butcher/types/MenuButtonWebApp/entity.json b/.butcher/types/MenuButtonWebApp/entity.json
index 6f763e9e..ff0a26ff 100644
--- a/.butcher/types/MenuButtonWebApp/entity.json
+++ b/.butcher/types/MenuButtonWebApp/entity.json
@@ -29,9 +29,9 @@
},
{
"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 send an arbitrary message on behalf of the user using the method answerWebAppQuery.",
- "html_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. | ",
- "rst_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method :class:`aiogram.methods.answer_web_app_query.AnswerWebAppQuery`.\n",
+ "description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Alternatively, a t.me link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link.",
+ "html_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Alternatively, a t.me link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link. | ",
+ "rst_description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method :class:`aiogram.methods.answer_web_app_query.AnswerWebAppQuery`. Alternatively, a :code:`t.me` link to a Web App of the bot can be specified in the object instead of the Web App's URL, in which case the Web App will be opened as if the user pressed the link.\n",
"name": "web_app",
"required": true
}
diff --git a/.butcher/types/Message/aliases.yml b/.butcher/types/Message/aliases.yml
index 3168f30d..b49f4ee0 100644
--- a/.butcher/types/Message/aliases.yml
+++ b/.butcher/types/Message/aliases.yml
@@ -12,7 +12,9 @@ reply:
code: *assert-chat
fill: &fill-reply
<<: *fill-answer
- reply_to_message_id: self.message_id
+ reply_parameters: self.as_reply_parameters()
+ ignore: &ignore-reply
+ - reply_to_message_id
answer_animation:
method: sendAnimation
@@ -23,6 +25,7 @@ reply_animation:
method: sendAnimation
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_audio:
method: sendAudio
@@ -33,6 +36,7 @@ reply_audio:
method: sendAudio
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_contact:
method: sendContact
@@ -43,6 +47,7 @@ reply_contact:
method: sendContact
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_document:
method: sendDocument
@@ -53,6 +58,7 @@ reply_document:
method: sendDocument
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_game:
method: sendGame
@@ -63,6 +69,7 @@ reply_game:
method: sendGame
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_invoice:
method: sendInvoice
@@ -73,6 +80,7 @@ reply_invoice:
method: sendInvoice
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_location:
method: sendLocation
@@ -83,6 +91,7 @@ reply_location:
method: sendLocation
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_media_group:
method: sendMediaGroup
@@ -93,6 +102,7 @@ reply_media_group:
method: sendMediaGroup
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_photo:
method: sendPhoto
@@ -103,6 +113,7 @@ reply_photo:
method: sendPhoto
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_poll:
method: sendPoll
@@ -113,6 +124,7 @@ reply_poll:
method: sendPoll
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_dice:
method: sendDice
@@ -123,6 +135,7 @@ reply_dice:
method: sendDice
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_sticker:
method: sendSticker
@@ -133,6 +146,7 @@ reply_sticker:
method: sendSticker
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_venue:
method: sendVenue
@@ -143,6 +157,7 @@ reply_venue:
method: sendVenue
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_video:
method: sendVideo
@@ -153,6 +168,7 @@ reply_video:
method: sendVideo
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_video_note:
method: sendVideoNote
@@ -163,6 +179,7 @@ reply_video_note:
method: sendVideoNote
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
answer_voice:
method: sendVoice
@@ -173,6 +190,18 @@ reply_voice:
method: sendVoice
code: *assert-chat
fill: *fill-reply
+ ignore: *ignore-reply
+
+answer_paid_media:
+ method: sendPaidMedia
+ code: *assert-chat
+ fill: *fill-answer
+
+reply_paid_media:
+ method: sendPaidMedia
+ code: *assert-chat
+ fill: *fill-reply
+ ignore: *ignore-reply
copy_to:
method: copyMessage
@@ -194,6 +223,7 @@ edit_text:
fill: &message-target
chat_id: self.chat.id
message_id: self.message_id
+ business_connection_id: self.business_connection_id
edit_media:
method: editMessageMedia
diff --git a/.butcher/types/Message/entity.json b/.butcher/types/Message/entity.json
index 229c9c7d..86667ca8 100644
--- a/.butcher/types/Message/entity.json
+++ b/.butcher/types/Message/entity.json
@@ -13,9 +13,9 @@
"annotations": [
{
"type": "Integer",
- "description": "Unique message identifier inside this chat",
- "html_description": "Unique message identifier inside this chat | ",
- "rst_description": "Unique message identifier inside this chat\n",
+ "description": "Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent",
+ "html_description": "Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent | ",
+ "rst_description": "Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent\n",
"name": "message_id",
"required": true
},
@@ -29,17 +29,17 @@
},
{
"type": "User",
- "description": "Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.",
- "html_description": "Optional. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat. | ",
- "rst_description": "*Optional*. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.\n",
+ "description": "Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats",
+ "html_description": "Optional. Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats | ",
+ "rst_description": "*Optional*. Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats\n",
"name": "from",
"required": false
},
{
"type": "Chat",
- "description": "Sender of the message, sent on behalf of a chat. For example, the channel itself for channel posts, the supergroup itself for messages from anonymous group administrators, the linked channel for messages automatically forwarded to the discussion group. For backward compatibility, the field from contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.",
- "html_description": "Optional. Sender of the message, sent on behalf of a chat. For example, the channel itself for channel posts, the supergroup itself for messages from anonymous group administrators, the linked channel for messages automatically forwarded to the discussion group. For backward compatibility, the field from contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat. | ",
- "rst_description": "*Optional*. Sender of the message, sent on behalf of a chat. For example, the channel itself for channel posts, the supergroup itself for messages from anonymous group administrators, the linked channel for messages automatically forwarded to the discussion group. For backward compatibility, the field *from* contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.\n",
+ "description": "Sender of the message when sent on behalf of a chat. For example, the supergroup itself for messages sent by its anonymous administrators or a linked channel for messages automatically forwarded to the channel's discussion group. For backward compatibility, if the message was sent on behalf of a chat, the field from contains a fake sender user in non-channel chats.",
+ "html_description": "Optional. Sender of the message when sent on behalf of a chat. For example, the supergroup itself for messages sent by its anonymous administrators or a linked channel for messages automatically forwarded to the channel's discussion group. For backward compatibility, if the message was sent on behalf of a chat, the field from contains a fake sender user in non-channel chats. | ",
+ "rst_description": "*Optional*. Sender of the message when sent on behalf of a chat. For example, the supergroup itself for messages sent by its anonymous administrators or a linked channel for messages automatically forwarded to the channel's discussion group. For backward compatibility, if the message was sent on behalf of a chat, the field *from* contains a fake sender user in non-channel chats.\n",
"name": "sender_chat",
"required": false
},
@@ -243,6 +243,14 @@
"name": "document",
"required": false
},
+ {
+ "type": "PaidMediaInfo",
+ "description": "Message contains paid media; information about the paid media",
+ "html_description": "Optional. Message contains paid media; information about the paid media | ",
+ "rst_description": "*Optional*. Message contains paid media; information about the paid media\n",
+ "name": "paid_media",
+ "required": false
+ },
{
"type": "Array of PhotoSize",
"description": "Message is a photo, available sizes of the photo",
@@ -293,9 +301,9 @@
},
{
"type": "String",
- "description": "Caption for the animation, audio, document, photo, video or voice",
- "html_description": "Optional. Caption for the animation, audio, document, photo, video or voice | ",
- "rst_description": "*Optional*. Caption for the animation, audio, document, photo, video or voice\n",
+ "description": "Caption for the animation, audio, document, paid media, photo, video or voice",
+ "html_description": "Optional. Caption for the animation, audio, document, paid media, photo, video or voice | ",
+ "rst_description": "*Optional*. Caption for the animation, audio, document, paid media, photo, video or voice\n",
"name": "caption",
"required": false
},
@@ -483,6 +491,14 @@
"name": "successful_payment",
"required": false
},
+ {
+ "type": "RefundedPayment",
+ "description": "Message is a service message about a refunded payment, information about the payment.",
+ "html_description": "Optional. Message is a service message about a refunded payment, information about the payment. More about payments » | ",
+ "rst_description": "*Optional*. Message is a service message about a refunded payment, information about the payment. `More about payments » `_\n",
+ "name": "refunded_payment",
+ "required": false
+ },
{
"type": "UsersShared",
"description": "Service message: users were shared with the bot",
diff --git a/.butcher/types/MessageEntity/entity.json b/.butcher/types/MessageEntity/entity.json
index 1ffb569b..8d5a1d13 100644
--- a/.butcher/types/MessageEntity/entity.json
+++ b/.butcher/types/MessageEntity/entity.json
@@ -13,9 +13,9 @@
"annotations": [
{
"type": "String",
- "description": "Type of the entity. Currently, can be 'mention' (@username), 'hashtag' (#hashtag), 'cashtag' ($USD), 'bot_command' (/start@jobs_bot), 'url' (https://telegram.org), 'email' (do-not-reply@telegram.org), 'phone_number' (+1-212-555-0123), 'bold' (bold text), 'italic' (italic text), 'underline' (underlined text), 'strikethrough' (strikethrough text), 'spoiler' (spoiler message), 'blockquote' (block quotation), 'expandable_blockquote' (collapsed-by-default block quotation), 'code' (monowidth string), 'pre' (monowidth block), 'text_link' (for clickable text URLs), 'text_mention' (for users without usernames), 'custom_emoji' (for inline custom emoji stickers)",
- "html_description": "Type of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag), “cashtag” ($USD), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “blockquote” (block quotation), “expandable_blockquote” (collapsed-by-default block quotation), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers) | ",
- "rst_description": "Type of the entity. Currently, can be 'mention' (:code:`@username`), 'hashtag' (:code:`#hashtag`), 'cashtag' (:code:`$USD`), 'bot_command' (:code:`/start@jobs_bot`), 'url' (:code:`https://telegram.org`), 'email' (:code:`do-not-reply@telegram.org`), 'phone_number' (:code:`+1-212-555-0123`), 'bold' (**bold text**), 'italic' (*italic text*), 'underline' (underlined text), 'strikethrough' (strikethrough text), 'spoiler' (spoiler message), 'blockquote' (block quotation), 'expandable_blockquote' (collapsed-by-default block quotation), 'code' (monowidth string), 'pre' (monowidth block), 'text_link' (for clickable text URLs), 'text_mention' (for users `without usernames `_), 'custom_emoji' (for inline custom emoji stickers)\n",
+ "description": "Type of the entity. Currently, can be 'mention' (@username), 'hashtag' (#hashtag or #hashtag@chatusername), 'cashtag' ($USD or $USD@chatusername), 'bot_command' (/start@jobs_bot), 'url' (https://telegram.org), 'email' (do-not-reply@telegram.org), 'phone_number' (+1-212-555-0123), 'bold' (bold text), 'italic' (italic text), 'underline' (underlined text), 'strikethrough' (strikethrough text), 'spoiler' (spoiler message), 'blockquote' (block quotation), 'expandable_blockquote' (collapsed-by-default block quotation), 'code' (monowidth string), 'pre' (monowidth block), 'text_link' (for clickable text URLs), 'text_mention' (for users without usernames), 'custom_emoji' (for inline custom emoji stickers)",
+ "html_description": "Type of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag or #hashtag@chatusername), “cashtag” ($USD or $USD@chatusername), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “blockquote” (block quotation), “expandable_blockquote” (collapsed-by-default block quotation), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers) | ",
+ "rst_description": "Type of the entity. Currently, can be 'mention' (:code:`@username`), 'hashtag' (:code:`#hashtag` or :code:`#hashtag@chatusername`), 'cashtag' (:code:`$USD` or :code:`$USD@chatusername`), 'bot_command' (:code:`/start@jobs_bot`), 'url' (:code:`https://telegram.org`), 'email' (:code:`do-not-reply@telegram.org`), 'phone_number' (:code:`+1-212-555-0123`), 'bold' (**bold text**), 'italic' (*italic text*), 'underline' (underlined text), 'strikethrough' (strikethrough text), 'spoiler' (spoiler message), 'blockquote' (block quotation), 'expandable_blockquote' (collapsed-by-default block quotation), 'code' (monowidth string), 'pre' (monowidth block), 'text_link' (for clickable text URLs), 'text_mention' (for users `without usernames `_), 'custom_emoji' (for inline custom emoji stickers)\n",
"name": "type",
"required": true
},
diff --git a/.butcher/types/MessageId/entity.json b/.butcher/types/MessageId/entity.json
index 69fce170..a886bf17 100644
--- a/.butcher/types/MessageId/entity.json
+++ b/.butcher/types/MessageId/entity.json
@@ -13,9 +13,9 @@
"annotations": [
{
"type": "Integer",
- "description": "Unique message identifier",
- "html_description": "Unique message identifier | ",
- "rst_description": "Unique message identifier\n",
+ "description": "Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent",
+ "html_description": "Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent | ",
+ "rst_description": "Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent\n",
"name": "message_id",
"required": true
}
diff --git a/.butcher/types/PaidMedia/entity.json b/.butcher/types/PaidMedia/entity.json
new file mode 100644
index 00000000..cce6bf8b
--- /dev/null
+++ b/.butcher/types/PaidMedia/entity.json
@@ -0,0 +1,16 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "paidmedia",
+ "name": "PaidMedia",
+ "description": "This object describes paid media. Currently, it can be one of\n - PaidMediaPreview\n - PaidMediaPhoto\n - PaidMediaVideo",
+ "html_description": "This object describes paid media. Currently, it can be one of
",
+ "rst_description": "This object describes paid media. Currently, it can be one of\n\n - :class:`aiogram.types.paid_media_preview.PaidMediaPreview`\n - :class:`aiogram.types.paid_media_photo.PaidMediaPhoto`\n - :class:`aiogram.types.paid_media_video.PaidMediaVideo`",
+ "annotations": [],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PaidMedia/subtypes.yml b/.butcher/types/PaidMedia/subtypes.yml
new file mode 100644
index 00000000..6756ad51
--- /dev/null
+++ b/.butcher/types/PaidMedia/subtypes.yml
@@ -0,0 +1 @@
+discriminator: "type"
diff --git a/.butcher/types/PaidMediaInfo/entity.json b/.butcher/types/PaidMediaInfo/entity.json
new file mode 100644
index 00000000..f4ed8526
--- /dev/null
+++ b/.butcher/types/PaidMediaInfo/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "paidmediainfo",
+ "name": "PaidMediaInfo",
+ "description": "Describes the paid media added to a message.",
+ "html_description": "Describes the paid media added to a message.
",
+ "rst_description": "Describes the paid media added to a message.",
+ "annotations": [
+ {
+ "type": "Integer",
+ "description": "The number of Telegram Stars that must be paid to buy access to the media",
+ "html_description": "The number of Telegram Stars that must be paid to buy access to the media | ",
+ "rst_description": "The number of Telegram Stars that must be paid to buy access to the media\n",
+ "name": "star_count",
+ "required": true
+ },
+ {
+ "type": "Array of PaidMedia",
+ "description": "Information about the paid media",
+ "html_description": "Information about the paid media | ",
+ "rst_description": "Information about the paid media\n",
+ "name": "paid_media",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PaidMediaPhoto/entity.json b/.butcher/types/PaidMediaPhoto/entity.json
new file mode 100644
index 00000000..a2a9ecab
--- /dev/null
+++ b/.butcher/types/PaidMediaPhoto/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "paidmediaphoto",
+ "name": "PaidMediaPhoto",
+ "description": "The paid media is a photo.",
+ "html_description": "The paid media is a photo.
",
+ "rst_description": "The paid media is a photo.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'photo'",
+ "html_description": "Type of the paid media, always “photo” | ",
+ "rst_description": "Type of the paid media, always 'photo'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Array of PhotoSize",
+ "description": "The photo",
+ "html_description": "The photo | ",
+ "rst_description": "The photo\n",
+ "name": "photo",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PaidMediaPreview/entity.json b/.butcher/types/PaidMediaPreview/entity.json
new file mode 100644
index 00000000..a54e137f
--- /dev/null
+++ b/.butcher/types/PaidMediaPreview/entity.json
@@ -0,0 +1,49 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "paidmediapreview",
+ "name": "PaidMediaPreview",
+ "description": "The paid media isn't available before the payment.",
+ "html_description": "The paid media isn't available before the payment.
",
+ "rst_description": "The paid media isn't available before the payment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'preview'",
+ "html_description": "Type of the paid media, always “preview” | ",
+ "rst_description": "Type of the paid media, always 'preview'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Media width as defined by the sender",
+ "html_description": "Optional. Media width as defined by the sender | ",
+ "rst_description": "*Optional*. Media width as defined by the sender\n",
+ "name": "width",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Media height as defined by the sender",
+ "html_description": "Optional. Media height as defined by the sender | ",
+ "rst_description": "*Optional*. Media height as defined by the sender\n",
+ "name": "height",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "Duration of the media in seconds as defined by the sender",
+ "html_description": "Optional. Duration of the media in seconds as defined by the sender | ",
+ "rst_description": "*Optional*. Duration of the media in seconds as defined by the sender\n",
+ "name": "duration",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PaidMediaPurchased/entity.json b/.butcher/types/PaidMediaPurchased/entity.json
new file mode 100644
index 00000000..0823946e
--- /dev/null
+++ b/.butcher/types/PaidMediaPurchased/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "paidmediapurchased",
+ "name": "PaidMediaPurchased",
+ "description": "This object contains information about a paid media purchase.",
+ "html_description": "This object contains information about a paid media purchase.
",
+ "rst_description": "This object contains information about a paid media purchase.",
+ "annotations": [
+ {
+ "type": "User",
+ "description": "User who purchased the media",
+ "html_description": "User who purchased the media | ",
+ "rst_description": "User who purchased the media\n",
+ "name": "from",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified paid media payload",
+ "html_description": "Bot-specified paid media payload | ",
+ "rst_description": "Bot-specified paid media payload\n",
+ "name": "paid_media_payload",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PaidMediaVideo/entity.json b/.butcher/types/PaidMediaVideo/entity.json
new file mode 100644
index 00000000..b4433d9d
--- /dev/null
+++ b/.butcher/types/PaidMediaVideo/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "paidmediavideo",
+ "name": "PaidMediaVideo",
+ "description": "The paid media is a video.",
+ "html_description": "The paid media is a video.
",
+ "rst_description": "The paid media is a video.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the paid media, always 'video'",
+ "html_description": "Type of the paid media, always “video” | ",
+ "rst_description": "Type of the paid media, always 'video'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Video",
+ "description": "The video",
+ "html_description": "The video | ",
+ "rst_description": "The video\n",
+ "name": "video",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PreCheckoutQuery/entity.json b/.butcher/types/PreCheckoutQuery/entity.json
index 9a8218e9..a524fc5f 100644
--- a/.butcher/types/PreCheckoutQuery/entity.json
+++ b/.butcher/types/PreCheckoutQuery/entity.json
@@ -45,9 +45,9 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
diff --git a/.butcher/types/PreparedInlineMessage/entity.json b/.butcher/types/PreparedInlineMessage/entity.json
new file mode 100644
index 00000000..39c0c493
--- /dev/null
+++ b/.butcher/types/PreparedInlineMessage/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Inline mode",
+ "anchor": "inline-mode"
+ },
+ "object": {
+ "anchor": "preparedinlinemessage",
+ "name": "PreparedInlineMessage",
+ "description": "Describes an inline message to be sent by a user of a Mini App.",
+ "html_description": "Describes an inline message to be sent by a user of a Mini App.
",
+ "rst_description": "Describes an inline message to be sent by a user of a Mini App.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the prepared message",
+ "html_description": "Unique identifier of the prepared message | ",
+ "rst_description": "Unique identifier of the prepared message\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used",
+ "html_description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used | ",
+ "rst_description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used\n",
+ "name": "expiration_date",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/PreparedInlineMessage/replace.yml b/.butcher/types/PreparedInlineMessage/replace.yml
new file mode 100644
index 00000000..3b8e5159
--- /dev/null
+++ b/.butcher/types/PreparedInlineMessage/replace.yml
@@ -0,0 +1,11 @@
+annotations:
+ expiration_date:
+ parsed_type:
+ type: union
+ items:
+ - type: std
+ name: datetime.datetime
+ - type: std
+ name: datetime.timedelta
+ - type: std
+ name: int
diff --git a/.butcher/types/ReactionType/entity.json b/.butcher/types/ReactionType/entity.json
index e37dcce3..8063b1a7 100644
--- a/.butcher/types/ReactionType/entity.json
+++ b/.butcher/types/ReactionType/entity.json
@@ -7,9 +7,9 @@
"object": {
"anchor": "reactiontype",
"name": "ReactionType",
- "description": "This object describes the type of a reaction. Currently, it can be one of\n - ReactionTypeEmoji\n - ReactionTypeCustomEmoji",
- "html_description": "This object describes the type of a reaction. Currently, it can be one of
",
- "rst_description": "This object describes the type of a reaction. Currently, it can be one of\n\n - :class:`aiogram.types.reaction_type_emoji.ReactionTypeEmoji`\n - :class:`aiogram.types.reaction_type_custom_emoji.ReactionTypeCustomEmoji`",
+ "description": "This object describes the type of a reaction. Currently, it can be one of\n - ReactionTypeEmoji\n - ReactionTypeCustomEmoji\n - ReactionTypePaid",
+ "html_description": "This object describes the type of a reaction. Currently, it can be one of
",
+ "rst_description": "This object describes the type of a reaction. Currently, it can be one of\n\n - :class:`aiogram.types.reaction_type_emoji.ReactionTypeEmoji`\n - :class:`aiogram.types.reaction_type_custom_emoji.ReactionTypeCustomEmoji`\n - :class:`aiogram.types.reaction_type_paid.ReactionTypePaid`",
"annotations": [],
"category": "types"
}
diff --git a/.butcher/types/ReactionTypePaid/entity.json b/.butcher/types/ReactionTypePaid/entity.json
new file mode 100644
index 00000000..9fb16cc7
--- /dev/null
+++ b/.butcher/types/ReactionTypePaid/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Available types",
+ "anchor": "available-types"
+ },
+ "object": {
+ "anchor": "reactiontypepaid",
+ "name": "ReactionTypePaid",
+ "description": "The reaction is paid.",
+ "html_description": "The reaction is paid.
",
+ "rst_description": "The reaction is paid.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the reaction, always 'paid'",
+ "html_description": "Type of the reaction, always “paid” | ",
+ "rst_description": "Type of the reaction, always 'paid'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RefundedPayment/entity.json b/.butcher/types/RefundedPayment/entity.json
new file mode 100644
index 00000000..b5b84104
--- /dev/null
+++ b/.butcher/types/RefundedPayment/entity.json
@@ -0,0 +1,57 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "refundedpayment",
+ "name": "RefundedPayment",
+ "description": "This object contains basic information about a refunded payment.",
+ "html_description": "This object contains basic information about a refunded payment.
",
+ "rst_description": "This object contains basic information about a refunded payment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Three-letter ISO 4217 currency code, or 'XTR' for payments in Telegram Stars. Currently, always 'XTR'",
+ "html_description": "Three-letter ISO 4217 currency code, or “XTR” for payments in Telegram Stars. Currently, always “XTR” | ",
+ "rst_description": "Three-letter ISO 4217 `currency `_ code, or 'XTR' for payments in `Telegram Stars `_. Currently, always 'XTR'\n",
+ "name": "currency",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Total refunded price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45, total_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).",
+ "html_description": "Total refunded price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45, total_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). | ",
+ "rst_description": "Total refunded price in the *smallest units* of the currency (integer, **not** float/double). For example, for a price of :code:`US$ 1.45`, :code:`total_amount = 145`. See the *exp* parameter in `currencies.json `_, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).\n",
+ "name": "total_amount",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
+ "name": "invoice_payload",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Telegram payment identifier",
+ "html_description": "Telegram payment identifier | ",
+ "rst_description": "Telegram payment identifier\n",
+ "name": "telegram_payment_charge_id",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Provider payment identifier",
+ "html_description": "Optional. Provider payment identifier | ",
+ "rst_description": "*Optional*. Provider payment identifier\n",
+ "name": "provider_payment_charge_id",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RevenueWithdrawalState/entity.json b/.butcher/types/RevenueWithdrawalState/entity.json
new file mode 100644
index 00000000..647f2684
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalState/entity.json
@@ -0,0 +1,16 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "revenuewithdrawalstate",
+ "name": "RevenueWithdrawalState",
+ "description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of\n - RevenueWithdrawalStatePending\n - RevenueWithdrawalStateSucceeded\n - RevenueWithdrawalStateFailed",
+ "html_description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of
",
+ "rst_description": "This object describes the state of a revenue withdrawal operation. Currently, it can be one of\n\n - :class:`aiogram.types.revenue_withdrawal_state_pending.RevenueWithdrawalStatePending`\n - :class:`aiogram.types.revenue_withdrawal_state_succeeded.RevenueWithdrawalStateSucceeded`\n - :class:`aiogram.types.revenue_withdrawal_state_failed.RevenueWithdrawalStateFailed`",
+ "annotations": [],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RevenueWithdrawalState/subtypes.yml b/.butcher/types/RevenueWithdrawalState/subtypes.yml
new file mode 100644
index 00000000..6756ad51
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalState/subtypes.yml
@@ -0,0 +1 @@
+discriminator: "type"
diff --git a/.butcher/types/RevenueWithdrawalStateFailed/entity.json b/.butcher/types/RevenueWithdrawalStateFailed/entity.json
new file mode 100644
index 00000000..bcf914e3
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalStateFailed/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "revenuewithdrawalstatefailed",
+ "name": "RevenueWithdrawalStateFailed",
+ "description": "The withdrawal failed and the transaction was refunded.",
+ "html_description": "The withdrawal failed and the transaction was refunded.
",
+ "rst_description": "The withdrawal failed and the transaction was refunded.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'failed'",
+ "html_description": "Type of the state, always “failed” | ",
+ "rst_description": "Type of the state, always 'failed'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RevenueWithdrawalStatePending/entity.json b/.butcher/types/RevenueWithdrawalStatePending/entity.json
new file mode 100644
index 00000000..99e8dc90
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalStatePending/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "revenuewithdrawalstatepending",
+ "name": "RevenueWithdrawalStatePending",
+ "description": "The withdrawal is in progress.",
+ "html_description": "The withdrawal is in progress.
",
+ "rst_description": "The withdrawal is in progress.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'pending'",
+ "html_description": "Type of the state, always “pending” | ",
+ "rst_description": "Type of the state, always 'pending'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RevenueWithdrawalStateSucceeded/entity.json b/.butcher/types/RevenueWithdrawalStateSucceeded/entity.json
new file mode 100644
index 00000000..2c6888d6
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalStateSucceeded/entity.json
@@ -0,0 +1,41 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "revenuewithdrawalstatesucceeded",
+ "name": "RevenueWithdrawalStateSucceeded",
+ "description": "The withdrawal succeeded.",
+ "html_description": "The withdrawal succeeded.
",
+ "rst_description": "The withdrawal succeeded.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the state, always 'succeeded'",
+ "html_description": "Type of the state, always “succeeded” | ",
+ "rst_description": "Type of the state, always 'succeeded'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date the withdrawal was completed in Unix time",
+ "html_description": "Date the withdrawal was completed in Unix time | ",
+ "rst_description": "Date the withdrawal was completed in Unix time\n",
+ "name": "date",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "An HTTPS URL that can be used to see transaction details",
+ "html_description": "An HTTPS URL that can be used to see transaction details | ",
+ "rst_description": "An HTTPS URL that can be used to see transaction details\n",
+ "name": "url",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/RevenueWithdrawalStateSucceeded/replace.yml b/.butcher/types/RevenueWithdrawalStateSucceeded/replace.yml
new file mode 100644
index 00000000..80c48d76
--- /dev/null
+++ b/.butcher/types/RevenueWithdrawalStateSucceeded/replace.yml
@@ -0,0 +1,5 @@
+annotations:
+ date:
+ parsed_type:
+ type: std
+ name: DateTime
diff --git a/.butcher/types/ShippingQuery/entity.json b/.butcher/types/ShippingQuery/entity.json
index 607f7e57..4d6cd4f1 100644
--- a/.butcher/types/ShippingQuery/entity.json
+++ b/.butcher/types/ShippingQuery/entity.json
@@ -29,9 +29,9 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
diff --git a/.butcher/types/StarTransaction/entity.json b/.butcher/types/StarTransaction/entity.json
new file mode 100644
index 00000000..775b96ca
--- /dev/null
+++ b/.butcher/types/StarTransaction/entity.json
@@ -0,0 +1,57 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "startransaction",
+ "name": "StarTransaction",
+ "description": "Describes a Telegram Star transaction.",
+ "html_description": "Describes a Telegram Star transaction.
",
+ "rst_description": "Describes a Telegram Star transaction.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with SuccessfulPayment.telegram_payment_charge_id for successful incoming payments from users.",
+ "html_description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with SuccessfulPayment.telegram_payment_charge_id for successful incoming payments from users. | ",
+ "rst_description": "Unique identifier of the transaction. Coincides with the identifier of the original transaction for refund transactions. Coincides with *SuccessfulPayment.telegram_payment_charge_id* for successful incoming payments from users.\n",
+ "name": "id",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Number of Telegram Stars transferred by the transaction",
+ "html_description": "Number of Telegram Stars transferred by the transaction | ",
+ "rst_description": "Number of Telegram Stars transferred by the transaction\n",
+ "name": "amount",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "Date the transaction was created in Unix time",
+ "html_description": "Date the transaction was created in Unix time | ",
+ "rst_description": "Date the transaction was created in Unix time\n",
+ "name": "date",
+ "required": true
+ },
+ {
+ "type": "TransactionPartner",
+ "description": "Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions",
+ "html_description": "Optional. Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions | ",
+ "rst_description": "*Optional*. Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions\n",
+ "name": "source",
+ "required": false
+ },
+ {
+ "type": "TransactionPartner",
+ "description": "Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions",
+ "html_description": "Optional. Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions | ",
+ "rst_description": "*Optional*. Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions\n",
+ "name": "receiver",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/StarTransaction/replace.yml b/.butcher/types/StarTransaction/replace.yml
new file mode 100644
index 00000000..80c48d76
--- /dev/null
+++ b/.butcher/types/StarTransaction/replace.yml
@@ -0,0 +1,5 @@
+annotations:
+ date:
+ parsed_type:
+ type: std
+ name: DateTime
diff --git a/.butcher/types/StarTransactions/entity.json b/.butcher/types/StarTransactions/entity.json
new file mode 100644
index 00000000..a3983697
--- /dev/null
+++ b/.butcher/types/StarTransactions/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "startransactions",
+ "name": "StarTransactions",
+ "description": "Contains a list of Telegram Star transactions.",
+ "html_description": "Contains a list of Telegram Star transactions.
",
+ "rst_description": "Contains a list of Telegram Star transactions.",
+ "annotations": [
+ {
+ "type": "Array of StarTransaction",
+ "description": "The list of transactions",
+ "html_description": "The list of transactions | ",
+ "rst_description": "The list of transactions\n",
+ "name": "transactions",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/SuccessfulPayment/entity.json b/.butcher/types/SuccessfulPayment/entity.json
index b555d08b..bb1fe445 100644
--- a/.butcher/types/SuccessfulPayment/entity.json
+++ b/.butcher/types/SuccessfulPayment/entity.json
@@ -29,12 +29,36 @@
},
{
"type": "String",
- "description": "Bot specified invoice payload",
- "html_description": "Bot specified invoice payload | ",
- "rst_description": "Bot specified invoice payload\n",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Bot-specified invoice payload | ",
+ "rst_description": "Bot-specified invoice payload\n",
"name": "invoice_payload",
"required": true
},
+ {
+ "type": "Integer",
+ "description": "Expiration date of the subscription, in Unix time; for recurring payments only",
+ "html_description": "Optional. Expiration date of the subscription, in Unix time; for recurring payments only | ",
+ "rst_description": "*Optional*. Expiration date of the subscription, in Unix time; for recurring payments only\n",
+ "name": "subscription_expiration_date",
+ "required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the payment is a recurring payment for a subscription",
+ "html_description": "Optional. True, if the payment is a recurring payment for a subscription | ",
+ "rst_description": "*Optional*. True, if the payment is a recurring payment for a subscription\n",
+ "name": "is_recurring",
+ "required": false
+ },
+ {
+ "type": "True",
+ "description": "True, if the payment is the first payment for a subscription",
+ "html_description": "Optional. True, if the payment is the first payment for a subscription | ",
+ "rst_description": "*Optional*. True, if the payment is the first payment for a subscription\n",
+ "name": "is_first_recurring",
+ "required": false
+ },
{
"type": "String",
"description": "Identifier of the shipping option chosen by the user",
diff --git a/.butcher/types/TransactionPartner/entity.json b/.butcher/types/TransactionPartner/entity.json
new file mode 100644
index 00000000..d8e38c67
--- /dev/null
+++ b/.butcher/types/TransactionPartner/entity.json
@@ -0,0 +1,16 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartner",
+ "name": "TransactionPartner",
+ "description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of\n - TransactionPartnerUser\n - TransactionPartnerFragment\n - TransactionPartnerTelegramAds\n - TransactionPartnerTelegramApi\n - TransactionPartnerOther",
+ "html_description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of
",
+ "rst_description": "This object describes the source of a transaction, or its recipient for outgoing transactions. Currently, it can be one of\n\n - :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`\n - :class:`aiogram.types.transaction_partner_fragment.TransactionPartnerFragment`\n - :class:`aiogram.types.transaction_partner_telegram_ads.TransactionPartnerTelegramAds`\n - :class:`aiogram.types.transaction_partner_telegram_api.TransactionPartnerTelegramApi`\n - :class:`aiogram.types.transaction_partner_other.TransactionPartnerOther`",
+ "annotations": [],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/TransactionPartner/subtypes.yml b/.butcher/types/TransactionPartner/subtypes.yml
new file mode 100644
index 00000000..6756ad51
--- /dev/null
+++ b/.butcher/types/TransactionPartner/subtypes.yml
@@ -0,0 +1 @@
+discriminator: "type"
diff --git a/.butcher/types/TransactionPartnerFragment/entity.json b/.butcher/types/TransactionPartnerFragment/entity.json
new file mode 100644
index 00000000..e4964bd4
--- /dev/null
+++ b/.butcher/types/TransactionPartnerFragment/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartnerfragment",
+ "name": "TransactionPartnerFragment",
+ "description": "Describes a withdrawal transaction with Fragment.",
+ "html_description": "Describes a withdrawal transaction with Fragment.
",
+ "rst_description": "Describes a withdrawal transaction with Fragment.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'fragment'",
+ "html_description": "Type of the transaction partner, always “fragment” | ",
+ "rst_description": "Type of the transaction partner, always 'fragment'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "RevenueWithdrawalState",
+ "description": "State of the transaction if the transaction is outgoing",
+ "html_description": "Optional. State of the transaction if the transaction is outgoing | ",
+ "rst_description": "*Optional*. State of the transaction if the transaction is outgoing\n",
+ "name": "withdrawal_state",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/TransactionPartnerOther/entity.json b/.butcher/types/TransactionPartnerOther/entity.json
new file mode 100644
index 00000000..203cd32a
--- /dev/null
+++ b/.butcher/types/TransactionPartnerOther/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartnerother",
+ "name": "TransactionPartnerOther",
+ "description": "Describes a transaction with an unknown source or recipient.",
+ "html_description": "Describes a transaction with an unknown source or recipient.
",
+ "rst_description": "Describes a transaction with an unknown source or recipient.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'other'",
+ "html_description": "Type of the transaction partner, always “other” | ",
+ "rst_description": "Type of the transaction partner, always 'other'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/TransactionPartnerTelegramAds/entity.json b/.butcher/types/TransactionPartnerTelegramAds/entity.json
new file mode 100644
index 00000000..2af27d5c
--- /dev/null
+++ b/.butcher/types/TransactionPartnerTelegramAds/entity.json
@@ -0,0 +1,25 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartnertelegramads",
+ "name": "TransactionPartnerTelegramAds",
+ "description": "Describes a withdrawal transaction to the Telegram Ads platform.",
+ "html_description": "Describes a withdrawal transaction to the Telegram Ads platform.
",
+ "rst_description": "Describes a withdrawal transaction to the Telegram Ads platform.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'telegram_ads'",
+ "html_description": "Type of the transaction partner, always “telegram_ads” | ",
+ "rst_description": "Type of the transaction partner, always 'telegram_ads'\n",
+ "name": "type",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/TransactionPartnerTelegramApi/entity.json b/.butcher/types/TransactionPartnerTelegramApi/entity.json
new file mode 100644
index 00000000..ab951c14
--- /dev/null
+++ b/.butcher/types/TransactionPartnerTelegramApi/entity.json
@@ -0,0 +1,33 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartnertelegramapi",
+ "name": "TransactionPartnerTelegramApi",
+ "description": "Describes a transaction with payment for paid broadcasting.",
+ "html_description": "Describes a transaction with payment for paid broadcasting.
",
+ "rst_description": "Describes a transaction with payment for `paid broadcasting `_.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'telegram_api'",
+ "html_description": "Type of the transaction partner, always “telegram_api” | ",
+ "rst_description": "Type of the transaction partner, always 'telegram_api'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "Integer",
+ "description": "The number of successful requests that exceeded regular limits and were therefore billed",
+ "html_description": "The number of successful requests that exceeded regular limits and were therefore billed | ",
+ "rst_description": "The number of successful requests that exceeded regular limits and were therefore billed\n",
+ "name": "request_count",
+ "required": true
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/TransactionPartnerUser/entity.json b/.butcher/types/TransactionPartnerUser/entity.json
new file mode 100644
index 00000000..f8064da9
--- /dev/null
+++ b/.butcher/types/TransactionPartnerUser/entity.json
@@ -0,0 +1,73 @@
+{
+ "meta": {},
+ "group": {
+ "title": "Payments",
+ "anchor": "payments"
+ },
+ "object": {
+ "anchor": "transactionpartneruser",
+ "name": "TransactionPartnerUser",
+ "description": "Describes a transaction with a user.",
+ "html_description": "Describes a transaction with a user.
",
+ "rst_description": "Describes a transaction with a user.",
+ "annotations": [
+ {
+ "type": "String",
+ "description": "Type of the transaction partner, always 'user'",
+ "html_description": "Type of the transaction partner, always “user” | ",
+ "rst_description": "Type of the transaction partner, always 'user'\n",
+ "name": "type",
+ "required": true
+ },
+ {
+ "type": "User",
+ "description": "Information about the user",
+ "html_description": "Information about the user | ",
+ "rst_description": "Information about the user\n",
+ "name": "user",
+ "required": true
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified invoice payload",
+ "html_description": "Optional. Bot-specified invoice payload | ",
+ "rst_description": "*Optional*. Bot-specified invoice payload\n",
+ "name": "invoice_payload",
+ "required": false
+ },
+ {
+ "type": "Integer",
+ "description": "The duration of the paid subscription",
+ "html_description": "Optional. The duration of the paid subscription | ",
+ "rst_description": "*Optional*. The duration of the paid subscription\n",
+ "name": "subscription_period",
+ "required": false
+ },
+ {
+ "type": "Array of PaidMedia",
+ "description": "Information about the paid media bought by the user",
+ "html_description": "Optional. Information about the paid media bought by the user | ",
+ "rst_description": "*Optional*. Information about the paid media bought by the user\n",
+ "name": "paid_media",
+ "required": false
+ },
+ {
+ "type": "String",
+ "description": "Bot-specified paid media payload",
+ "html_description": "Optional. Bot-specified paid media payload | ",
+ "rst_description": "*Optional*. Bot-specified paid media payload\n",
+ "name": "paid_media_payload",
+ "required": false
+ },
+ {
+ "type": "String",
+ "description": "The gift sent to the user by the bot",
+ "html_description": "Optional. The gift sent to the user by the bot | ",
+ "rst_description": "*Optional*. The gift sent to the user by the bot\n",
+ "name": "gift",
+ "required": false
+ }
+ ],
+ "category": "types"
+ }
+}
diff --git a/.butcher/types/Update/entity.json b/.butcher/types/Update/entity.json
index ce43e9f9..256b073b 100644
--- a/.butcher/types/Update/entity.json
+++ b/.butcher/types/Update/entity.json
@@ -139,6 +139,14 @@
"name": "pre_checkout_query",
"required": false
},
+ {
+ "type": "PaidMediaPurchased",
+ "description": "A user purchased paid media with a non-empty payload sent by the bot in a non-channel chat",
+ "html_description": "Optional. A user purchased paid media with a non-empty payload sent by the bot in a non-channel chat | ",
+ "rst_description": "*Optional*. A user purchased paid media with a non-empty payload sent by the bot in a non-channel chat\n",
+ "name": "purchased_paid_media",
+ "required": false
+ },
{
"type": "Poll",
"description": "New poll state. Bots receive only updates about manually stopped polls and polls, which are sent by the bot",
diff --git a/.butcher/types/User/entity.json b/.butcher/types/User/entity.json
index f502c62b..820d7563 100644
--- a/.butcher/types/User/entity.json
+++ b/.butcher/types/User/entity.json
@@ -106,6 +106,14 @@
"rst_description": "*Optional*. :code:`True`, if the bot can be connected to a Telegram Business account to receive its messages. Returned only in :class:`aiogram.methods.get_me.GetMe`.\n",
"name": "can_connect_to_business",
"required": false
+ },
+ {
+ "type": "Boolean",
+ "description": "True, if the bot has a main Web App. Returned only in getMe.",
+ "html_description": "Optional. True, if the bot has a main Web App. Returned only in getMe. | ",
+ "rst_description": "*Optional*. :code:`True`, if the bot has a main Web App. Returned only in :class:`aiogram.methods.get_me.GetMe`.\n",
+ "name": "has_main_web_app",
+ "required": false
}
],
"category": "types"
diff --git a/.butcher/types/Video/entity.json b/.butcher/types/Video/entity.json
index b98f44ba..b025a605 100644
--- a/.butcher/types/Video/entity.json
+++ b/.butcher/types/Video/entity.json
@@ -29,25 +29,25 @@
},
{
"type": "Integer",
- "description": "Video width as defined by sender",
- "html_description": "Video width as defined by sender | ",
- "rst_description": "Video width as defined by sender\n",
+ "description": "Video width as defined by the sender",
+ "html_description": "Video width as defined by the sender | ",
+ "rst_description": "Video width as defined by the sender\n",
"name": "width",
"required": true
},
{
"type": "Integer",
- "description": "Video height as defined by sender",
- "html_description": "Video height as defined by sender | ",
- "rst_description": "Video height as defined by sender\n",
+ "description": "Video height as defined by the sender",
+ "html_description": "Video height as defined by the sender | ",
+ "rst_description": "Video height as defined by the sender\n",
"name": "height",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
@@ -61,17 +61,17 @@
},
{
"type": "String",
- "description": "Original filename as defined by sender",
- "html_description": "Optional. Original filename as defined by sender | ",
- "rst_description": "*Optional*. Original filename as defined by sender\n",
+ "description": "Original filename as defined by the sender",
+ "html_description": "Optional. Original filename as defined by the sender | ",
+ "rst_description": "*Optional*. Original filename as defined by the sender\n",
"name": "file_name",
"required": false
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
diff --git a/.butcher/types/VideoNote/entity.json b/.butcher/types/VideoNote/entity.json
index da99d65c..ee6e4f18 100644
--- a/.butcher/types/VideoNote/entity.json
+++ b/.butcher/types/VideoNote/entity.json
@@ -29,17 +29,17 @@
},
{
"type": "Integer",
- "description": "Video width and height (diameter of the video message) as defined by sender",
- "html_description": "Video width and height (diameter of the video message) as defined by sender | ",
- "rst_description": "Video width and height (diameter of the video message) as defined by sender\n",
+ "description": "Video width and height (diameter of the video message) as defined by the sender",
+ "html_description": "Video width and height (diameter of the video message) as defined by the sender | ",
+ "rst_description": "Video width and height (diameter of the video message) as defined by the sender\n",
"name": "length",
"required": true
},
{
"type": "Integer",
- "description": "Duration of the video in seconds as defined by sender",
- "html_description": "Duration of the video in seconds as defined by sender | ",
- "rst_description": "Duration of the video in seconds as defined by sender\n",
+ "description": "Duration of the video in seconds as defined by the sender",
+ "html_description": "Duration of the video in seconds as defined by the sender | ",
+ "rst_description": "Duration of the video in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
diff --git a/.butcher/types/Voice/entity.json b/.butcher/types/Voice/entity.json
index f19f9536..0bfae946 100644
--- a/.butcher/types/Voice/entity.json
+++ b/.butcher/types/Voice/entity.json
@@ -29,17 +29,17 @@
},
{
"type": "Integer",
- "description": "Duration of the audio in seconds as defined by sender",
- "html_description": "Duration of the audio in seconds as defined by sender | ",
- "rst_description": "Duration of the audio in seconds as defined by sender\n",
+ "description": "Duration of the audio in seconds as defined by the sender",
+ "html_description": "Duration of the audio in seconds as defined by the sender | ",
+ "rst_description": "Duration of the audio in seconds as defined by the sender\n",
"name": "duration",
"required": true
},
{
"type": "String",
- "description": "MIME type of the file as defined by sender",
- "html_description": "Optional. MIME type of the file as defined by sender | ",
- "rst_description": "*Optional*. MIME type of the file as defined by sender\n",
+ "description": "MIME type of the file as defined by the sender",
+ "html_description": "Optional. MIME type of the file as defined by the sender | ",
+ "rst_description": "*Optional*. MIME type of the file as defined by the sender\n",
"name": "mime_type",
"required": false
},
diff --git a/.editorconfig b/.editorconfig
index f726e25b..1ad65bb7 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -15,5 +15,8 @@ indent_size = 2
[**.{md,txt,rst}]
trim_trailing_whitespace = false
+[**.rst]
+indent_size = 2
+
[Makefile]
indent_style = tab
diff --git a/.github/workflows/pull_request_changelog.yml b/.github/workflows/pull_request_changelog.yml
index c481bc9b..e91a898f 100644
--- a/.github/workflows/pull_request_changelog.yml
+++ b/.github/workflows/pull_request_changelog.yml
@@ -22,10 +22,10 @@ jobs:
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
- python-version: "3.10"
+ python-version: "3.12"
- name: Install towncrier
- run: pip install towncrier
+ run: pip install -U towncrier
- name: Check changelog
env:
@@ -36,7 +36,7 @@ jobs:
- name: Find bot comment
if: "always()"
- uses: peter-evans/find-comment@v2
+ uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
@@ -45,7 +45,7 @@ jobs:
- name: Ask for changelog
if: "failure()"
- uses: peter-evans/create-or-update-comment@v2
+ uses: peter-evans/create-or-update-comment@v4
with:
edit-mode: replace
comment-id: ${{ steps.fc.outputs.comment-id }}
@@ -65,7 +65,7 @@ jobs:
- name: Changelog found
if: "success()"
- uses: peter-evans/create-or-update-comment@v2
+ uses: peter-evans/create-or-update-comment@v4
with:
edit-mode: replace
comment-id: ${{ steps.fc.outputs.comment-id }}
@@ -80,7 +80,7 @@ jobs:
if: "contains(github.event.pull_request.labels.*.name, 'skip news')"
steps:
- name: Find bot comment
- uses: peter-evans/find-comment@v2
+ uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
@@ -88,7 +88,7 @@ jobs:
body-includes: Changelog
- name: Comment when docs is not needed
- uses: peter-evans/create-or-update-comment@v2
+ uses: peter-evans/create-or-update-comment@v4
with:
edit-mode: replace
comment-id: ${{ steps.fc.outputs.comment-id }}
diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml
index 7b3e86dd..ee7fc0be 100644
--- a/.github/workflows/pypi-release.yml
+++ b/.github/workflows/pypi-release.yml
@@ -39,7 +39,7 @@ jobs:
venv/bin/pip install ../dist/aiogram-*.whl
venv/bin/python -c "import aiogram; print(aiogram.__version__)"
- name: Publish artifacts
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: dist
path: dist/*
@@ -55,7 +55,7 @@ jobs:
id-token: write
steps:
- name: Download artifacts
- uses: actions/download-artifact@v1
+ uses: actions/download-artifact@v4
with:
name: dist
path: dist
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 90afe538..7c5292ef 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -29,11 +29,11 @@ jobs:
- macos-latest
- windows-latest
python-version:
- - '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
+ - '3.13'
defaults:
# Windows sucks. Force use bash instead of PowerShell
@@ -67,7 +67,7 @@ jobs:
- name: Lint code
run: |
- ruff --output-format=github aiogram examples
+ ruff check --output-format=github aiogram examples
mypy aiogram
black --check --diff aiogram tests
@@ -111,7 +111,6 @@ jobs:
- macos-latest
# - windows-latest
python-version:
- - 'pypy3.8'
- 'pypy3.9'
- 'pypy3.10'
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bf00554d..d6537dce 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.2.0
+ rev: v4.6.0
hooks:
- id: "trailing-whitespace"
- id: "check-case-conflict"
@@ -14,13 +14,12 @@ repos:
- id: "check-json"
- repo: https://github.com/psf/black
- rev: 22.10.0
+ rev: 24.4.2
hooks:
- id: black
files: &files '^(aiogram|tests|examples)'
- - repo: https://github.com/charliermarsh/ruff-pre-commit
- rev: 'v0.0.215'
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: 'v0.5.1'
hooks:
- id: ruff
- args: [ "--force-exclude" ]
diff --git a/CHANGES.rst b/CHANGES.rst
index 2ed0a519..045fb873 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -16,6 +16,407 @@ Changelog
.. towncrier release notes start
+3.15.0 (2024-11-17)
+====================
+
+Features
+--------
+
+- Added full support for `Bot API 8.0 `_
+
+ - Added the parameter :code:`subscription_period` to the method
+ :class:`aiogram.methods.create_invoice_link.CreateInvoiceLink`
+ to support the creation of links that are billed periodically.
+ - Added the parameter :code:`business_connection_id` to the method
+ :class:`aiogram.methods.create_invoice_link.CreateInvoiceLink`
+ to support the creation of invoice links on behalf of business accounts.
+ - Added the fields :code:`subscription_expiration_date`,
+ :code:`is_recurring` and :code:`is_first_recurring` to the class
+ :class:`aiogram.types.successful_payment.SuccessfulPayment`.
+ - Added the method :class:`aiogram.methods.edit_user_star_subscription.EditUserStarSubscription`.
+ - Added the field :code:`subscription_period` to the class
+ :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`.
+ - Added the method :class:`aiogram.methods.set_user_emoji_status.SetUserEmojiStatus`.
+ The user must allow the bot to manage their emoji status.
+ - Added the class :class:`aiogram.types.prepared_inline_message.PreparedInlineMessage`
+ and the method :class:`aiogram.methods.save_prepared_inline_message.SavePreparedInlineMessage`,
+ allowing bots to suggest users send a specific message from a Mini App via the method
+ :class:`aiogram.methods.share_message.ShareMessage`.
+ - Added the classes :class:`aiogram.types.gift.Gift` and :class:`aiogram.types.gifts.Gifts`
+ and the method :class:`aiogram.methods.get_available_gifts.GetAvailableGifts`,
+ allowing bots to get all gifts available for sending.
+ - Added the field :code:`gift` to the class
+ :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`.
+ `#1606 `_
+
+
+3.14.0 (2024-11-02)
+====================
+
+Misc
+----
+
+- Checked compatibility with Python 3.13 (added to the CI/CD processes),
+ so now aiogram is totally compatible with it.
+
+ Dropped compatibility with Python 3.8 due to this version being `EOL `_.
+
+ .. warning::
+
+ In some cases you will need to have the installed compiler (Rust or C++)
+ to install some of the dependencies to compile packages from source on `pip install` command.
+
+ - If you are using Windows, you will need to have the `Visual Studio `_ installed.
+ - If you are using Linux, you will need to have the `build-essential` package installed.
+ - If you are using macOS, you will need to have the `Xcode `_ installed.
+
+ When developers of this dependencies will release new versions with precompiled wheels for Windows, Linux and macOS,
+ this action will not be necessary anymore until the next version of the Python interpreter.
+ `#1589 `_
+- Added business_connection_id to the :class:`aiogram.types.message.Message` API methods shortcuts.
+
+ Integrated the :code:`business_connection_id` attribute into various message manipulation methods,
+ ensuring consistent data handling. This update eliminates the need to pass the
+ :code:`business_connection_id` as a parameter,
+ instead directly accessing it from the instance attributes.
+ `#1586 `_
+
+Features
+--------
+
+- Add function ``get_value`` to all built-in storage implementations, ``FSMContext`` and ``SceneWizard``
+ `#1431 `_
+- Enhanced the inheritance of handlers and actions in :ref:`Scenes `.
+ Refactored to eliminate the copying of previously connected handlers and actions from parent scenes.
+ Now, handlers are dynamically rebuilt based on the current class, properly utilizing class inheritance and enabling handler overrides.
+
+ That's mean that you can now override handlers and actions in the child scene, instead of copying and duplicating them.
+ `#1583 `_
+- Added full support of `Bot API 7.11 `_
+
+ - Added the class :class:`aiogram.types.copy_text_button.CopyTextButton`
+ and the field :code:`copy_text` in the class
+ :class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton`,
+ allowing bots to send and receive inline buttons that copy arbitrary text.
+ - Added the parameter :code:`allow_paid_broadcast` to the methods
+ :class:`aiogram.methods.send_message.SendMessage`,
+ :class:`aiogram.methods.send_photo.SendPhoto`,
+ :class:`aiogram.methods.send_video.SendVideo`,
+ :class:`aiogram.methods.send_animation.SendAnimation`,
+ :class:`aiogram.methods.send_audio.SendAudio`,
+ :class:`aiogram.methods.send_document.SendDocument`,
+ :class:`aiogram.methods.send_paid_media.SendPaidMedia`,
+ :class:`aiogram.methods.send_sticker.SendSticker`,
+ :class:`aiogram.methods.send_video_note.SendVideoNote`,
+ :class:`aiogram.methods.send_voice.SendVoice`,
+ :class:`aiogram.methods.send_location.SendLocation`,
+ :class:`aiogram.methods.send_venue.SendVenue`,
+ :class:`aiogram.methods.send_contact.SendContact`,
+ :class:`aiogram.methods.send_poll.SendPoll`,
+ :class:`aiogram.methods.send_dice.SendDice`,
+ :class:`aiogram.methods.send_invoice.SendInvoice`,
+ :class:`aiogram.methods.send_game.SendGame`,
+ :class:`aiogram.methods.send_media_group.SendMediaGroup`
+ and :class:`aiogram.methods.copy_message.CopyMessage`.
+ - Added the class
+ :class:`aiogram.types.transaction_partner_telegram_api.TransactionPartnerTelegramApi`
+ for transactions related to paid broadcasted messages.
+ - Introduced the ability to add media to existing text messages using the method
+ :class:`aiogram.methods.edit_message_media.EditMessageMedia`.
+ - Added support for hashtag and cashtag entities with a specified chat username
+ that opens a search for the relevant tag within the specified chat.
+ `#1601 `_
+
+
+Bugfixes
+--------
+
+- Fix PytestDeprecationWarning thrown by pytest-asyncio when running the tests
+ `#1584 `_
+- Fixed customized serialization in the :class:`aiogram.filters.callback_data.CallbackData` factory.
+
+ From now UUID will have 32 bytes length instead of 36 bytes (with no `-` separators) in the callback data representation.
+ `#1602 `_
+
+
+Improved Documentation
+----------------------
+
+- Add missing closing tag for bold.
+ `#1599 `_
+
+
+3.13.1 (2024-09-18)
+====================
+
+.. warning::
+
+ **Python 3.8 End of Life**: Python 3.8 will reach its end of life (EOL) soon and will no longer
+ be supported by aiogram in the next releases (1-2 months ETA).
+
+ Please upgrade to a newer version of Python to ensure compatibility and receive future updates.
+
+Misc
+----
+
+- Increase max pydantic version support "<2.9" -> "<2.10" (only For Python >=3.9)
+ `#1576 `_
+- Bump aiofiles version upper bound to <24.2
+ `#1577 `_
+
+
+Bugfixes
+--------
+
+- Fixed `Default` object annotation resolution using `pydantic`
+ `#1579 `_
+
+
+3.13.0 (2024-09-08)
+====================
+
+Features
+--------
+
+- - Added updates about purchased paid media, represented by the class
+ :class:`aiogram.types.paid_media_purchased.PaidMediaPurchased`
+ and the field :code:`purchased_paid_media` in the class
+ :class:`aiogram.types.update.Update`.
+ - Added the ability to specify a payload in
+ :class:`aiogram.methods.send_paid_media.SendPaidMedia` that is received back by the bot in
+ :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`
+ and :code:`purchased_paid_media` updates.
+ - Added the field :code:`prize_star_count` to the classes
+ :class:`aiogram.types.giveaway_created.GiveawayCreated`,
+ :class:`aiogram.types.giveaway.Giveaway`,
+ :class:`aiogram.types.giveaway_winners.GiveawayWinners`
+ and :class:`aiogram.types.chat_boost_source_giveaway.ChatBoostSourceGiveaway`.
+ - Added the field :code:`is_star_giveaway` to the class
+ :class:`aiogram.types.giveaway_completed.GiveawayCompleted`.
+ `#1510 `_
+- Added missing method aliases such as `.answer()`, `.reply()`, and others to `InaccessibleMessage`.
+ This change ensures consistency and improves usability by aligning the functionality of `InaccessibleMessage` with the `Message` type.
+ `#1574 `_
+
+
+Bugfixes
+--------
+
+- Fixed link preview options to use global defaults in various types and methods
+ to use global defaults for `link_preview_options`.
+ This change ensures consistency and enhances flexibility in handling link preview options
+ across different components.
+ `#1543 `_
+
+
+3.12.0 (2024-08-16)
+====================
+
+Features
+--------
+
+- Added **message_thread_id** parameter to **message.get_url()**.
+ `#1451 `_
+- Added getting user from `chat_boost` with source `ChatBoostSourcePremium` in `UserContextMiddleware` for `EventContext`
+ `#1474 `_
+- Added full support of `Bot API 7.8 `_
+
+ - Added the ability to send paid media to any chat.
+ - Added the parameter :code:`business_connection_id` to the method
+ :class:`aiogram.methods.send_paid_media.SendPaidMedia`,
+ allowing bots to send paid media on behalf of a business account.
+ - Added the field :code:`paid_media` to the class
+ :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`
+ for transactions involving paid media.
+ - Added the method
+ :class:`aiogram.methods.create_chat_subscription_invite_link.CreateChatSubscriptionInviteLink`,
+ allowing bots to create subscription invite links.
+ - Added the method
+ :class:`aiogram.methods.edit_chat_subscription_invite_link.EditChatSubscriptionInviteLink`,
+ allowing bots to edit the name of subscription invite links.
+ - Added the field :code:`until_date` to the class
+ :class:`aiogram.types.chat_member_member.ChatMemberMember` for members with an active subscription.
+ - Added support for paid reactions and the class
+ :class:`aiogram.types.reaction_type_paid.ReactionTypePaid`.
+ `#1560 `_
+
+
+Misc
+----
+
+- Improved performance of StatesGroup
+ `#1507 `_
+
+
+3.11.0 (2024-08-09)
+====================
+
+Features
+--------
+
+- Added full support of `Bot API 7.8 `_
+
+ - Added the field :code:`has_main_web_app` to the class :class:`aiogram.types.user.User`,
+ which is returned in the response to :class:`aiogram.methods.get_me.GetMe`.
+ - Added the parameter :code:`business_connection_id` to the methods
+ :class:`aiogram.methods.pin_chat_message.PinChatMessage`
+ and :class:`aiogram.methods.unpin_chat_message.UnpinChatMessage`,
+ allowing bots to manage pinned messages on behalf of a business account.
+ `#1551 `_
+
+
+Bugfixes
+--------
+
+- Fixed URL path in the "Open" button at the "demo/sendMessage" endpoint in the web_app example.
+ `#1546 `_
+
+
+Misc
+----
+
+- Added method :func:`aiogram.types.message.Message.as_reply_parameters`.
+ Replaced usage of the argument :code:`reply_to_message_id` with :code:`reply_parameters`
+ in all Message reply methods.
+ `#1538 `_
+- Added `aiohttp v3.10 `_ ` support.
+ `#1548 `_
+
+
+3.10.0 (2024-07-07)
+====================
+
+Features
+--------
+
+- Added full support of `Bot API 7.7 `_
+
+ - Added the class :class:`aiogram.types.refunded_payment.RefundedPayment`,
+ containing information about a refunded payment.
+ - Added the field :code:`refunded_payment` to the class
+ :class:`aiogram.types.message.Message`,
+ describing a service message about a refunded payment.
+ `#1536 `_
+
+
+3.9.0 (2024-07-06)
+===================
+
+Features
+--------
+
+- Added ChatMember resolution tool and updated 2.x migration guide.
+ `#1525 `_
+- Added full support of `Bot API 7.6 `_
+
+ - Added the classes :class:`aiogram.types.paid_media.PaidMedia`,
+ :class:`aiogram.types.paid_media_info.PaidMediaInfo`,
+ :class:`aiogram.types.paid_media_preview.PaidMediaPreview`,
+ :class:`aiogram.types.paid_media_photo.PaidMediaPhoto`
+ and :class:`aiogram.types.paid_media_video.PaidMediaVideo`,
+ containing information about paid media.
+ - Added the method :class:`aiogram.methods.send_paid_media.SendPaidMedia`
+ and the classes :class:`aiogram.types.input_paid_media.InputPaidMedia`,
+ :class:`aiogram.types.input_paid_media_photo.InputPaidMediaPhoto`
+ and :class:`aiogram.types.input_paid_media_video.InputPaidMediaVideo`,
+ to support sending paid media.
+ - Documented that the methods :class:`aiogram.methods.copy_message.CopyMessage`
+ and :class:`aiogram.methods.copy_messages.CopyMessages` cannot be used to copy paid media.
+ - Added the field :code:`can_send_paid_media` to the class
+ :class:`aiogram.types.chat_full_info.ChatFullInfo`.
+ - Added the field :code:`paid_media` to the classes
+ :class:`aiogram.types.message.Message` and
+ :class:`aiogram.types.external_reply_info.ExternalReplyInfo`.
+ - Added the class
+ :class:`aiogram.types.transaction_partner_telegram_ads.TransactionPartnerTelegramAds`,
+ containing information about Telegram Star transactions involving the Telegram Ads Platform.
+ - Added the field :code:`invoice_payload` to the class
+ :class:`aiogram.types.transaction_partner_user.TransactionPartnerUser`,
+ containing the bot-specified invoice payload.
+ - Changed the default opening mode for Direct Link Mini Apps.
+ - Added support for launching Web Apps via t.me link in the class
+ :class:`aiogram.types.menu_button_web_app.MenuButtonWebApp`.
+ - Added the field :code:`section_separator_color` to the class :code:`ThemeParams`.
+ `#1533 `_
+
+
+Bugfixes
+--------
+
+- Fixed event context resolving for the callback query that is coming from the business account
+ `#1520 `_
+
+
+3.8.0 (2024-06-19)
+===================
+
+Features
+--------
+
+- Added utility to safely deserialize any Telegram object or method to a JSON-compatible object (dict).
+ (:ref:`>> Read more `)
+ `#1450 `_
+- Added full support of `Bot API 7.5 `_
+
+ - Added the classes :class:`aiogram.types.star_transactions.StarTransactions`,
+ :class:`aiogram.types.star_transaction.StarTransaction`,
+ :class:`aiogram.types.transaction_partner.TransactionPartner`
+ and :class:`aiogram.types.revenue_withdrawal_state.RevenueWithdrawalState`,
+ containing information about Telegram Star transactions involving the bot.
+ - Added the method :class:`aiogram.methods.get_star_transactions.GetStarTransactions`
+ that can be used to get the list of all Telegram Star transactions for the bot.
+ - Added support for callback buttons in
+ :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup`
+ for messages sent on behalf of a business account.
+ - Added support for callback queries originating from a message sent
+ on behalf of a business account.
+ - Added the parameter :code:`business_connection_id` to the methods
+ :class:`aiogram.methods.edit_message_text.EditMessageText`,
+ :class:`aiogram.methods.edit_message_media.EditMessageMedia`,
+ :class:`aiogram.methods.edit_message_caption.EditMessageCaption`,
+ :class:`aiogram.methods.edit_message_live_location.EditMessageLiveLocation`,
+ :class:`aiogram.methods.stop_message_live_location.StopMessageLiveLocation`
+ and :class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup`,
+ allowing the bot to edit business messages.
+ - Added the parameter :code:`business_connection_id` to the method
+ :class:`aiogram.methods.stop_poll.StopPoll`,
+ allowing the bot to stop polls it sent on behalf of a business account.
+ `#1518 `_
+
+
+Bugfixes
+--------
+
+- Increased DNS cache ttl setting to aiohttp session as a workaround for DNS resolution issues in aiohttp.
+ `#1500 `_
+
+
+Improved Documentation
+----------------------
+
+- Fixed MongoStorage section in the documentation by adding extra dependency to ReadTheDocs configuration.
+ `#1501 `_
+- Added information about dependency changes to the :code:`2.x --> 3.x` migration guide.
+ `#1504 `_
+
+
+Misc
+----
+
+- [Only for contributors] Fail redis and mongo tests if incorrect URI provided + some storages tests refactoring
+
+ If incorrect URIs provided to "--redis" and/or "--mongo" options tests should fail with errors instead of skipping.
+ Otherwise the next scenario is possible:
+ 1) developer breaks RedisStorage and/or MongoStorage code
+ 2) tests are run with incorrect redis and/or mongo URIsprovided by "--redis" and "--mongo" options (for example, wrong port specified)
+ 3) tests pass because skipping doesn't fail tests run
+ 4) developer or reviewer doesn't notice that redis and/or mongo tests were skipped
+ 5) broken code gets in codebase
+
+ Also some refactorings done (related with storages and storages tests).
+ `#1510 `_
+
+
3.7.0 (2024-05-31)
===================
diff --git a/CHANGES/1501.doc.rst b/CHANGES/1501.doc.rst
deleted file mode 100644
index 780dd167..00000000
--- a/CHANGES/1501.doc.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed MongoStorage section in the documentation by adding extra dependency to ReadTheDocs configuration.
diff --git a/CHANGES/1504.doc.rst b/CHANGES/1504.doc.rst
deleted file mode 100644
index 323ee342..00000000
--- a/CHANGES/1504.doc.rst
+++ /dev/null
@@ -1 +0,0 @@
-Added information about dependency changes to the :code:`2.x --> 3.x` migration guide.
diff --git a/Makefile b/Makefile
index 324d95c7..14717df4 100644
--- a/Makefile
+++ b/Makefile
@@ -26,6 +26,11 @@ clean:
rm -f .coverage
rm -rf {build,dist,site,.cache,.mypy_cache,.ruff_cache,reports}
+.PHONY: install
+install: clean
+ pip install -e ."[dev,test,docs]" -U --upgrade-strategy=eager
+ pre-commit install
+
# =================================================================================================
# Code quality
# =================================================================================================
@@ -34,7 +39,7 @@ clean:
lint:
isort --check-only $(code_dir)
black --check --diff $(code_dir)
- ruff $(package_dir)
+ ruff check $(package_dir) $(examples_dir)
mypy $(package_dir)
.PHONY: reformat
@@ -79,7 +84,7 @@ docs-gettext:
.PHONY: docs-gettext
docs-serve:
- hatch run docs:sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ $(OPTS)
+ hatch run docs:sphinx-autobuild --watch aiogram/ --watch CHANGES.rst --watch README.rst docs/ docs/_build/ $(OPTS)
.PHONY: docs-serve
$(locale_targets): docs-serve-%:
@@ -99,18 +104,24 @@ bump:
hatch version $(args)
python scripts/bump_versions.py
+update-api:
+ butcher parse
+ butcher refresh
+ butcher apply all
+ @$(MAKE) bump
+
.PHONY: towncrier-build
towncrier-build:
hatch run docs:towncrier build --yes
.PHONY: towncrier-draft
towncrier-draft:
- towncrier build --draft
+ hatch run docs:towncrier build --draft
.PHONY: towncrier-draft-github
towncrier-draft-github:
mkdir -p dist
- towncrier build --draft | pandoc - -o dist/release.md
+ hatch run docs:towncrier build --draft | pandoc - -o dist/release.md
.PHONY: prepare-release
prepare-release: bump towncrier-build
diff --git a/README.rst b/README.rst
index cacc6908..acc48f8b 100644
--- a/README.rst
+++ b/README.rst
@@ -52,7 +52,7 @@ Features
- Asynchronous (`asyncio docs `_, :pep:`492`)
- Has type hints (:pep:`484`) and can be used with `mypy `_
- Supports `PyPy `_
-- Supports `Telegram Bot API 7.4 `_ and gets fast updates to the latest versions of the Bot API
+- Supports `Telegram Bot API 8.0 `_ and gets fast updates to the latest versions of the Bot API
- Telegram Bot API integration code was `autogenerated `_ and can be easily re-generated when API gets updated
- Updates router (Blueprints)
- Has Finite State Machine
diff --git a/aiogram/__meta__.py b/aiogram/__meta__.py
index 008ad63f..befb7cb6 100644
--- a/aiogram/__meta__.py
+++ b/aiogram/__meta__.py
@@ -1,2 +1,2 @@
-__version__ = "3.7.0"
-__api_version__ = "7.4"
+__version__ = "3.15.0"
+__api_version__ = "8.0"
diff --git a/aiogram/client/bot.py b/aiogram/client/bot.py
index d083aa0c..b538485f 100644
--- a/aiogram/client/bot.py
+++ b/aiogram/client/bot.py
@@ -10,7 +10,6 @@ from typing import (
AsyncGenerator,
AsyncIterator,
BinaryIO,
- List,
Optional,
Type,
TypeVar,
@@ -38,6 +37,7 @@ from ..methods import (
CopyMessage,
CopyMessages,
CreateChatInviteLink,
+ CreateChatSubscriptionInviteLink,
CreateForumTopic,
CreateInvoiceLink,
CreateNewStickerSet,
@@ -52,6 +52,7 @@ from ..methods import (
DeleteStickerSet,
DeleteWebhook,
EditChatInviteLink,
+ EditChatSubscriptionInviteLink,
EditForumTopic,
EditGeneralForumTopic,
EditMessageCaption,
@@ -59,9 +60,11 @@ from ..methods import (
EditMessageMedia,
EditMessageReplyMarkup,
EditMessageText,
+ EditUserStarSubscription,
ExportChatInviteLink,
ForwardMessage,
ForwardMessages,
+ GetAvailableGifts,
GetBusinessConnection,
GetChat,
GetChatAdministrators,
@@ -78,6 +81,7 @@ from ..methods import (
GetMyDescription,
GetMyName,
GetMyShortDescription,
+ GetStarTransactions,
GetStickerSet,
GetUpdates,
GetUserChatBoosts,
@@ -94,6 +98,7 @@ from ..methods import (
ReplaceStickerInSet,
RestrictChatMember,
RevokeChatInviteLink,
+ SavePreparedInlineMessage,
SendAnimation,
SendAudio,
SendChatAction,
@@ -101,10 +106,12 @@ from ..methods import (
SendDice,
SendDocument,
SendGame,
+ SendGift,
SendInvoice,
SendLocation,
SendMediaGroup,
SendMessage,
+ SendPaidMedia,
SendPhoto,
SendPoll,
SendSticker,
@@ -134,6 +141,7 @@ from ..methods import (
SetStickerPositionInSet,
SetStickerSetThumbnail,
SetStickerSetTitle,
+ SetUserEmojiStatus,
SetWebhook,
StopMessageLiveLocation,
StopPoll,
@@ -175,6 +183,7 @@ from ..types import (
ForceReply,
ForumTopic,
GameHighScore,
+ Gifts,
InlineKeyboardMarkup,
InlineQueryResultArticle,
InlineQueryResultAudio,
@@ -203,6 +212,8 @@ from ..types import (
InputMediaDocument,
InputMediaPhoto,
InputMediaVideo,
+ InputPaidMediaPhoto,
+ InputPaidMediaVideo,
InputPollOption,
InputSticker,
LabeledPrice,
@@ -224,13 +235,16 @@ from ..types import (
PassportElementErrorTranslationFiles,
PassportElementErrorUnspecified,
Poll,
+ PreparedInlineMessage,
ReactionTypeCustomEmoji,
ReactionTypeEmoji,
+ ReactionTypePaid,
ReplyKeyboardMarkup,
ReplyKeyboardRemove,
ReplyParameters,
SentWebAppMessage,
ShippingOption,
+ StarTransactions,
Sticker,
StickerSet,
Update,
@@ -561,7 +575,7 @@ class Bot:
async def answer_inline_query(
self,
inline_query_id: str,
- results: List[
+ results: list[
Union[
InlineQueryResultCachedAudio,
InlineQueryResultCachedDocument,
@@ -654,7 +668,7 @@ class Bot:
self,
shipping_query_id: str,
ok: bool,
- shipping_options: Optional[List[ShippingOption]] = None,
+ shipping_options: Optional[list[ShippingOption]] = None,
error_message: Optional[str] = None,
request_timeout: Optional[int] = None,
) -> bool:
@@ -845,12 +859,13 @@ class Bot:
message_thread_id: Optional[int] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
show_caption_above_media: Optional[Union[bool, Default]] = Default(
"show_caption_above_media"
),
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply]
@@ -860,7 +875,7 @@ class Bot:
request_timeout: Optional[int] = None,
) -> MessageId:
"""
- Use this method to copy messages of any kind. Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_message.ForwardMessage`, but the copied message doesn't have a link to the original message. Returns the :class:`aiogram.types.message_id.MessageId` of the sent message on success.
+ Use this method to copy messages of any kind. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz :class:`aiogram.methods.poll.Poll` can be copied only if the value of the field *correct_option_id* is known to the bot. The method is analogous to the method :class:`aiogram.methods.forward_message.ForwardMessage`, but the copied message doesn't have a link to the original message. Returns the :class:`aiogram.types.message_id.MessageId` of the sent message on success.
Source: https://core.telegram.org/bots/api#copymessage
@@ -874,6 +889,7 @@ class Bot:
:param show_caption_above_media: Pass :code:`True`, if the caption must be shown above the message media. Ignored if a new caption isn't specified.
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
:param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found
@@ -893,6 +909,7 @@ class Bot:
show_caption_above_media=show_caption_above_media,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
allow_sending_without_reply=allow_sending_without_reply,
@@ -967,10 +984,12 @@ class Bot:
description: str,
payload: str,
currency: str,
- prices: List[LabeledPrice],
+ prices: list[LabeledPrice],
+ business_connection_id: Optional[str] = None,
provider_token: Optional[str] = None,
+ subscription_period: Optional[int] = None,
max_tip_amount: Optional[int] = None,
- suggested_tip_amounts: Optional[List[int]] = None,
+ suggested_tip_amounts: Optional[list[int]] = None,
provider_data: Optional[str] = None,
photo_url: Optional[str] = None,
photo_size: Optional[int] = None,
@@ -992,10 +1011,12 @@ class Bot:
:param title: Product name, 1-32 characters
:param description: Product description, 1-255 characters
- :param payload: Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
+ :param payload: Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.
:param currency: Three-letter ISO 4217 currency code, see `more on currencies `_. Pass 'XTR' for payments in `Telegram Stars `_.
:param prices: Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.). Must contain exactly one item for payments in `Telegram Stars `_.
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the link will be created
:param provider_token: Payment provider token, obtained via `@BotFather `_. Pass an empty string for payments in `Telegram Stars `_.
+ :param subscription_period: The number of seconds the subscription will be active for before the next payment. The currency must be set to 'XTR' (Telegram Stars) if the parameter is used. Currently, it must always be 2592000 (30 days) if specified.
:param max_tip_amount: The maximum accepted amount for tips in the *smallest units* of the currency (integer, **not** float/double). For example, for a maximum tip of :code:`US$ 1.45` pass :code:`max_tip_amount = 145`. See the *exp* parameter in `currencies.json `_, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0. Not supported for payments in `Telegram Stars `_.
:param suggested_tip_amounts: A JSON-serialized array of suggested amounts of tips in the *smallest units* of the currency (integer, **not** float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed *max_tip_amount*.
:param provider_data: JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.
@@ -1020,7 +1041,9 @@ class Bot:
payload=payload,
currency=currency,
prices=prices,
+ business_connection_id=business_connection_id,
provider_token=provider_token,
+ subscription_period=subscription_period,
max_tip_amount=max_tip_amount,
suggested_tip_amounts=suggested_tip_amounts,
provider_data=provider_data,
@@ -1043,7 +1066,7 @@ class Bot:
user_id: int,
name: str,
title: str,
- stickers: List[InputSticker],
+ stickers: list[InputSticker],
sticker_type: Optional[str] = None,
needs_repainting: Optional[bool] = None,
sticker_format: Optional[str] = None,
@@ -1320,7 +1343,7 @@ class Bot:
request_timeout: Optional[int] = None,
) -> bool:
"""
- Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have *can_manage_topics* administrator rights, unless it is the creator of the topic. Returns :code:`True` on success.
+ Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the *can_manage_topics* administrator rights, unless it is the creator of the topic. Returns :code:`True` on success.
Source: https://core.telegram.org/bots/api#editforumtopic
@@ -1342,12 +1365,13 @@ class Bot:
async def edit_message_caption(
self,
+ business_connection_id: Optional[str] = None,
chat_id: Optional[Union[int, str]] = None,
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
show_caption_above_media: Optional[Union[bool, Default]] = Default(
"show_caption_above_media"
),
@@ -1355,10 +1379,11 @@ class Bot:
request_timeout: Optional[int] = None,
) -> Union[Message, bool]:
"""
- Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
Source: https://core.telegram.org/bots/api#editmessagecaption
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message to be edited was sent
:param chat_id: Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Required if *inline_message_id* is not specified. Identifier of the message to edit
:param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message
@@ -1368,10 +1393,11 @@ class Bot:
:param show_caption_above_media: Pass :code:`True`, if the caption must be shown above the message media. Supported only for animation, photo and video messages.
:param reply_markup: A JSON-serialized object for an `inline keyboard `_.
:param request_timeout: Request timeout
- :return: On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ :return: Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
"""
call = EditMessageCaption(
+ business_connection_id=business_connection_id,
chat_id=chat_id,
message_id=message_id,
inline_message_id=inline_message_id,
@@ -1387,6 +1413,7 @@ class Bot:
self,
latitude: float,
longitude: float,
+ business_connection_id: Optional[str] = None,
chat_id: Optional[Union[int, str]] = None,
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
@@ -1404,6 +1431,7 @@ class Bot:
:param latitude: Latitude of new location
:param longitude: Longitude of new location
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message to be edited was sent
:param chat_id: Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Required if *inline_message_id* is not specified. Identifier of the message to edit
:param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message
@@ -1419,6 +1447,7 @@ class Bot:
call = EditMessageLiveLocation(
latitude=latitude,
longitude=longitude,
+ business_connection_id=business_connection_id,
chat_id=chat_id,
message_id=message_id,
inline_message_id=inline_message_id,
@@ -1439,6 +1468,7 @@ class Bot:
InputMediaPhoto,
InputMediaVideo,
],
+ business_connection_id: Optional[str] = None,
chat_id: Optional[Union[int, str]] = None,
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
@@ -1446,21 +1476,23 @@ class Bot:
request_timeout: Optional[int] = None,
) -> Union[Message, bool]:
"""
- Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ Use this method to edit animation, audio, document, photo, or video messages, or to add media to text messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
Source: https://core.telegram.org/bots/api#editmessagemedia
:param media: A JSON-serialized object for a new media content of the message
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message to be edited was sent
:param chat_id: Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Required if *inline_message_id* is not specified. Identifier of the message to edit
:param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message
:param reply_markup: A JSON-serialized object for a new `inline keyboard `_.
:param request_timeout: Request timeout
- :return: On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ :return: Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
"""
call = EditMessageMedia(
media=media,
+ business_connection_id=business_connection_id,
chat_id=chat_id,
message_id=message_id,
inline_message_id=inline_message_id,
@@ -1470,6 +1502,7 @@ class Bot:
async def edit_message_reply_markup(
self,
+ business_connection_id: Optional[str] = None,
chat_id: Optional[Union[int, str]] = None,
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
@@ -1477,19 +1510,21 @@ class Bot:
request_timeout: Optional[int] = None,
) -> Union[Message, bool]:
"""
- Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
Source: https://core.telegram.org/bots/api#editmessagereplymarkup
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message to be edited was sent
:param chat_id: Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Required if *inline_message_id* is not specified. Identifier of the message to edit
:param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message
:param reply_markup: A JSON-serialized object for an `inline keyboard `_.
:param request_timeout: Request timeout
- :return: On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ :return: Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
"""
call = EditMessageReplyMarkup(
+ business_connection_id=business_connection_id,
chat_id=chat_id,
message_id=message_id,
inline_message_id=inline_message_id,
@@ -1500,12 +1535,15 @@ class Bot:
async def edit_message_text(
self,
text: str,
+ business_connection_id: Optional[str] = None,
chat_id: Optional[Union[int, str]] = None,
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- entities: Optional[List[MessageEntity]] = None,
- link_preview_options: Optional[LinkPreviewOptions] = None,
+ entities: Optional[list[MessageEntity]] = None,
+ link_preview_options: Optional[Union[LinkPreviewOptions, Default]] = Default(
+ "link_preview"
+ ),
reply_markup: Optional[InlineKeyboardMarkup] = None,
disable_web_page_preview: Optional[Union[bool, Default]] = Default(
"link_preview_is_disabled"
@@ -1513,11 +1551,12 @@ class Bot:
request_timeout: Optional[int] = None,
) -> Union[Message, bool]:
"""
- Use this method to edit text and `game `_ messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ Use this method to edit text and `game `_ messages. On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
Source: https://core.telegram.org/bots/api#editmessagetext
:param text: New text of the message, 1-4096 characters after entities parsing
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message to be edited was sent
:param chat_id: Required if *inline_message_id* is not specified. Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Required if *inline_message_id* is not specified. Identifier of the message to edit
:param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message
@@ -1527,11 +1566,12 @@ class Bot:
:param reply_markup: A JSON-serialized object for an `inline keyboard `_.
:param disable_web_page_preview: Disables link previews for links in this message
:param request_timeout: Request timeout
- :return: On success, if the edited message is not an inline message, the edited :class:`aiogram.types.message.Message` is returned, otherwise :code:`True` is returned.
+ :return: Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within **48 hours** from the time they were sent.
"""
call = EditMessageText(
text=text,
+ business_connection_id=business_connection_id,
chat_id=chat_id,
message_id=message_id,
inline_message_id=inline_message_id,
@@ -1624,7 +1664,7 @@ class Bot:
self,
chat_id: Union[int, str],
request_timeout: Optional[int] = None,
- ) -> List[
+ ) -> list[
Union[
ChatMemberOwner,
ChatMemberAdministrator,
@@ -1721,9 +1761,9 @@ class Bot:
async def get_custom_emoji_stickers(
self,
- custom_emoji_ids: List[str],
+ custom_emoji_ids: list[str],
request_timeout: Optional[int] = None,
- ) -> List[Sticker]:
+ ) -> list[Sticker]:
"""
Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of :class:`aiogram.types.sticker.Sticker` objects.
@@ -1763,7 +1803,7 @@ class Bot:
async def get_forum_topic_icon_stickers(
self,
request_timeout: Optional[int] = None,
- ) -> List[Sticker]:
+ ) -> list[Sticker]:
"""
Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of :class:`aiogram.types.sticker.Sticker` objects.
@@ -1783,7 +1823,7 @@ class Bot:
message_id: Optional[int] = None,
inline_message_id: Optional[str] = None,
request_timeout: Optional[int] = None,
- ) -> List[GameHighScore]:
+ ) -> list[GameHighScore]:
"""
Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of :class:`aiogram.types.game_high_score.GameHighScore` objects.
@@ -1838,7 +1878,7 @@ class Bot:
] = None,
language_code: Optional[str] = None,
request_timeout: Optional[int] = None,
- ) -> List[BotCommand]:
+ ) -> list[BotCommand]:
"""
Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of :class:`aiogram.types.bot_command.BotCommand` objects. If commands aren't set, an empty list is returned.
@@ -1901,9 +1941,9 @@ class Bot:
offset: Optional[int] = None,
limit: Optional[int] = None,
timeout: Optional[int] = None,
- allowed_updates: Optional[List[str]] = None,
+ allowed_updates: Optional[list[str]] = None,
request_timeout: Optional[int] = None,
- ) -> List[Update]:
+ ) -> list[Update]:
"""
Use this method to receive incoming updates using long polling (`wiki `_). Returns an Array of :class:`aiogram.types.update.Update` objects.
@@ -2013,6 +2053,7 @@ class Bot:
self,
chat_id: Union[int, str],
message_id: int,
+ business_connection_id: Optional[str] = None,
disable_notification: Optional[bool] = None,
request_timeout: Optional[int] = None,
) -> bool:
@@ -2023,6 +2064,7 @@ class Bot:
:param chat_id: Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param message_id: Identifier of a message to pin
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message will be pinned
:param disable_notification: Pass :code:`True` if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats.
:param request_timeout: Request timeout
:return: Returns :code:`True` on success.
@@ -2031,6 +2073,7 @@ class Bot:
call = PinChatMessage(
chat_id=chat_id,
message_id=message_id,
+ business_connection_id=business_connection_id,
disable_notification=disable_notification,
)
return await self(call, request_timeout=request_timeout)
@@ -2193,13 +2236,14 @@ class Bot:
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
show_caption_above_media: Optional[Union[bool, Default]] = Default(
"show_caption_above_media"
),
has_spoiler: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2229,6 +2273,7 @@ class Bot:
:param has_spoiler: Pass :code:`True` if the animation needs to be covered with a spoiler animation
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2254,6 +2299,7 @@ class Bot:
has_spoiler=has_spoiler,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2270,13 +2316,14 @@ class Bot:
message_thread_id: Optional[int] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2305,6 +2352,7 @@ class Bot:
:param thumbnail: Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://' if the thumbnail was uploaded using multipart/form-data under . :ref:`More information on Sending Files » `
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2328,6 +2376,7 @@ class Bot:
thumbnail=thumbnail,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2380,6 +2429,7 @@ class Bot:
vcard: Optional[str] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2403,6 +2453,7 @@ class Bot:
:param vcard: Additional data about the contact in the form of a `vCard `_, 0-2048 bytes
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2422,6 +2473,7 @@ class Bot:
vcard=vcard,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2438,6 +2490,7 @@ class Bot:
emoji: Optional[str] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2458,6 +2511,7 @@ class Bot:
:param emoji: Emoji on which the dice throw animation is based. Currently, must be one of '🎲', '🎯', '🏀', '⚽', '🎳', or '🎰'. Dice can have values 1-6 for '🎲', '🎯' and '🎳', values 1-5 for '🏀' and '⚽', and values 1-64 for '🎰'. Defaults to '🎲'
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2474,6 +2528,7 @@ class Bot:
emoji=emoji,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2491,10 +2546,11 @@ class Bot:
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
disable_content_type_detection: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2520,6 +2576,7 @@ class Bot:
:param disable_content_type_detection: Disables automatic server-side content type detection for files uploaded using multipart/form-data
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2541,6 +2598,7 @@ class Bot:
disable_content_type_detection=disable_content_type_detection,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2557,6 +2615,7 @@ class Bot:
message_thread_id: Optional[int] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[InlineKeyboardMarkup] = None,
@@ -2575,6 +2634,7 @@ class Bot:
:param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: A JSON-serialized object for an `inline keyboard `_. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game.
@@ -2591,6 +2651,7 @@ class Bot:
message_thread_id=message_thread_id,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2606,11 +2667,11 @@ class Bot:
description: str,
payload: str,
currency: str,
- prices: List[LabeledPrice],
+ prices: list[LabeledPrice],
message_thread_id: Optional[int] = None,
provider_token: Optional[str] = None,
max_tip_amount: Optional[int] = None,
- suggested_tip_amounts: Optional[List[int]] = None,
+ suggested_tip_amounts: Optional[list[int]] = None,
start_parameter: Optional[str] = None,
provider_data: Optional[str] = None,
photo_url: Optional[str] = None,
@@ -2626,6 +2687,7 @@ class Bot:
is_flexible: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[InlineKeyboardMarkup] = None,
@@ -2641,7 +2703,7 @@ class Bot:
:param chat_id: Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)
:param title: Product name, 1-32 characters
:param description: Product description, 1-255 characters
- :param payload: Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
+ :param payload: Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.
:param currency: Three-letter ISO 4217 currency code, see `more on currencies `_. Pass 'XTR' for payments in `Telegram Stars `_.
:param prices: Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.). Must contain exactly one item for payments in `Telegram Stars `_.
:param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only
@@ -2663,6 +2725,7 @@ class Bot:
:param is_flexible: Pass :code:`True` if the final price depends on the shipping method. Ignored for payments in `Telegram Stars `_.
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: A JSON-serialized object for an `inline keyboard `_. If empty, one 'Pay :code:`total price`' button will be shown. If not empty, the first button must be a Pay button.
@@ -2698,6 +2761,7 @@ class Bot:
is_flexible=is_flexible,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2719,6 +2783,7 @@ class Bot:
proximity_alert_radius: Optional[int] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2744,6 +2809,7 @@ class Bot:
:param proximity_alert_radius: For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2765,6 +2831,7 @@ class Bot:
proximity_alert_radius=proximity_alert_radius,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2776,17 +2843,18 @@ class Bot:
async def send_media_group(
self,
chat_id: Union[int, str],
- media: List[Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo]],
+ media: list[Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo]],
business_connection_id: Optional[str] = None,
message_thread_id: Optional[int] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
allow_sending_without_reply: Optional[bool] = None,
reply_to_message_id: Optional[int] = None,
request_timeout: Optional[int] = None,
- ) -> List[Message]:
+ ) -> list[Message]:
"""
Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of `Messages `_ that were sent is returned.
@@ -2798,6 +2866,7 @@ class Bot:
:param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only
:param disable_notification: Sends messages `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent messages from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found
@@ -2813,6 +2882,7 @@ class Bot:
message_thread_id=message_thread_id,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
allow_sending_without_reply=allow_sending_without_reply,
@@ -2827,12 +2897,13 @@ class Bot:
business_connection_id: Optional[str] = None,
message_thread_id: Optional[int] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- entities: Optional[List[MessageEntity]] = None,
+ entities: Optional[list[MessageEntity]] = None,
link_preview_options: Optional[Union[LinkPreviewOptions, Default]] = Default(
"link_preview"
),
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2859,6 +2930,7 @@ class Bot:
:param link_preview_options: Link preview generation options for the message
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2879,6 +2951,7 @@ class Bot:
link_preview_options=link_preview_options,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2896,13 +2969,14 @@ class Bot:
message_thread_id: Optional[int] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
show_caption_above_media: Optional[Union[bool, Default]] = Default(
"show_caption_above_media"
),
has_spoiler: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -2928,6 +3002,7 @@ class Bot:
:param has_spoiler: Pass :code:`True` if the photo needs to be covered with a spoiler animation
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -2949,6 +3024,7 @@ class Bot:
has_spoiler=has_spoiler,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -2961,23 +3037,24 @@ class Bot:
self,
chat_id: Union[int, str],
question: str,
- options: List[Union[InputPollOption, str]],
+ options: list[Union[InputPollOption, str]],
business_connection_id: Optional[str] = None,
message_thread_id: Optional[int] = None,
question_parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- question_entities: Optional[List[MessageEntity]] = None,
+ question_entities: Optional[list[MessageEntity]] = None,
is_anonymous: Optional[bool] = None,
type: Optional[str] = None,
allows_multiple_answers: Optional[bool] = None,
correct_option_id: Optional[int] = None,
explanation: Optional[str] = None,
explanation_parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- explanation_entities: Optional[List[MessageEntity]] = None,
+ explanation_entities: Optional[list[MessageEntity]] = None,
open_period: Optional[int] = None,
close_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None,
is_closed: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -3011,6 +3088,7 @@ class Bot:
:param is_closed: Pass :code:`True` if the poll needs to be immediately closed. This can be useful for poll preview.
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -3040,6 +3118,7 @@ class Bot:
is_closed=is_closed,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -3057,6 +3136,7 @@ class Bot:
emoji: Optional[str] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -3078,6 +3158,7 @@ class Bot:
:param emoji: Emoji associated with the sticker; only for just uploaded stickers
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -3095,6 +3176,7 @@ class Bot:
emoji=emoji,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -3118,6 +3200,7 @@ class Bot:
google_place_type: Optional[str] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -3145,6 +3228,7 @@ class Bot:
:param google_place_type: Google Places type of the venue. (See `supported types `_.)
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove a reply keyboard or to force a reply from the user
@@ -3168,6 +3252,7 @@ class Bot:
google_place_type=google_place_type,
disable_notification=disable_notification,
protect_content=protect_content,
+ allow_paid_broadcast=allow_paid_broadcast,
message_effect_id=message_effect_id,
reply_parameters=reply_parameters,
reply_markup=reply_markup,
@@ -3188,7 +3273,7 @@ class Bot:
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[Union[str, Default]] = Default("parse_mode"),
- caption_entities: Optional[List[MessageEntity]] = None,
+ caption_entities: Optional[list[MessageEntity]] = None,
show_caption_above_media: Optional[Union[bool, Default]] = Default(
"show_caption_above_media"
),
@@ -3196,6 +3281,7 @@ class Bot:
supports_streaming: Optional[bool] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[Union[bool, Default]] = Default("protect_content"),
+ allow_paid_broadcast: Optional[bool] = None,
message_effect_id: Optional[str] = None,
reply_parameters: Optional[ReplyParameters] = None,
reply_markup: Optional[
@@ -3226,6 +3312,7 @@ class Bot:
:param supports_streaming: Pass :code:`True` if the uploaded video is suitable for streaming
:param disable_notification: Sends the message `silently `_. Users will receive a notification with no sound.
:param protect_content: Protects the contents of the sent message from forwarding and saving
+ :param allow_paid_broadcast: Pass :code:`True` to allow up to 1000 messages per second, ignoring `broadcasting limits `_ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
:param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
:param reply_parameters: Description of the message to reply to
:param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard